1. java反匯編 javap
- 手動(dòng)命令行
javap
javap -classpath bin/classes -p -s com.tg.xx.Class
- IDE上配置
External Tools
Android studio- name:
javap
(任意命名) - Program:
$JDKPath$\bin\javap.exe
- Arguments:
-classpath $OutputPath$ -p -s $FileClass$
- Working directory:
$ProjectFileDir$
如下圖:
- name:
- 操作的時(shí)候先選中Java源文件,然后 選擇 右鍵菜單 或者 工具欄 Tool 菜單
2.javah配置如下
-classpath .;$ModuleSdkPath$\platforms\android-22\android.jar -jni -encoding $FileEncoding$ -d $ModuleFileDir$/src/main/jni/ $FileClass$
注意:如果使用 javah -jni
沒(méi)有指定 -encoding $FileEncoding$
源文件的編碼格式布疙,可能會(huì)出現(xiàn)"錯(cuò)誤: 編碼GBK的不可映射字符"的錯(cuò)誤
以上,使用javah "-d"
選項(xiàng)指定輸出目錄,默認(rèn)會(huì)以源文件的完全限定名作為輸出.h文件的名字,可能會(huì)很長(zhǎng)很丑愿卸,那也可以使用“-o”
選項(xiàng)自己指定文件名
-classpath .;$ModuleSdkPath$\platforms\android-22\android.jar -jni -encoding $FileEncoding$ -o $ModuleFileDir$/src/main/jni/$Prompt$ $FileClass$
其中$Prompt$
選項(xiàng)會(huì)彈出一個(gè)輸入框灵临,讓你輸入文件名,-d
和-o
只能同時(shí)使用一個(gè)
3. NDK-BUILD
ndk-build NDK_LOG=1 NDK_DEBUG=0
其中NDK_DEBUG=0
表示編譯release版本,NDK_DEBUG=1
表示編譯debug版本
4. Eclipse external tool
-classpath ${project_loc}\bin\classes -d ${project_loc}\jni -jni ${java_type_name}