【Android自动化打包】01. aapt的用法

article/2025/10/28 11:59:49

 

什么是aapt?

执行命令: C:\Users\Xiaopeng>aapt

 

Android Asset Packaging Tool

1. 列出apk包的内容

aapt l[ist] [-v] [-a] file.{zip,jar,apk}

 

注:filepath是apk存放的路径

 

1.1 aapt l -v filepath/..apk  :以table的形式列出来    (不过我用起来老是出,win7和xp都一样,大家可以试一下)


 

1.2 aapt l -a filepath/..apk    : 详细的列出apk的内容


由于内容太多,我们把内容都存放到txt文件里,打开查看


1.3 aapt l filepath/..apk  : 查看apk内容

 

 

由于内容太多,我们把内容都存放到txt文件里,打开查看


 

对比一下可以看出, aapt l -a filepath/..apk 显示的apk内容更详细

 

2. 查看apk的一些信息

 

aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]
   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.
   xmlstrings       Print the strings of the given compiled xml assets.

 

aapt d badging filepath/..apk :显示标签、图标和应用程序的相关描述。  (这个命令很有用啊,我写过一个自动化更新下载的程序,就用到这个命令来校验应用的包名、版本和权限)

 

aapt d permissions filepath/..apk :显示apk所具有的系统权限

 

 

aapt d badging filepath/..apk : 显示apk的资源列表  (很多内容,如果想看最好还是转到txt里面查看吧)


 

aapt d configurations filepath/..apk : 显示apk的配置信息    


 

aapt d xmltree filepath/..apk  xmlname :  以树型显示apk中某个xml文件

 

例:以树型显示QQapk中 AndroidManifest.xml文件


 

aapt d xmlstrings filepath/..apk  xmlname :  显示apk中某个xml文件中所有的字符

 

例:显示QQapk中 AndroidManifest.xml中的字符

 

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,...] \
        [-c CONFIGS] [--preferred-configurations CONFIGS] \
        [-o] \
        [raw-files-dir [raw-files-dir] ...]

 

哇,有点多,参考别人给出的解释:

 

-f    如果编译出来的文件已经存在,强制覆盖

-m  使生成的包的目录存放在-J参数指定的目录

-J    指定生成的R.java 的输出目录 

-S    res文件夹路径

-A    assert文件夹路径

-I     某个版本平台的android.jar的路径

-F    具体指定APK文件的输出 

实例:

 

一. 将工程的资源编译到R.java文件

 

aapt package -m -J <R.java文件夹> -S <res路径> -I <android.jar路径> -M<AndroidManifest.xml路径>

 

实例:

1. cmd -- 定位到android源文件目录,如: cd  E:\wirelessqa\hi ---  根据上面给出的命令套进去

 

<R.java文件夹> :gen\com\perf\

<res路径>: res

<android.jar路径> :    

E:\Software\android-sdk-windows-1.6_r1\platforms\android-1.6\android.jar  这个要看你apk对应支持的android版本

这里有很多,找到对应的

                                                                                                                

<AndroidManifest.xml路径>: AndroidManifest.xml 

 

OK,执行命令: 

 

aapt p -f -m -J gen\com\perf\ -S res -I E:\Software\android-sdk-windows-1.6_r1\platforms\android-1.6\android.jar -M AndroidManifest.xml

 

 

 

二. 将工程的资源编译到一个APK包里

 

aapt package -f -S <res路径> -I <android.jar路径> -A <assert路径> -M <AndroidManifest.xml路径> -F <输出的包目录+包名>

 

实例:

1. cmd -- 定位到android源文件目录,如: cd  E:\wirelessqa\hi ---  根据上面给出的命令套进去

 <res路径>: res

<android.jar路径>:

E:\Software\android-sdk-windows-1.6_r1\platforms\android-1.6\android.jar

<assert路径> :assets

<AndroidManifest.xml路径>: 当前目录下的 AndroidManifest.xml

<输出的包目录+包名>: 当前目录下 hi.apk

 

OK,执行命令: 

aapt p -f -S res -I E:\Software\android-sdk-windows-1.6_r1\platforms\android-1.6\android.jar -A assets -M AndroidManifest.xml -F hi.apk

 

4. 移除打包好的apk中的文件

 

aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]

实例:将apk中的某个文件移除掉     命令:aapt r <你的apk文件路径> <想要移除的文件名>

 

 

先从hi.apk除除AndroidManifest.xml文件,再尝试去显示,结果无法找到,证明我们已经移除成功。

 

5. 添加文件到打包好的apk中


aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]

 

实例:将文件添加到打包好的apk文件中   命令:aapt a <你的apk文件路径> <想要添加的文件路径>

 

 

在这里我遇到一个问题,添加文件成功之后再去尝试显示文件,结果提示文件损坏,至于是什么问题我还不知道,如果大家谁知道可以告诉我一下。
 

6. PNG文件预处理


aapt c[runch] [-v] -S resource-sources ... -C output-folder ...        做PNG文件的预处理,并将结果存储到一个文件夹中

 

实例: aapt c -S <res路径> -C <想存放的文件夹路径>


 

结果:


7. 显示aapt版本


aapt v[ersion]   
 

 


http://chatgpt.dhexx.cn/article/Xr9XNW5U.shtml

相关文章

linux下载安装aapt工具

我也上传了资源 aaptapktoolapktool.jar-Android文档类资源-CSDN下载aaptapktoolapktool.jar更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qq_25815655/85195493 这里把需要的包下下来传csdn了。如果命令无法下载可参考csdn下载地址&#xf…

Android AAPT详解

目录 AAPT解释&#xff0c;作用AAPT基本命令AAPT编译资源源码解析AAPT打包和系统不一致的资源ID AAPT是什么 AAPT - Android Asset Packaging Tool 看全称&#xff0c;就可知道AAPT是Android资源打包工具。&#xfffd;讲这个之前&#xff0c;是有必要简单说下Android是如何构…

41.Android aapt工具

41.Android aapt工具 Android aapt工具 aapt 介绍aapt 环境配置aapt listaapt dumpaapt package其他命令 aapt 介绍 可参考官方文档&#xff1a; http://www.androidcn.net/wiki/index.php/Reference/aapt aapt stands for Android Asset Packaging Tool and is included in …

[Android]aapt使用小结

aapt命令小结 aapt即Android Asset Packaging Tool.本文小结了一下该工具的用法。 1. aapt l[ist] [-v] [-a] file.{zip,jar,apk} List contents of Zip-compatible archive. 1.1 列出压缩文件目录 aapt l <file_path.apk> 参数: -v:会以table的形式输出目录,ta…

[aapt包管理]aapt查询Apk最低支持的Android版本

向电视盒子中安装DSvideo_TV.apk时&#xff0c;报盒子版本过低(16年的盒子比较老旧了)&#xff0c;因此想查一下DSvideo_TV.apk支持的最低Android版本&#xff0c;从而针对性的进行盒子更新。 1、如何获取APK支持的最低Android版本&#xff1f; 第一时间想到的是Android SDK提…

Android中aapt使用详解

aapt是Android sdk中提供的一个小工具&#xff0c;功能十分强大。appt&#xff1a;Android Asset Packaging Tool &#xff0c;在sdk的build-tools下&#xff0c;这个工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文件编译成二进制文件。我们可能没有…

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加号