日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android aapt插件化,Android APK文件(三、AAPT2工具使用)

發(fā)布時(shí)間:2024/3/24 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android aapt插件化,Android APK文件(三、AAPT2工具使用) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

AAPT2(Android 資源打包工具)是一個(gè)構(gòu)建工具,Android Studio 和 Android Gradle 插件使用它來(lái)編譯和打包應(yīng)用的資源。AAPT2 會(huì)解析資源、為資源編制索引,并將資源編譯為針對(duì) Android 平臺(tái)進(jìn)行過(guò)優(yōu)化的二進(jìn)制格式。

Android Gradle 插件 3.0.0 及更高版本默認(rèn)情況下會(huì)啟用 AAPT2,aapt2地址(/sdk_path/build-tools/version/aapt2)。

AAPT2 支持通過(guò)啟用增量編譯實(shí)現(xiàn)更快的資源編譯。這是通過(guò)將資源處理拆分為兩個(gè)步驟來(lái)實(shí)現(xiàn)的:

編譯:將資源文件編譯為二進(jìn)制格式。

鏈接:合并所有已編譯的文件并將它們打包到一個(gè)軟件包中。

這種拆分方式有助于提高增量編譯的性能。例如,如果一個(gè)文件發(fā)生了改變,則只需要重新編譯這個(gè)文件。

編譯

AAPT2 支持編譯所有 Android 資源類型,如可繪制對(duì)象和 XML 文件。調(diào)用 AAPT2 進(jìn)行編譯時(shí),每次調(diào)用都應(yīng)傳遞一個(gè)資源文件作為輸入。然后,AAPT2 會(huì)解析該文件并生成一個(gè)擴(kuò)展名為 .flat 的中間二進(jìn)制文件。

輸入

輸出

XML 資源文件(如 String 和 Style),它們位于 res/values/ 目錄下。

以 *.arsc.flat 作為擴(kuò)展名的資源表。

其他所有資源文件。

除 res/values/ 目錄下的文件以外的其他所有文件都將轉(zhuǎn)換為擴(kuò)展名為 *.flat 的二進(jìn)制 XML 文件。此外,默認(rèn)情況下,所有 PNG 文件都會(huì)被壓縮,并采用 *.png.flat 擴(kuò)展名。如果選擇不壓縮 PNG,您可以在編譯期間使用 --no-crunch 選項(xiàng)。

AAPT2 輸出的文件不是可執(zhí)行文件,稍后您必須在鏈接階段添加這些二進(jìn)制文件作為輸入來(lái)生成 APK。但是,所生成的 APK 文件不是可以立即部署在 Android 設(shè)備上的可執(zhí)行文件,因?yàn)樗话?DEX 文件(已編譯的字節(jié)碼)且未簽名。

編譯語(yǔ)法:compile

aapt2 compile path-to-input-files [options] -o output-directory/

復(fù)制代碼

path-to-input-files必須符合path/resource-type[-config]/file.

錯(cuò)誤示例:G:\Decompile\aapt\colors.xml

運(yùn)行會(huì)報(bào)錯(cuò):error: invalid file path 'G:\Decompile\aapt\colors.xml'.

正確示例:G:\Decompile\aapt\res\values\colors.xml

.\aapt2.exe compile G:\Decompile\aapt\res\values\colors.xml -o G:\Decompile\aapt\

復(fù)制代碼

會(huì)在目錄文件夾下生成values_colors.arsc.flat文件。

編譯選項(xiàng)

選項(xiàng)

說(shuō)明

-o path

指定已編譯資源的輸出路徑。這是一個(gè)必需的標(biāo)志,因?yàn)槟仨氈付?AAPT2 可將已編譯的資源輸出并存儲(chǔ)到其中的目錄的路徑。

--dir directory

指定要在其中搜索資源的目錄。雖然您可以使用此標(biāo)志通過(guò)一個(gè)命令編譯多個(gè)資源文件,但這樣就無(wú)法獲得增量編譯的優(yōu)勢(shì),因此不建議對(duì)大型項(xiàng)目使用。

--pseudo-localize

生成默認(rèn)字符串的偽本地化版本,如 en-XA 和 en-XB。

--no-crunch

停用 PNG 處理。

--legacy

將使用早期版本的 AAPT 時(shí)允許的錯(cuò)誤視為警告。

-v

啟用詳細(xì)日志記錄。

鏈接

在鏈接階段,AAPT2 會(huì)合并在編譯階段生成的所有中間文件(如資源表、二進(jìn)制 XML 文件和處理過(guò)的 PNG 文件),并將它們打包成一個(gè) APK。此外,在此階段還會(huì)生成其他輔助文件,如 R.java 和 ProGuard 規(guī)則文件。不過(guò),生成的 APK 不包含 DEX 字節(jié)碼且未簽名。

鏈接語(yǔ)法:link

aapt2 link path-to-input-files [options] -o outputdirectory/outputfilename.apk --manifest AndroidManifest.xml

復(fù)制代碼

示例

aapt2 link -o output.apk -I android_sdk/platforms/android_version/android.jar compiled/res/values_values.arsc.flat compiled/res/drawable_Image.flat --manifest /path/to/AndroidManifest.xml -v

復(fù)制代碼

鏈接選項(xiàng)

選項(xiàng)

說(shuō)明

-o path

指定鏈接的資源 APK 的輸出路徑。必須指定。

--manifest file

指定要構(gòu)建的 Android 清單文件的路徑。必須指定。

-I

如果您要在資源文件中使用帶有 android 命名空間(例如 android:id)的屬性,則必須使用此標(biāo)志。

--java directory

指定要在其中生成 R.java 的目錄。

--min-sdk-version min-sdk-version

設(shè)置要用于 AndroidManifest.xml 的默認(rèn)最低 SDK 版本。

--target-sdk-version target-sdk-version

設(shè)置要用于 AndroidManifest.xml 的默認(rèn)目標(biāo) SDK 版本。

--version-code version-code

指定沒(méi)有版本代碼時(shí)要注入 AndroidManifest.xml 中的版本代碼(整數(shù))

--compile-sdk-version-name compile-sdk-version-name

指定沒(méi)有版本名稱時(shí)要注入 AndroidManifest.xml 中的版本名稱。

-v

可提高輸出的詳細(xì)程度

轉(zhuǎn)儲(chǔ)

dump 用于輸出有關(guān)從 link 命令生成的 APK 的資源和清單信息。使用 dump 將信息輸出到控制臺(tái)。

轉(zhuǎn)儲(chǔ)語(yǔ)法

aapt2 dump [subcommand] filename.apk [options]

復(fù)制代碼

subcommand

選項(xiàng)

說(shuō)明

apc

Print the contents of the AAPT2 Container (APC) generated fom compilation.

badging

輸出從APK清單中提取的信息

configurations

輸出APK使用的配置信息

packagename

輸出包名

permissions

輸出APK中使用到的權(quán)限信息

strings

輸入資源表常量池的信息

styleparents

Print the parents of a style in an APK.

resources

輸出資源表的信息

xmlstrings

輸出編譯后的常量池

xmltree

輸入編譯后的xml樹(shù)

轉(zhuǎn)儲(chǔ)選項(xiàng)

選項(xiàng)

說(shuō)明

--no-values

禁止在顯示資源時(shí)輸出值。

--file file

將文件指定為要從 APK 轉(zhuǎn)儲(chǔ)的參數(shù)。

-v

提高輸出的詳細(xì)程度。

結(jié)尾

總結(jié)

以上是生活随笔為你收集整理的android aapt插件化,Android APK文件(三、AAPT2工具使用)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。