转载

Android-aapt/dx命令编译打包APK

命令工具
    AndroidSDK/build-tools/apixx/aapt.exe
    AndroidSDK/build-tools/apixx/aapt/dx.bat
    JDK/bin/javac.exe
注: 以下命令中[]都表示可选

一.aapt命令

功能:
    1.编译res目录xml文件
    2.编译AndroidManifest.xml
    3.生成R.java
    4.生成Resources.arsc

1.查看APK包文件列表
aapt l[ist] [-v] [-a] file.{zip,jar,apk}
 List contents of Zip-compatible archive
这个命令没什么用, .APK和.zip文件没什么区别,可以直接使用压缩解压工具打开,增删改查文件都非常方便

2.查看编译后的xml文件   
aapt d badging x.apk 查看APK的相关描述(如包名、版本、label等)
aapt d permissions x.apk 查看APK的权限
aapt d resources x.apk 查看APK的Resources.arsc
aapt d xmltree x.apk x.xml 查看编译后的XML文件(如AndroidManifest.xml)

3.编译xml文件
aapt p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml]          
    -S    res目录     
    -M    AndroidManifest.xml路径
    -A    assert目录
    -I    android.jar路径
    -J    R.java输出目录
    -F    APK输出目录
3.1.生成R.java
aapt package -J R.java输出目录 -S res路径 -I android.jar路径 -M AndroidManifest.xml路径
3.2.编译xml
aapt package -S res路径 -I android.jar路径 -M AndroidManifest.xml路径 -F 输出目录

二.dx命令

1.把.java编译为.class
使用JDK/bin/javac,编译java源码和R.java
javac -bootclasspath android.jar路径 java源码和R.java路径

2.把.class编译为.dex
dx --dex classes路径

3.查看.dex类和方法数量
dx --find-usages <file.dex> <declaring type> <member>
Find references and declarations to a field or method.
declaring type: a class name in internal form, like Ljava/lang/Object;
member: a field or method name, like hashCode

三.签名

APK签名工具可以用jarsigner或者apksigner

详情请看

http://blog.csdn.net/qq_32115439/article/details/55520012

http://lioil.win/2017/02/18/Signer.html

http://c.lioil.win/2017/02/18/Signer.html

简书: http://www.jianshu.com/p/e130c4bc1bd7

CSDN博客:  http://blog.csdn.net/qq_32115439/article/details/55846094

GitHub博客: http://lioil.win/2017/02/20/AAPT-DX.html

Coding博客: http://c.lioil.win/2017/02/20/AAPT-DX.html

原文  http://blog.uiuno.com/2018/06/12/18/16/08/
正文到此结束
Loading...