android app两种调试方法


方法一:

1、使用apktool的-d选项反编译apk文件

   java  -jar  apktool.jar  d  -d  target.apk  -o  output

2、在AndroidManifest的application节点中添加 android:debuggable="true"

3、在入口点的类的onCreate中添加如下代码等待调试

   invoke-static{}, Landroid/os/Debug;->waitForDebugger()V

4、回编译apk

   java  -jar  apktool.jar  b  -d  output  -o  newTarget.apk

5、对apk进行签名

   java -jar signapk.jar testkey.x509.pem testkey.pk8 newTarget.apk signed.apk

6、将签名后的apk安装到手机或者模拟器上

   adb install signed.apk

7、将1中的smali代码导入到Android Studio中

   file→open→output目录→下断点

8、打开Monitor查找相应的进程

   运行→monitor 或者Tools ->Android ->Android Device Monitor

9、配置远程调试选项

   Run→Editor Configurations→Defaults→Remote,点击+号新增一个,Host为localhost,Port为8700

10、打开apk,点击绿色的小虫子就可以开始调试了

 

 

方法二:无需修改原apk文件

1、用 Android killer等工具反编译apk文件

2、将smali代码入到Android Studio中,安装smaliidea插件

File→Settings→Plugins→Install plugin from disk…→Restart

3、配置远程调试选项,打开monitor

4、使用adb以debug方式启动apk

   adb shell am start -D -n package/activitiyname

5、下断点开始调试,在watch中添加寄存器


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM