[Android]aapt命令小結

大搜車-自娛發表於2013-11-29
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
[img]http://hi.csdn.net/attachment/201101/7/7303_1294383652H29i.jpg[/img]

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
[img]http://hi.csdn.net/attachment/201101/7/7303_1294383648Sp08.jpg[/img]

2.2 檢視許可權
aapt dump permissions <file_path.apk>
效果圖:aapt_dump_permissions.JPG
[img]http://hi.csdn.net/attachment/201101/7/7303_1294383648nBnP.jpg[/img]

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
[img]http://hi.csdn.net/attachment/201101/7/7303_12943836494BKC.jpg[/img]


3
由於此處程式碼量比較大,本人寫成批處理形式了。

使用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
[img]http://hi.csdn.net/attachment/201101/7/7303_1294383652s8wL.jpg[/img]

本文內容歸CSDN部落格博主Sodino 所有
轉載請註明出處:http://blog.csdn.net/sodino/archive/2011/01/07/6122665.aspx

相關文章