AAPT是什么?
aapt 是Android Asset Packaging Tool的缩写,是编译和打包资源的工具,在SDK的build-tools目录下。该工具可以查看,创建, 更新ZIP格式的文档附件(zip, jar, apk),也可以将资源文件编译成二进制文件。使用aapt前要在环境变量里配置SDK-tools路径,或者进入该目录运行aapt。尽管你可能没有直接使用过aapt工具,但是build scripts和IDE插件会使用这个工具打包apk文件构成一个Android 应用程序。
PS:Android Gradle Plugin 3.0.0或者更高版本默认开启aapt2(API24,Android7.0)
AAPT常用基本命令
- aapt list [-v] [-a] file.{zip,jar,apk} 列出压缩文件的目录内容
-v 以table形式输入详细信息
-a 详细输出压缩文件中所有目录的内容
2. aapt dump [-values] + apk
badging 查看APK中的配置信息,包括package name, versionCode, versionName, platformBuildVersionName等。
permissions 获取指定APK中声明的权限信息
configuration 打印APK中配置信息
xmltree 获取指定APK的指定xml文件
xmlstrings 打印xml文件中所有字符串信息
- aapt remove [-v] + apk+ file
删除指定apk的file文件,并可以通过aapt -list验证是否删除成功
- aapt add [-v] + apk +file
向指定apk中添加file文件
5. 编译Android资源
aapt package [-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的路径
Ø -F 具体指定apk文件的输出
例:
1.将工程的资源编译成R.java文件
aapt package -m -J <R.java目录> -S <res目录> -I <android.jar目录> -M <AndroidManifest.xml目录>
2.将工程的资源编译到一个包里
aapt package -f -S <res目录> -I <android.jar目录> -A<assert目录> -M <AndroidManifest.xml目录> -F <输出的包目录>
6. aapt v[ersion]
查看aapt版本信息
参考文档: