android无需Root手机,使用Android Studio无源码动态调试教程

有时候要查看应用的代码调用,却没有源码怎么办?特别是分发行业,有时候需要接入指定SDK,受渠道技术能力影响总是会出问题。这个时候就可以使用无源码的的动态调试。

    1. 首先选工具,工具使用的是大家常用的开发工具Android Studio,再装一个插件smalidea。安装插件的步骤如下图

android无需Root手机,使用Android Studio无源码动态调试教程

2.接下来将要调试的APK反编译。反编译教程很多,请自行百度。

反编译后的工程目录如下图

android无需Root手机,使用Android Studio无源码动态调试教程

 

3.反编译完后导入项目

android无需Root手机,使用Android Studio无源码动态调试教程

android无需Root手机,使用Android Studio无源码动态调试教程

4.导入后的文件目录

android无需Root手机,使用Android Studio无源码动态调试教程

5.编辑项目,在项目目录右键

android无需Root手机,使用Android Studio无源码动态调试教程

android无需Root手机,使用Android Studio无源码动态调试教程

这里一般链接调试的手机是什么系统就选择什么系统

android无需Root手机,使用Android Studio无源码动态调试教程

6.设置远程调试选项

android无需Root手机,使用Android Studio无源码动态调试教程

链接名称随便取, 默认端口号也不建议改,记好端口号,待会要连接

android无需Root手机,使用Android Studio无源码动态调试教程

7. 执行  adb forward tcp:5005 jdwp:29685命令,在调试工具和手机之间建立映射。

android无需Root手机,使用Android Studio无源码动态调试教程

没有报错就是成功。

右上角会显示已经连上的手机

android无需Root手机,使用Android Studio无源码动态调试教程

 

 

8.在刚才反编译的文件目录下修改AndroidManifest.xml使App可以调试

android:debuggable="true"

android无需Root手机,使用Android Studio无源码动态调试教程

9.修改完之后回编译,生成Apk,安装到手机上,并且打开运行。

10.在Android Studio上在自己要查看的地方下断点。、

11.下完断点后,开始动态调试。

选择要调试的进程,一般没有单独设置进程名称的话,那就是包名

android无需Root手机,使用Android Studio无源码动态调试教程

12.显示连接成功

android无需Root手机,使用Android Studio无源码动态调试教程

13.成功执行到断点

android无需Root手机,使用Android Studio无源码动态调试教程