AAPT2 命令使用
實用的AAPT 命令詳解
當你來到這里,說明你aapt的命令使用也感到迷惑,那么我們一起學習下,以下都是一些實用性比較大的命令,沒啥作用或者作用不大就沒寫出來了。感興趣可以在看下官方文檔(https://developer.android.com/studio/command-line/aapt2?hl=zh-cn#dump_syntax)
AAPT 簡介
aapt 是一個apk資源構建工具,在SDK安裝目錄下的build-tools工具下,aapt2是aapt的升級版,對資源的檢索有了更高的要求,避免資源配置不正確導致的問題。
編譯命令:compile
不壓縮png 圖片(默認壓縮)
–no-crunch
指定在當前目錄下尋找資源文件
–dir
將使用早期版本的 AAPT 時允許的錯誤視為警告。(忽略不正確的配置or資源)
–legacy
生成默認字符串的偽本地化版本,如 en-XA 和 en-XB。(基本不需要)
–pseudo-localize
輸出日志信息
-v
關聯命令:link
指定AndroidManifest.xml
–manifest
指定android.jar
-I
指定Assets目錄
-A
傳遞要鏈接的單個 .flat 文件 (基本不使用)
-R
指定要用于應用的軟件包 ID(值必須在0x7f-0xff,沒啥用)
–package-id
指定生成R.java 文件目錄(跟隨Androidmanifest.xml的包名設置)
–java
生成相同的R.java文件(但是包名不同)
–extra-packages
查看包體信息:dump
輸出從 APK 的清單中提取的基本信息。
badging
輸出 APK 中的資源使用的每項配置(如v21、 v24、mdpi-v4、hdpi-v4)
configurations
輸出從 APK 的清單提取的權限。
permissions
輸出 APK 的資源表字符串池的內容。所有的資源索引名(res/drawable/ic_launcher_background.xml,Aapt)
strings
查看包名
packagename
實例:
基礎命令編譯資源文件
aapt2 compile --dir ./aapt/res -o output/ -v
編譯的資源添加到壓縮文件夾(在link時如果不采用zip文件方式,需要一個個.flat添加)
aapt2 compile --dir ./aapt/res -o output/res.zip -v
單個文件(不知為何沒有輸出文件)
aapt2 compile ./aapt/res/values/strings.xml -o output/
link資源,并且生成apk(apk不包含dex文件,也會生成R.java)
aapt2 link -A ./aapt/assets --package-id 0xff --extra-packages com.my.test ./output/res.zip -I Local\Android\Sdk\platforms\android-30\android.jar -o ./outputfilename.apk --manifest ./aapt/AndroidManifest.xml --java ./test -v
查看apk信息(命令有先后順序)
aapt2 dump badging outputfilename.apk
問題:
1、output/: error: 設備不識別此命令。 (22).
答:需要先創建一個輸出目錄 output,他不會自動創建
2、resource file cannot be a directory. bad resource path.
資源的目錄不正確,相對路徑需要加 ./
3、failed to open file: 數據無效。 (13).
資源路徑搞錯
總結
以上是生活随笔為你收集整理的AAPT2 命令使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于JAVAEE的网络电子相册管理系统的
- 下一篇: java构造函数的作用6_谈谈 java