You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无APK文件时,如何恢复Android Studio开发的Java应用源码?

从已安装Android应用恢复代码的可行方案

第一步:提取手机上的APK文件

你手机里的应用实际存在对应的APK文件,只是普通权限下无法直接访问,可通过以下两种方式提取:

  • 用ADB命令提取(无需Root)
    1. 打开手机「开发者选项」,开启「USB调试」,用数据线连接电脑
    2. 打开电脑命令提示符/终端,输入adb shell pm list packages,找到你应用的包名(格式类似com.your.app.name)
    3. 输入adb shell pm path com.your.app.name,获取APK在手机内的存储路径(例如/data/app/xxx-1/base.apk)
    4. 输入adb pull /data/app/xxx-1/base.apk ./my-app.apk,将APK文件拉取到电脑本地
  • 用Root权限提取
    如果手机已Root,直接用带Root权限的文件管理器,导航到/data/app/你的应用包名目录,复制其中的base.apk到手机可访问的存储目录(比如SD卡),再传到电脑。

第二步:反编译APK恢复代码

提取到APK后,可通过工具反编译还原代码,但需注意:若应用开启了ProGuard/R8混淆,反编译后的代码变量名会被替换为无意义的a、b、c,可读性下降,但核心业务逻辑仍可还原;未开启混淆的话,代码还原度会很高。

  • 还原Java代码
    1. 将APK文件后缀改为.zip,解压后找到classes.dex文件(多dex应用会有classes2.dex等)
    2. 使用dex2jar工具,执行命令d2j-dex2jar.bat classes.dex(Windows)或d2j-dex2jar.sh classes.dex(Mac/Linux),生成classes-dex2jar.jar文件
    3. 用JD-GUI工具打开该jar文件,即可查看反编译后的Java代码,可直接复制导出
  • 还原资源文件与Smali代码
    若需恢复布局、字符串、图标等资源,或查看底层Dalvik字节码,可使用Apktool:
    1. 执行命令apktool d my-app.apk,当前目录会生成一个与APK同名的文件夹
    2. 文件夹内的res目录是所有资源文件,smali目录是Smali格式的汇编代码(需掌握Smali语法才能读懂,也可转成Java,但不如dex2jar直接)

后续注意事项

  • 反编译得到的代码需要手动整理重构,比如修正变量名、补充注释、调整代码结构,才能重新在Android Studio中正常编译运行
  • 之后务必做好代码备份,比如用Git托管到代码仓库,或定期把项目文件备份到云存储/外接硬盘

内容的提问来源于stack exchange,提问作者FCrocco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:50:48