Android Studio 调试Android Smali代码

 Android Studio 调试Smali代码首先需要在Android Studio中安装smalidea插件,

插件地址为https://bitbucket.org/JesusFreke/smali/downloads/,打开网页选择smalidea-0.05.zip进行下载,github 地址为:https://github.com/JesusFreke/smali

下载完成打开Android Studio 进入plugins插件管理界面,选择 Install plugin from disk,选择刚下载的smalidea-0.05.zip文件,安装完成重启Android Studio。重启之后就可以在AS中调试smali代码了。

首先编写自己的调试apk进行调试测试, 将自己的apk进行反编译,使用apktool进行反编译,apktool 命令 apktool  d -o 【解压后文件路径】app-debug.apk,解压之后会将app-debug.apk解压到设置的路径,解压之后文件目录如下:

Android Studio 调试Android Smali代码 

其中smali文件夹就是我们需要得到的smali文件,这个文件的内容就是需要调试的。导入 反编译后的apk到Android Studio中,打开smali文件就可以看到反编译之后的文件都是以.smali结尾的,调试设置

Android Studio 调试Android Smali代码

选择Edit Configurations 打开后添加Remote

Android Studio 调试Android Smali代码 

在Port端口改为8600,保存设置。 右击项目选择Mark Director as ,选择Sources Root,之后选择File文件中的Project Structure打开之后再Project Setting中选择Project设置java Version

Android Studio 调试Android Smali代码

设置完之后就可以进行调试工作了。

 如果想在App刚起动就开始设置断点例如自己的application中打断点,就需要以debugger形式启动,两种方法:第一种就是在smali中添加debugger代码Debug.waitForDebugger();第二种方法使用adb命令打开 adb shell am start  -D -n package/activityname 打开,然后选择就可以用AS给程序打断点进行调试了。