1.反编译apk: apktool d apkname.apk
2.打开Android Studio,导入程序目录
选择该目录,然后,一路Next, 最后Finish。
导入目录后,切换至Project模式,右键smali目录->Mark Derictory as -> Sources Root,然后在需要的位置下断点。
4、 打开模拟器(这里用的MuMu),安装待调试应用。注意:若使用真机,需要先反编译apk文件,将应用的AndroidManifest.xml中的Application标签中加上android:debuggable=”true”,再重新回编译成apk包,并签名,然后安装至测试机,否则不能调试。
5、获取入口Activity:adb shell dumpsys activity top | grep ACTIVITY
result示例:
com.k7game.app.black7.sdy/com.k7game.app.AppActivity
6、以debug状态打开此Activityadb shell am start -D -n “Activity信息”
示例:
adb shell am start -D -n com.k7game.app.black7.sdy/com.k7game.app.AppActivity
7、获取应用pidadb shell ps | grep "包名"
示例:
adb shell ps | grep com.k7game.app.black7.sdy
result示例:
u0_a35 3993 255 1558152 52500 futex_wait b7267fd2 S com.k7game.app.black7.sdy
则pid为: 3993
8、设置端口转发adb forward tcp:8700 jdwp: “pid”
示例:
adb forward tcp:8700 jdwp:3993
9、点击Android Studio的调试图标,并选择待调试进程,即可进行后续调试。