[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的形式输出目录,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。 
其中Method表示压缩形式,有:Deflate及Stored两种,即该Zip目录采用的算法是压缩模式还是存储模式;可以看出resources.arsc、*.png采用压缩模式,而其它采用压缩模式。 
Ratio表示压缩率。CRC-32未明其意,Sodino盼指教。 

-a:会详细输出所有目录的内容。 
效果图:aapt_list.JPG 
list 
 

2. 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. 

2.1 查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息
aapt dump badging <file_path.apk> 
效果图:aapt_dump_badging.JPG 
 

2.2 查看权限 
aapt dump permissions <file_path.apk> 
效果图:aapt_dump_permissions.JPG 
 

2.3 查看资源列表 
aapt dump resources <file_path.apk> 
一般都会输出很多的信息,如要全部查看,请用下面这两句: 
aapt dump resources <file_path.apk>   > sodino.txt 
sodino.txt 
这样会把所有的信息通过重定向符">"输出到sodino.txt文件中,然后再打开该文件即可查看。 

2.4 查看apk配置信息 
aapt dump configurations <file_path.apk> 

2.5 查看指定apk的指定xml文件。 
aapt dump xmltree <file_path.apk> res/***.xml 
以树形结构输出的xml信息。 
aapt dump xmlstrings <file_path.apk> res/***.xml 
输出xml文件中所有的字符串信息。 
效果图:aapt_dump_xmltree.JPG 
 


由于此处代码量比较大,本人写成批处理形式了。 

使用aapt生成R.java 
rem 测试的工程目录下必须得有gen文件夹,否则会提示:Unable to open class file R.java:No such file or directory 
%aapt% package -f -m -J %GEN% -S %RES% -I %ANDROID_JAR% -M %ANDROID_MANIFEST_XML% 

使用aapt生成资源包文件 
%aapt% package -f -M %ANDROID_MANIFEST_XML% -S %RES% -A %ASSETS% -I %ANDROID_JAR% -F %RESOURCE% 

%GEN%:存放的R.java文件夹路径。 
%RES%:res文件夹路径。 
%ANDROID_JAR%:引用的android.jar路径。 
%ANDROID_MANIFEST_XML%:工程AndroidManifest.xml绝对路径。 
%ASSETS%:asset文件夹路径。 
%RESOURCE%:生成的resouces.arsc存放路径。 

参考: 
Android系列之Android 命令行手动编译打包详解 
http://blog168.chinaunix.net/space.php?uid=22957718&do=blog&cuid=2322671 

其余的不解释,直接见效果图: 
aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...] 
   Delete specified files from Zip-compatible archive. 

aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...] 
   Add specified files to Zip-compatible archive. 

aapt v[ersion] 
   Print program version. 
效果图:aapt_r_a_v.JPG   
 

本文内容归CSDN博客博主Sodino 所有 
转载请注明出处:http://blog.csdn.net/sodino/archive/2011/01/07/6122665.aspx

时间: 2024-11-26 17:40:54

[Android]aapt命令小结的相关文章

Android通过aapt命令获取apk详细信息(包括:文件包名,版本号,SDK等信息)

公司运维问我怎么在windows上安装模拟器,我你说你安装模拟器干什么?他说,我安装模拟器查看app的包名这些信息做统计. 我顿时想,有必要这样折腾么? 我然后就给他装了Android SDK通过build-tools下面的aapt.exe文件执行命令即可得到所有apk信息. aapt命令 aapt l[ist] [-v] [-a] file.{zip,jar,apk} List contents of Zip-compatible archive. aapt d[ump] [--values]

理解Android编译命令

工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令. 一.引言 关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下.先看下面几条指令,相信编译过Android源码的人都再熟悉不过的. source /opt/android1204_17.conf  source setenv.sh lunch make -j12 记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Android源码,指令虽短但过几天

Android签名知识小结_Android

一.为什么要签名 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉. 这样签名其实也是开发者的身份标识.交易中抵赖等事情发生时,签名可以防止抵赖的发生. 二.

详谈Android编译命令_Android

工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令. 一.引言 关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下.先看下面几条指令,相信编译过Android源码的人都再熟悉不过的. source /opt/android1204_17.conf source setenv.sh lunch make -j12 记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Android源码,指令虽短但过几天就

详谈Android编译命令

工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令. 一.引言 关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下.先看下面几条指令,相信编译过Android源码的人都再熟悉不过的. source /opt/android1204_17.conf source setenv.sh lunch make -j12 记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Android源码,指令虽短但过几天就

Android签名知识小结

一.为什么要签名 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉. 这样签名其实也是开发者的身份标识.交易中抵赖等事情发生时,签名可以防止抵赖的发生. 二.

Dos常用基础命令小结

Dos常用基础命令小结,都是一些常用的命令,对于想学习dos的朋友可以参考下   一.基础命令 1 dir 无参数:查看当前所在目录的文件和文件夹. /s:查看当前目录已经其所有子目录的文件和文件夹. /a:查看包括隐含文件的所有文件. /ah:只显示出隐含文件. /w:以紧凑方式(一行显示5个文件)显示文件和文件夹. /p:以分页方式(显示一页之后会自动暂停)显示. |more:前面那个符号是""上面的那个,叫做重定向符号,就是把一个 命令的结果输出为另外一个命令的参数.more也是

android adb-mac下用Android adb命令安装apk文件到真机报错

问题描述 mac下用Android adb命令安装apk文件到真机报错 MacdeMacBook-Pro:~ mac$ adb devices List of devices attached 0021e8d2e115e57a device MacdeMacBook-Pro:~ mac$ adb install -r ~/downloads/app-release.apk failed to copy '/Users/mac/downloads/app-release.apk' to '/dat

Android 官方命令深入分析之android

作者:宋志辉 android命令是一个非常重要的开发工具,它可以: 创建.删除和查看Android Virtual Devices(AVDs). 创建和更新android项目. 更新你的android SDK. 如果你在使用Android Studio或者eclipse,android命令已经被整合到IDE中.所以你无需直接在命令行运行.要想查看android命令的介绍,可以运行android –help命令. 语法 android [global 选项] action [action 选项]