實際上是動態調試 Smail文件
,一種逆向分析的方式,經過 jdwp
調試相關進程。 通常在作競品分析時會用到相似的手段。Android studio支持apk分析,因此操做起來仍是比較簡單的。android
正常狀況下release包是不容許調試的,因此必須先讓apk可調試,通常有兩種方法:shell
apktool
工具反編譯apk,修改 AndroidManifest.xml
文件,而後再重簽名二次打包:<!-- application標籤加上android:debuggable="true" -->
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:debuggable="true">
複製代碼
運行後,在 Logcat
中能夠找到對應進程便可。markdown
Android Studio 中 Smali Support
插件不支持 smali 斷點,因此須要從新下載一個插件,具體操做能夠參考:解決新版Android Studio 4.0+沒法斷點調試smali問題app
啓動 Android Studio 或者 點擊File 是否有 Profile or Debug APK
這個選項:tcp
若是沒有找到,應該是
Android APK Support
這個插件沒有啓用,Settings中啓用該插件便可。ide
運行下面命令,啓動app:工具
adb shell am start -D -n 包名/.你要調試的界面 例如: adb shell am start -D -n com.francis.testxpose/.MainActivityoop
查看進程號:idea
adb shell ps | findstr 包名 例如: adb shell ps | findstr com.francis.testxposespa
使用 jdwp 轉發端口:
adb forward tcp:調試端口號 jdwp:進程號 例如: adb forward tcp:8900 jdwp:12618
Profile or Debug APK
選項導入apk:remote
調試模式找到你想調試的代碼下斷點。