- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록JNI / NDK (22)
드럼치는 프로그래머
javap -s "패키지명.클래스명" ex) String 클래스의 시그니쳐 확인 javap -s java.lang.String [출처] http://blog.naver.com/PostView.nhn?blogId=arad21&logNo=130126842586
JNI Functions Reference : http://download.oracle.com/javase/1.4.2/docs/guide/jni/spec/functions.html#wp17314 HelloJNI.java public class HelloJNI { static{ System.loadLibrary("my_dll"); } /* byte[]을 전달하고 byte[]을 리턴하는 예 */ public native byte[] byteArrayTest(byte [] name); public static void main(String[] args) throws Exception{ HelloJNI test = new HelloJNI(); byte[] src = {0,1,2,3,4,5,6,7,8,9}; by..
Java, C언어간 한글처리 문제 한글과 같은 2바이트 문자를 다루는 방식이 Java언어와 C언어가 차이를 보이기 때문에 양 언어 사이에 한글이 전달된다면 각자의 처리기준으로 처리하여 한글이 제대로 표현될 수가 없다. Java나 C 언어가 모두 한글을 표현할 때 2바이트 공간에 한개의 문자를 저장하지만 각 바이트에 저장하는 방식은 서로 다르다는 것이다. Java언어에서 한글은 유니코드로 표현되고, C언어에서 한글은 KSC5601 Character set 형식으로 표현하기 때문에 문자열을 전달하여 제대로 표현되기를 바라는 것은 무리일 것이다. JNI 한글처리 해결 다행스러운 것은 Java 언어에서도 KSC5601형식의 바이트 단위 문자열로 표현해 주는 방법이 존재한다는 것이다. 그것이 바로 유니코드 문자열..
JNI Functions Reference : http://download.oracle.com/javase/1.4.2/docs/guide/jni/spec/functions.html#wp17314 JNITest.java public class JNITest { static{ System.loadLibrary("my_dll"); } public native String greeting(String name); public static void main(String[] args) { JNITest test = new JNITest(); String result = test.greeting("Smith"); System.out.println("C 함수 리턴값: "+result); } } JNITest.h /* ..
JNITest.java public class JNITest { static{ System.loadLibrary("my_dll"); } public native int add(int a, int b); public static void main(String[] args) { JNITest test = new JNITest(); int result = test.add(3, 5); System.out.println("C 함수 리턴값: "+result); } } JNITest.h /* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class JNITest */ #ifndef _Included_JNITest #define _I..
HelloJNI.java public class HelloJNI { static{ System.loadLibrary("my_dll"); } /* 기본형 파라미터를 전달하는 경우 */ public native void printSize(boolean b, byte bt, short s, char c, int i, long lg, float f, double d); public static void main(String[] args) throws Exception{ new HelloJNI().printSize(true, (byte)1, (short)2, 'A', 3, 4L, 5.0F, 6.0); } } HelloJNI.h /* DO NOT EDIT THIS FILE - it is machine generat..
Cygwin에서 setup.exe를 받아서 다운로드 위치를 선택할 때, 미러 사이트에 .kr로 끝나는 사이트는 어딜 보아도 없습니다. 한번은 일본의 jaist에서 잘 다운로드했는데, 집에서 와이브로로 접속할 때는 미국, 일본 어디를 해도 무조건 실패를 하였습니다. ftp://ftp.kaist.ac.kr이 옛날에는 미러사이트였다고 하길래 등록하면 오류가 나면서 진행이 안되었습니다. 그 와중에 kldp에 보니까, ftp://ftp.kaist.ac.kr 이 아니고, ftp://ftp.kaist.ac.kr/cygwin 이라고 되어 있더군요. 지금 설치 중인데, 쾌적한 속도로 잘 진행 중입니다. 이클립스 혹은 구글 웹툴킷 등을 설치할 때, 자주 다운로드가 실패를 해서 프로그래머의 시간을 낭비하곤 하는데, Cygw..
안드로이드 JNI 영역에서 printf 를 사용해봤자 쓰이지도 않고 해서 찾아낸것이 안드로이드 어플처럼 LOG를 사용하는 거~ !! 답답함은 조금 줄어듬.. #include 를 포함해야하고~ log.h를 살펴보면 __android_log_print(LOG_LEV, _TAG, ...); 형태로 되어있는데 ~ 어플의 Log.i 이런것들 쓰다가 쓸려면 돌아버리죠~ 그래서 #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "libnav", __VA_ARGS__) #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "libnav", __VA_ARGS__) #define LOGI(...) __android_l..
자바는 유니코드를 쓰고, JNI는 UTF-8을 쓰구, C/C++환경에서는 KSC5601 바이트문자열을 쓰더군요. 황당 그자체였습니다. 하지만, 여기도 그렇고 다른곳에서도 한글해결을 위한 명확한 방법을 제시한곳이 없더군요. 그래서, 3일동안 끙끙되며 찾은 방법을 JNI를 공부하거나 구현하고자 하는분을 위해서 설명드리고자 합니다. 참고URL : http://www.grine.co.kr/computer/lang6101.htm => JNI에서 한글처리하는 코어를 가져온 사이트임다. 겨우 찾아냈죠. ^^* 컴파일 환경은 WinXP, JDK1.4.2.04로 했으며, C컴파일을 위해서 VisualC++을 이용했습니다. 간단히 설명하면(파일명을 Test.java과 Test.c) javac Test.java javah ..
졸업 논문을 위해서 ndk를 사용하게 되었는데 하도 설치가 복잡해서 ndk를 꼭 써야 하나 하는 의구심이 들었다. 안써도 충분히 구현이 가능한데... 고민중.. 역시 다른 사람 의견을 보자 하고 글로벌 검색 시작. 결과는...... 일본분이 테스트 한 자료에는 , 1억번 덧셈의 경우 자바 구현시 45825미리초.. native 인 c로 구현시 9미리초...... for ( int I = 0 ; i < 100000000 ; i + +) { count + +; } 컴파일 최적화로 인한 속도 형상으로 판단되어 수식 변경후 다시 측정한 결과 사진..... for ( int I = 0 ; i < 10000000 ; i + +) { count1 = count1 * 2 / 3 + 5 - 1 ; } 이건.. 넘사벽..