AndroidStudio使用AndroidStudio动态调试Smali文件

风流不在谈锋胜,袖手无言味最长。这篇文章主要讲述AndroidStudio使用AndroidStudio动态调试Smali文件相关的知识,希望能为你提供帮助。
1.简介smalidea是一个IntelliJ IDEA/android Studio smali语言插件,可实现动态调试smali代码。下载地址为:https://github.com/JesusFreke/smali/wiki/smalidea。Android Studio的安装,就是傻瓜式的安装,一路next下去。接下来笔者介绍一下笔者的软件环境:jdk 1.8,android studio 2.3,smalidea 0.0.5,测试的app是笔者写的一个demo.
2.动态调试Smali需要的软件调试的过程中需要准备的软件有android studio、smalidea、baksmali。经过笔者的测试,发现不同版本的软件搭配,会得出许多问题。这里笔者测试出,在笔者的软件环境下情况正常,Android Studio动态调试AKP需要的软件集合。
3.动态调试smali 3.1 生成Smali文件【AndroidStudio使用AndroidStudio动态调试Smali文件】将需要编译的软件放到apktool目录下面。

AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

然后执行这个命令:
java -jar baksmali-2.0.3.jar test.apk -o ./projects/test/src

就可以得到projects这个文件夹。在执行上面这行代码时,可能会遇到“com.beust.jcommander.MissingCommandException: Expected a command”的异常信息。这时候可以运行
java -jar baksmali-2.0.3.jar -?

来查看帮助信息。通过报出的异常信息,和观察的帮助信息后,知道应该添加disassemble命令参数:
java -jar baksmali-2.0.3.jar disassemble test.apk -o ./projects/test/src

3.2 导入Smali文件打开visual studio软件,File -> New -> Import Project...
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

然后选中上面解压出来的test文件夹
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

接下来,我们就可以在project中看到自己的项目了
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

3.3 安装Smalidea插件现在还没有smali插件,所以不会进行语法检查。
File -> Settings...然后选中Plugins,选中Install plugin from disk... ,然后找到解压出来的smalidea 0.0.5.zip文件,点击确认重启,smalidea插件就安装成功了。
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

这时候,笔者建议点开查看打开smali文件看看,如果在Log台中,出现错误信息,那么表明你的Smalidea版本不对,不能正常解析。
3.4 设置远程监听点击 Run -> Edit Configurations...  然后点击+号,选择remote。
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

然后再设置端口为8700
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

3.5 查看DDMS在sdk tools中点击 monitor.bat ,就会看见DDMS,打开客户端的软件端口的信息就会出现,然后选中端口。
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

3.6 开始调试在打好断点后,点击调试按钮。
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片

然后就会断点处出现调试界面,
AndroidStudio使用AndroidStudio动态调试Smali文件

文章图片


    推荐阅读