Android中aapt使用详解

article/2025/10/28 11:58:08
aapt是Android sdk中提供的一个小工具,功能十分强大。appt:Android Asset Packaging Tool ,在sdk的build-tools下,这个工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文件编译成二进制文件。我们可能没有直接使用过这个命令,但是build scripts和IDE插件会使用这个工具打包apk文件构成一个Android 应用程序,具体位于adt-bundle-mac-x86_64-20140702/sdk/build-tools/  这个目录下,可能在里面存在不同api的目录。


这个和你下载的api版本有关,但里面都有aapt工具,下面来说说具体用法,在windows上aapt存在方式为aapt.exe,直接appt就可以执行;Linux或Mac上是一个可执行文件aapt,通过./aapt 执行。如果没有配置环境变量,可以到aapt所在目录执行对应命令;当然你也可以按照配置adb命令那样配置aapt,这样在Terminal或dos窗口就能直接执行aapt命令。
在~/.bash_profile文件里添加如下:
export PATH=${PATH}:/your_path/sdk/build-tools/25.0.2
具体路径可以先进到build-tools目录,然后执行pwd命令获取路径,其实通过aapt 就会打印所有的用法。
下面简单总结下几个用法
1、列举apk里所有文件
aapt l qq.apk
aapt l 有如下参数:
-v:会以table的形式输出目录,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。
aapt l -v qq.apk


其中Method表示压缩形式,有:Deflate及Stored两种,即该Zip目录采用的算法是压缩模式还是存储模式;可以看出resources.arsc、*.png采用压缩模式,而其它采用压缩模式,Ratio表示压缩率,CRC-32循环冗余校验
-a:会详细输出所有目录的内容.比如想知道apk包名,可以配合grep命令
aapt l -a *.apk | grep "package"
2、aapt d[ump] [--values] [--include-meta-data] WHAT file.{apk} [asset [asset ...]]
   strings          Print the contents of the resource table string pool in the APK.  //查询字符串
  badging          Print the label and icon for the app declared in APK.
   permissions      Print the permissions from the APK.  查询权限
   resources        Print the resource table from the APK. 查询资源
   configurations   Print the configurations in the APK. 查询配置
   xmltree          Print the compiled xmls in the given assets. 以树形结构输出的xml信息
   xmlstrings       Print the strings of the given compiled xml assets. 输出xml文件中所有的字符串信息
利用aapt dump查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息
aapt d badging *.apk
当然如果只想查询权限或string只需把badging替换成strings或permissions就行,具体dump后接的参数可以看上面
aapt d permissions *.apk
3、 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] \
        [-D main-dex-class-list-file] \
        [-S resource-sources [-S resource-sources ...]] \
        [-F apk-file] [-J R-file-dir] \
        [--product product1,product2,...] \
        [-c CONFIGS] [--preferred-density DENSITY] \
        [--split CONFIGS [--split CONFIGS]] \
        [--feature-of package [--feature-after package]] \
        [raw-files-dir [raw-files-dir] ...] \
        [--output-text-symbols DIR]
Package the android resources.  It will read assets and resources that are supplied with the -M -A -S or raw-files-dir arguments.  The -J -P -F and -R options control which files are output.
-f 如果编译出来的文件已经存在,强制覆盖。
-m 使生成的包的目录放在-J参数指定的目录。
-J 指定生成的R.Java的输出目录
-S res文件夹路径
-A assert文件夹的路径
-M AndroidManifest.xml的路径
-I 某个版本平台的android.jar的路径
-F 具体指定apk文件的输出
将工程的资源编译R.java文件
aapt package -m -J <R.java目录> -S <res目录> -I <android.jar目录>  -M <AndroidManifest.xml目录>
将工程的资源编译编译到一个包里
aapt package -f  -S <res目录> -I <android.jar目录> -A<assert目录>  -M <AndroidManifest.xml目录> -F <输出的包目录>
4、从打包好的文件中删除指定文件
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 c[runch] [-v] -S resource-sources ... -C output-folder ...
Do PNG preprocessing on one or several resource folders and store the results in the output folder.
aapt s[ingleCrunch] [-v] -i input-file -o outputfile
Do PNG preprocessing on a single file.
7、aapt v[ersion] 查看aapt版本号

