往期推荐
一:Android Studio 调试的原理
使用 Android Studio 进行动态调试,通过 Android Studio 导入反编译出的完整的 smali 代码,设置好调试所需的条件,设置断点。将移动设备连接至 PC端,然后运行待调试的apk应用程序,当该应用程序执行流程,运行至smali代码的断点处时,就会触发断点。从而可以进行进一步的分析和调试,让程序的运行流程和中间参数更清晰。
二:Android Studio 调试的流程
1.下载并安装Android Studio工具和smalidea插件
下载两款工具以及安装Android Studio工具之前有过讲解,这里略过。
着重介绍安装smalidea插件,打开Android Studio工具,点击File,选择Settings,或者按快捷键Ctrl+Alt+S打开设置界面,点击Plugin,再点击install plugin from disk。找到之前我们下载的smalidea插件选中点击OK,插件就添加成功了,会弹出弹窗,提示重启Android Studio,点击重启,如下图所示。
注意:如果没有重启,smalidea是没有生效的,就会导致后面无法在smali代码上打断点。
2.反编译待调试的apk
使用AndroidKiller工具,反编译我们要调试的APK文件,反编译成功后,在“工程管理器”找到AndroidManiFest.xml文件,再找到该文件里的application标签,查看标签中是否存在android:debuggable=“true”属性,如果文件中不存android:debuggable=“true”,则需要进行添加,如下图所示。
探究:为什么要增加这个属性呢?
因为在开发的过程中,这个属性是由开发人员开发并调试的属性,但是在发布的时候这个属性会自动删除,而我们要调试该程序,就需要将其进行增加。当然如果是使用第三方模拟器或安卓自带模拟器,它是自动默认开启的,就不需要进