aapt l[list] [-v] [-a]file.{zip,jar,apk}
-v 以table形式列出来
-a 详细列出内容
例如:aapt l <你的apk文件>,这个命令就是查看apk内容
例如:
>aapt l -v –aapkName.apk
aapt d[ump] [--values] WHAT file.{apk} [as set [asset ...]]
例如:
aapt d permissions apkName.apk 查看权限
>aapt d xmltree apkName.apk AndroidManifest.xml 查看apk的AndroidManifest文件
badging Print the label and icon for the app declared in APK(打印标签和图标应用在APK声明)
permissions Print thepermissions from the APK.(apk应用权限)
resources Printthe resource table from the APK. (apk的资源表)
configurations Print the configurations inthe APK.(UI适配信息)
xmltree Print the compiled xmls in the given assets(xml文件的结构).
xmlstrings Print the strings of the given compiled xml assets.(xml文件里的所有字符串(标签中引号里的内容“”))
3. 显示aapt的版本:
aapt v
显示aapt的版本
4. 添加文件到打包好的apk中
aapt a[dd] [-v] file.{zip,jar,apk}file1 [file2 ...]
例如:aapt a <你的apk文件> <要添加的文件路径>,这个就是将文件添加到打包好的apk文件中
aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]
例如:aapt r <你的apk文件> AndroidManifest.xml, 这个就是将apk中的AndroidManifest移除掉
aaptp[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] /
这个比较复杂,只解释几个关键参数。
-f 如果编译出来的文件已经存在,强制覆盖。
-m 使生成的包的目录放在-J参数指定的目录。
-J 指定生成的R.java的输出目录
-S res文件夹路径
-A assert文件夹的路径
-M AndroidManifest.xml的路径
-I 某个版本平台的android.jar的路径(大写的i)
-F 具体指定apk文件的输出
1. 打包资源文件,生成R.java文件
【输入】Resource文件(工程中res中的文件)、Assets文件(另外一种资源)、AndroidManifest.xml文件、Android基础类库(Android.jar文件)
>aapt package –f -m -j D:\My_Projects\TestAPKNEW\gen\com\example\action02\test\R.java -S D:\My_Projects\TestAPKNEW\res -IE:\TOOL\android-sdk-windows_r21.0.1\platfo
rms\android-11\android.jar -MD:\My_Projects\TestAPKNEW\AndroidManifest.xml
编译好的文件存在目录为:
打包好的资源(Android工程的bin目录resources.ap_)、R.java文件(gen目录中)。
2). 将工程的资源编译编译到一个包里
aapt package -f -S <res目录>-I <android.jar目录> -A<assert目录> -M <AndroidManifest.xml目录> -F <输出的包目录>
疑问:什么是包目录,回答:com.xxx.xxx 这个就是包目录
如下:
>aaptpackage -f -S D:\My_Projects\TestAPKNEW\res -I :\TOOL\android-sdk-windows_r21.0.1\platforms\android-11\android.jar-A :\My_Projects\TestAPKNEW\assets
-MD:\My_Projects\TestAPKNEW\AndroidManifest.xml
-Fcom.test.fyy