나는 올해 안에 쓴 이전 C/C++ 코드의 JNI 버전을 작성하여 안드로이드 응용 프로그램에 포함합니다. 필자는 Java와 C++ 모두에서 쓰고있는 것과 동일한 데스크탑 애플리케이션을 작성했으며, 성능 차이가 두드러 졌기 때문에 ndk를 활용하고 싶습니다.JNI와 오래된 C++ 코드
나는 JNI에 매우 익숙하며, 내가 이해할 수있는 방식으로, 어떤 타입 매핑을해야만하는 것으로 보인다. jdouble
을 사용하여 double
, jint
을 바꿔 int
등으로 바꿉니다. 문제는, 나는 옛날 코드를 변경하지 않고 실행하려고 시도했다. 심지어 일부 STL 라이브러리 (list
및 vector
)가 포함되어 있어도 문제가 없습니다. 방금 Android.mk 파일에 APP_STL := stlport_static
을 포함 시켰습니다.
제 궁금한 점은 : 성능 저하가 있습니까? 내가 알아야 할 다른 위험이 있습니까? 내 jni에서 C/C++ 기본 유형을 사용할 때의 단점은 무엇입니까? 코드를 더 빠르게 실행할 수 있습니까, 아니면 신경 쓰지 않아도됩니까?
감사합니다,
NAX JNI에서
음, 안심 이군요! 고맙습니다. – naxchange
특히 자바 타입은 잘 정의 된 폭과 부호가 있습니다 -'jint'는 부호있는 32 비트 값이고'jlong'은 부호있는 64 비트 값이고'jchar'는 부호없는 16 비트 값입니다 값, 등등. 이들은 플랫폼에 따라 다르지 않습니다. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html을 참조하십시오. – fadden