@[toc]
1.Android编译打包过程
在这里插入图片描述
图片来自https://www.jianshu.com/p/eaaddfe34d11
用到的工具:
1.aapt
Android资源打包工具,生成R.java文件
路径:${ANDROID_SDK_HOME}/platform-tools/appt
2.aidl
Android接口描述语言,转化为.java文件的工具
路径: ${ANDROID_SDK_HOME}/platform-tools/aidl
3.javac
Java Compiler ,编译Java文件,生成对应的.class文件
路径: ${JDK_HOME}/javac或/usr/bin/javac
4.dex
转化.class文件为Davik VM(此处暂不叙述ART)能识别的.dex文件
路径: ${ANDROID_SDK_HOME}/platform-tools/dx
5.apkbuilder
生成apk包
路径: ${ANDROID_SDK_HOME}/tools/opkbuilder
6.jarsigner
.jar文件的签名工具
路径: ${JDK_HOME}/jarsigner或/usr/bin/jarsigner
7.zipalign
字节码对齐工具
路径: ${ANDROID_SDK_HOME}/tools/zipalign
2.Android反编译与重打包
反编译相关工具:
apktool,编译和反编译apk,从apk中提取图片和布局资源
https://ibotpeaches.github.io/Apktool/install/
dex2jar,将可运行文件classes.dex反编译为jar源码文件
jd-gui,查看jar源码文件
apktool windows下安装:
https://ibotpeaches.github.io/Apktool/install/
1.下载apktool.jar最新版
2.在apktool.jar的同级目录下新建apktool.bat文件
注意: 文件末尾apktool.jar的名字一定要和apktool.jar名字完全一样,比如是apktool_2.4.0.jar,则apktool.bat文件内也必须指定apktool_2.4.0.jar
反编译:
CMD 指令
apktool.bat d source.apk -o <output_dir>
或者
apktool d source.apk -o <output_dir>
![](https://img.haomeiwen.com/i11866078/635544949cafc34f.gif)
重打包
CMD 指令
apktool.bat b <intput_dir> -o built.apk
或者
apktool b <intput_dir> -o built.apk
![](https://img.haomeiwen.com/i11866078/0876c0c3848de211.gif)
3.APK签名
生成签名文件
签名需要keystore文件,可以使用keytool工具生成,一般Java环境都带有keytool命令
可以先配置JAVA JDK环境变量
CMD命令:
keytool -genkey -validity 36000 -keysize 1024 -alias sign -keyalg RSA -keystore C:\Users\cy\Desktop\sign.jks -dname CN=(cy),OU=(cy科技有限公司),,O=(cy科技有限公司),L=(永州市),ST=(湖南省),C=(CN) -storepass 123456 -keypass 123456 -v
![](https://img.haomeiwen.com/i11866078/74a088fbe585d400.gif)
签名APK
CMD指令:
jarsigner -verbose -keystore C:\Users\cy\Desktop\sign.jks -storepass 123456 -signedjar C:\Users\cy\Desktop\signed.apk C:\Users\cy\Desktop\appBuild.apk sign
![](https://img.haomeiwen.com/i11866078/be4943102d46d3d2.gif)
签名APK后验证
CMD命令:
jarsigner -verify C:\Users\cy\Desktop\signed.apk
4.Android zipalign字节对齐
zipalign优化工具在 D:\Android\sdk\build-tools\xxx目录下 zipalign.exe
小编这里是放到了桌面
CMD命令:
zipalign -f -v 4 C:\Users\cy\Desktop\signed.apk C:\Users\cy\Desktop\zipaligned.apk
![](https://img.haomeiwen.com/i11866078/00e27c85bf9f4d77.gif)
各位老铁有问题欢迎及时联系、指正、批评、撕逼
关注专题Android开发常用开源库
微信公众号
QQ群
网友评论