apktool d --no-res douyin.apk -o out1
调试步骤
反编译apk
- 使用apktool工具反编译apk
java -jar apktool.jar d -fo out/
- 在AndroidManifest.xml里面的Application标签添加以下内容打开调试开关
<application android:debuggable="true" ....
- 除此之外,还要在启动的Activity的onCreate方法添加等待调试语句,防止apk已启动就代码执行了,具体看一下:
invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
和包,将上一个步骤产生的文件合成apk
- 和包
java -jar apktool.jar b out/
- 签名并安装到手机上,如果此时启动应用,apk可能处于白屏无影响状态,这就是等待你调试启动
Android studio开始调试
- 将第一个步骤反编译产生的smali文件导入到studio工程中,一直选默认即可

- 使用adb 命令或者手动启动应用,adb命令如下:
adb shell am start -D -n com.jack.qrcode/.ui.MainActivity

-D:开启debug模式
-n打开以包名/Activity名方式启动
相关命令详解可点击
- 查看手机端的应用进程并进行端口映射
adb shell ps | grep "qrcode"
adb forward tcp:8901 jdwp:16886

插入知识点:adb调试桥,adb调试桥是Android官方定制的一款Android强大的调试工具,通过adb工具我们可以向设备发送调试指令,获取设备的运行状态,操作控制设备;adb调试桥分为三个部分:服务器(PC端,代码在Android sdk里面)、客户端(PC端,我们通常发送一个指令,如adb shell install xx.apk就是客户端的操作)和后台程序(设备端,接收执行反馈状态);服务端端用于连接客户端和后台程序,知道数据发送接收工作,Android studio等开发工具的调试工具部分就是利用adb功能编写,上面的端口映射也就是讲PC端口8091的数据都转发到设备端16886的进程中去;具体工作流程可点击这里:
- 配置Android studio的debug参数

- 设置断点后开始调试即可,下图是到断点处的调试信息

- 后面就可以点IDE上的调试按钮开始调试了,祝你成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】