Apk to gradle project 将apk转成gradle可开发项目
- 不支持加固(加壳)apk
- 资源res可以添加和修改,但是不能删除
- java类可以添加和修改,不能删除;修改的最小单位是方法和字段
在项目目录下,执行(需要设置JAVA_HOME环境变量为JDK1.8):
gradlew outputProject
相关工具将会输出在build/apk2gradle-xxx目录下
或者使用Android Studio、Idea打开项目,执行gradle任务:outputProject
- 修复读取配置文件发生异常问题:Integer cannot be cast to String
- 更换dex2jar工具,修复dex2jar在jdk8出现java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;问题
- 更改资源存储方式,名称含有特殊字符的资源才会放到res.aar,其他资源放在项目src/main/res之下
- 更新了Android-SmaliPlugin版本为1.2.0-b1,支持Copy注解
- 更新Android-SmaliPlugin为1.1.2
- 其他细节优化
- 导出的项目改用Android-SmaliPlugin,支持java+smali混合开发
- 优化资源处理方式
- 新版本androidx对v31做了支持,引用了非原生rom资源,values-v31/colors.xml文件可能包含非AndroidSdk资源,需要手动修复出错位置
- 直接运行debug有可能无法编译smali代码,属于Android-SmaliPlugin问题,请在Android-SmaliPlugin项目提issue
进入工具目录,执行:
java -jar apk2gradle.jar export <apk_file_path> [output_dir]
之后输出相关gradle项目,可以使用Androi Studio 4.+打开
AndroidStudio打开apk2gradle导出的项目,在app/src/main/java目录,创建相关代码即可。 相同类下的方法、字段会替换原本dex的方法和字段
个人博客:http://mosect.com