Android 深入系统完全讲解

Posted 程序员入门进阶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 深入系统完全讲解相关的知识,希望对你有一定的参考价值。

2 Smali 调试

Smali 是安卓 Apk 反编译出来的格式,类似于我们 PC 上面的汇编语言。语法可以参考这个文
章:https://blog.csdn.net/yuanguozhengjust/article/details/80493963

PC 上的反编译调试工具用 OD 和 IDA(这个也可以调试 android ),我们这一节想说说 AndroidStudio 调试 Smali 的 方法。

为什么要做这个调试?我们按正常的逻辑是 Smali 文件转化成 java 去看,先看个大概,然后如果是运算之类的,我们有时候需要调试,不断验证变量值。那么调试就显得很重要。然后我们今天说下如何调试 Smali。

1 下载 Smalidea 包
从 https://bitbucket.org/JesusFreke/smali/downloads/
下载 smalidea-0.05.zip ,独立的 jar 包是反编译和打包工具,自己想研究可以下载看看,这里我们不用。

2 Android studio 安装 Smali 插件
File – Settings 搜索 plugins 选择从 Disk 加载


3 下载反编译 Apk 工具 APKDB
从 https://www.duote.com/soft/73200.html
下载下来安装就可以了。

4 反编译 Apk
拿到我们需要调试的 Apk ,选择 Apk,右键菜单,使用 APKDB 编译


一路回车就可以了。编译完会在当前目录下出来一个同名字的目录,就是反编译出来的内容。


然后删掉 original 目录。
5 将我们反编译出来的目录,导入 Android Studio.


选择我们的目录,一路下一步即可。
6 额外备注
当前我的手机是 ROOT 版本,Apk 不需要调试版本,直接安装运行起来。不是 ROOT 版本,
就配置成调试版。(xml 配置 android:debuggable=“true”)
7 开始调试


运行 Apk,然后使用 Run – Attach … Process 选择我们的包名,点击确定即可。然后在我们需要断下的地方,设置断点,这里设置在 onclick 方法里面。


$1 代表匿名类。然后我们点击 Apk 中的按钮,就会在这里断下来。


剩下的就是你自由发挥了。

以上是关于Android 深入系统完全讲解的主要内容,如果未能解决你的问题,请参考以下文章

Android 深入系统完全讲解(31)

Android 深入系统完全讲解(31)

Android深入系统完全讲解(38)

Android深入系统完全讲解(38)

Android 深入系统完全讲解(25)

Android 深入系统完全讲解(25)