http://chatgpt.dhexx.cn/article/4SUDAvr7.shtml

相关文章

aapt命令详解

aapt是android自动打包工具之一。 环境配置&#xff1a; aapt一般在android sdk的build-tools中对应文件夹里面&#xff0c;将其路径添加到环境变量中&#xff0c;即可在命令行中直接使用aapt命令&#xff1b; aapt参数详解 aapt 命令后可直接查看参数详解 aapt l[ist] [-v…

aapt 命令查看apk包名(aapt命令大全)

1 aapt是什么&#xff1a; aapt即Android Asset Packaging Tool&#xff0c;在SDK的build-tools目录下。该工具可以查看&#xff0c;创建&#xff0c; 更新ZIP格式的文档附件(zip, jar, apk)。也可将资源文件编译成二进制文件&#xff0c;尽管你可能没有直接使用过aapt工具&…

aapt命令的使用

一.背景 1.最初使用aapt是为了做安卓应用的安全性测试。对于普通用户权限的应用我们通常使用的方法是在shell下run-as ,如返回值为run-as: Package ‘’ is not debuggable,我们就认为测试通过。在我们的安卓平台从7.x升为9.x以后&#xff0c;以后我们测试的应用改为系统权限&a…

Word插入公式自动编号+交叉引用

针对于word自带的公式编辑器 一、公式编号 1.插入公式 ‘“alt”“” &#xff0c;弹出插入公式&#xff0c;此处推荐SimpleTex可直接截图识别公式&#xff0c;直接复制进word&#xff0c;亲测好用。 2. 编号 2.1 公式后添加“#”&#xff0c;光标放在"#"后。 2.2…

批量删除引用#批量删除交叉引用

批量删除引用 原文如下&#xff1a; 批量删除引用操作 1&#xff09;ctrH进行替换操作 2&#xff09;特殊格式选中“尾注标记” 3&#xff09;然后被替换的内容就会变^e 4&#xff09;全部替换后如图 批量删除交叉引用 如上图还存在交叉引用没有被删除 更新域之后 替换…

在毕业设计论文Word中交叉引用参考文献

前言&#xff1a;临近毕业季&#xff0c;撰写毕业设计论文是非常关键的一步&#xff0c;往往毕业论文需要引用大量参考文献才能论证自己的研究内容&#xff0c;且参考文献需要交叉引用。 在学位论文中引用参考文献时&#xff0c;应在引出处的右上方用方括号标注阿拉伯数字编排…

论文写作:word连续交叉引用

文章目录 一、问题背景二、步骤 一、问题背景 在写作得时候&#xff0c;使用word的 “交叉引用”功能可以形成超链接格式的标号。但是交叉引用每次只能选择一篇论文&#xff0c;在连续选择多篇论文的时候&#xff0c;就是 “[1][2][3]” 而不是 “[1-3]” 这样的格式。 如图&a…

word交叉引用多个参考文献

1、对参考文献进行编号 2、引用–>交叉引用&#xff0c;插入多个参考文献 3、选中参考文献&#xff0c;右击选择切换域代码&#xff0c;得到&#xff1a; 4、在第一篇文献后添加 \#“[0”&#xff0c;最后一篇添加 \#“0]”&#xff0c;位于中间的文献添加 #“”&#xff0c…

Word交叉引用怎么才能只引用编号项

需求&#xff1a; 如上图&#xff0c;题注标签和引用的标签不一致&#xff0c;但 Word2016 只有【仅标签和编号】选项&#xff0c;没有仅标签选项。 解决方法&#xff1a; &#xff08;1&#xff09;插入题注>勾选【从题注中排除标签】 &#xff08;2&#xff09;在文中插…

word交叉引用的理解

