-
生成頭文件筆記本電腦
查看全部 -
生成頭文件筆記本電腦
查看全部 -
生成頭文件筆記本電腦
查看全部 -
ndk-stack
查看全部 -
ndk stack
查看全部 -
ndklog
查看全部 -
反編譯JNI-crash日志
addr2line //使用較麻煩
ndk-stack
adb logcat | ndk-stack -sym ***/armeabi //so庫路徑
adb logcat > /tem/foo.txt?
ndk-stack -sym ***/armeabi -dump foo.txt
查看全部 -
ndk常見異常思維導圖
查看全部 -
找到構造方法 GetMethodID(cls,"<init>", "()V");
NewObject(cls,mtd,參數);
查看全部 -
獲取native方法簽名
javap -s 全類名
查看全部 -
ABI : 應用程序二進制接口
定義了二進制文件(如so庫)如何運行在相應的系統平臺(指令集,內存對齊,系統函數庫)
指定編譯對應平臺so
ndk{ ????abiFilters?"x86" ????}
查看全部 -
NDK環境搭建
配置ndk關聯AS ProjectStruct
生成頭文件
src/main/java 目錄下 javah -d ../jni 全路徑類名
jni中右鍵新建C++ source
????cpp中鍵入自己邏輯
app.gradle /defaultConfig中
ndk{
????moduleName "xx"
}
查看全部 -
1.生成頭文件:
cd app/src/main/java
javah -d ../jni com.xxx.Hello
2.獲取方法簽名:
cd app/build/intermediates/classes/debug
javap -s com.xxx.Hello
3.調Java方法
?jclass cls_hello=env->FindClass("com/xxx/Hello");
jmethodID mtd_static_method=env->GetMethodID(cls_hello,"staticMethod",方法簽名);
env->CallStaticVoidMethod(類,方法ID,入參);
4.每步都要判斷NULL,需要include下 stdlib.h stdio.h
5.類與臨時string需要釋放下,env->DeleteLocalRef(xxxx)
查看全部 -
cpu架構
查看全部 -
配置ndk環境
查看全部 -
//生成指定類的頭文件到指定路徑? javah?-d?../jni?com.hello.fmod.Hello //?若報錯:?編碼GBK的不可映射字符 //?錯誤原因-->JDK是國際版的,在編譯的時候,如果我們沒有用-encoding參數指定我們的JAVA源程序的編碼格式,則javac.exe首先獲得我們操作系統默認采用的編碼格式。 //?解決方法:使用-encoding參數指明編碼方式?? javah?-d?../jni?-encoding?UTF-8?com.dhyz.ndkvoice.Utils
查看全部 -
ndk異常處理
ExceptionCheck()也可以換成ExceptionOccurred()
查看全部 -
ndk-stack
查看全部 -
ndk調試
查看全部 -
修改實例成員變量
查看全部 -
Jni調用java實例方法
查看全部 -
native修改java成員變量
查看全部 -
JNI調用靜態方法
查看全部 -
命令行生成頭文件
查看全部
舉報