这里借用一下百度百科,我比较懒
1.列出apk包的内容
aapt l[ist] [-v] [-a] <你的应用>
-v 以table形式列出来
-a 详细列出内容
例如:aapt l <你的apk文件>,这个命令就是查看apk内容
2. 查看apk一些信息
aapt d[ump] [选项] <你的应用>
这里可以输入全称dump,也可以直接用d代替。
选项 |
说明 |
例如 |
badging | 查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息 | aapt dump badging <file_path.apk> |
permissions | 查看权限 | aapt dump resources <file_path.apk> |
resources | 查看资源列表 | aapt dump resources <file_path.apk> > sodino.txt |
configurations | 查看apk配置信息 | aapt dump configurations <file_path.apk> |
xmltree | 以树形结构输出的xml信息。 | aapt dump xmltree <file_path.apk> res/***.xml |
xmlstrings | 查看指定apk的指定xml文件。 | aapt dump xmlstrings <file_path.apk> res/***.xml |
TIP:由于我们工作中需要使用badging参数来查看versioncode,因此可以使用命令aapt dump badging <file_path.apk> | findstr “versionCode”来查看
3.编译android资源
aapt p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] /
[-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] /
[--debug-mode] [--min-sdk-version VAL] [--target-sdk-version VAL] /
[--app-version VAL] [--app-version-name TEXT] [--custom-package VAL] /
[--rename-manifest-package PACKAGE] /
[--rename-instrumentation-target-package PACKAGE] /
[--utf16] [--auto-add-overlay] /
[--max-res-version VAL] /
[-I base-package [-I base-package ...]] /
[-A asset-source-dir] [-G class-list-file] [-P public-definitions-file] /
[-S resource-sources [-S resource-sources ...]] [-F apk-file] [-J R-file-dir] /
[--product product1,product2,...] /
[raw-files-dir [raw-files-dir] ...]
这个比较复杂,只解释几个关键参数。
-f 如果编译出来的文件已经存在,强制覆盖。
-m 使生成的包的目录放在-J参数指定的目录。
-J 指定生成的R.java的输出目录
-S res文件夹路径
-A assert文件夹的路径
-M AndroidManifest.xml的路径
-I 某个版本平台的android.jar的路径
-F 具体指定apk文件的输出
4.打包好的apk中移除文件
aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]
例如:aapt r <你的apk文件> AndroidManifest.xml, 这个就是将apk中的AndroidManifest移除掉
5. 添加文件到打包好的apk中
aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]
例如:aapt a <你的apk文件> <要添加的文件路径>, 这个就是将文件添加到打包好的apk文件中
6.显示aapt的版本
aapt v[ersion]
例如:aapt v, 就是打印这个结果 Android Asset Packaging Tool, v0.2