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

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

一.aapt命令(android application package tool)

功能:
	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.编译打包
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