交叉引用&#xff0c;就类似一个超链接&#xff0c;其状态跟自动生成的目录一样&#xff0c;只要按住ctrl键&#xff0c;单击后即可切换到引用的地方。 引用的类型包括对标题的引用&#xff0c;对图Figure 对表Table的引用等。 存在一个问题&#xff1a;自定义的标题&#xff…

Word 参考文献管理 - 交叉引用 + 批量修改上标

Word参考文献管理 - 交叉引用 批量修改上标 引言一、参考文献编号设置二、交叉引用三、域代码修改四、批量修改上标 引言 感觉Word参考文献管理不如Latex方便&#xff0c;但是有些论文必须要用word写… Word管理参考文献的三种方法1 详细总结Word交叉引用的流程如下&#xff…

参考文献的交叉引用

文章目录 插入参考文献寻找参考文献参考文献顺序更新 我们在写论文的时候需要引用参考文献&#xff0c;一般我们使用的是交叉引用&#xff0c;下面我详细的讲述一下如果在参考文献处加入交叉引用。 插入参考文献 寻找参考文献 参考文献顺序更新 像上图 我们发现参考文献的顺序…

word里面做交叉引用办法

1 列举自己的引用文献&#xff0c;右键选中《项目符号和编号》 2 选择想要的格式 圈1两侧加[] 3 引用-交叉引用 4 在需要插入的位置选择对应文献即可 记得一定要选《段落编号》 备注快捷键&#xff1a; 上角标快捷键是shiftctrlj加号 下角标快捷键是ctrlj加号

【参考文献交叉引用教程】

Word2021 参考文献交叉引用教程 0 前言1 格式分类2 格式设置方法2.1 引用单个参考文献2.2 引用两个连续的参考文献2.3 引用三个及以上连续的参考文献2.4 引用三个及以上非连续的参考文献 0 前言 对于多个参考文献引用的&#xff0c;简单来说&#xff0c;就是将引用切换到代码域…

word域代码交叉引用合并

word域代码交叉引用 一. 两个引用的情况二. 多个引用三、注意事项 一. 两个引用的情况 一般插入两个交叉引用之后的效果是这样的[1][5]&#xff0c;如果想变成[1,5]&#xff0c;就要用到域代码&#xff0c;步骤如下&#xff1a; 右键点击“切换域代码” 然后会变成这样&#xf…

IDA交叉引用详解

交叉引用 1.代码交叉引用2. 数据交叉引用3. 交叉引用列表 1.代码交叉引用 代码交叉引用的前缀为&#xff1a;CODE XREF如下图显示&#xff0c;箭头方向表示引用位置的相对方向。 每一个交叉引用的最后一位后缀表示引用的类型&#xff1a; o 普通流 &#xff0c;表示一条指令到…

如何使用word管理参考论文——交叉引用

首先&#xff0c;将参考文献写在文档末尾&#xff0c;并使用编号。编号后才能使用交叉引用&#xff0c;交叉引用不能引用不存在的东西 。 然后将光标置于待插入位置&#xff0c;点击菜单引用-》题注-》交叉引用 在弹出的菜单里选择编号项和段落编号 参考文献不必按顺序列出&…

Word交叉引用连续引用多个参考文献

在写论文之时&#xff0c;难免会引用参考文献&#xff0c;有时会连续引用多个参考文献 1.准备好参考文献和引用点 2.交叉引用 比如要连续引用参考文献1-至参考文献4&#xff0c;可先交叉引用参考文献1和参考文献4&#xff0c;交叉引用好的参考文献如下图&#xff0c;我们的目…

word 批量把参考文献的交叉引用变成上标形式

背景 写创新项目&#xff0c;开题报告都遇到了。很多参考文献都是写一篇就引用一篇嘛&#xff0c;然后每次手动去改成上标&#xff0c;手腕疼&#xff0c;就想着能不能简单点的搞&#xff0c;所以有了如下的博文 步骤 1、CtrlH打开替换界面&#xff0c;选项哪儿选择使用通配符…