在Android開發過程中,我們難免會涉及到WEB方面需求,如果想對WEB中所有APK各自的相關基本資料進行掃描與瞭解,在這裡我們可以對其在android中整合的aapt命令進行剖析,首先,我們在命令列中輸入:aapt help,得到如下詳細列表顯示:
OK,以上是通過HELP得到的相關協助說明,你可以更具其列表顯示來進行相關操作,我就簡單引些例子吧:
首先我開個頭給翻譯下:
Android Asset Packaging Tool
Android 資源套件工具
Vsage:(用法)
aapt l[ist] [-v] [-a] file.{zip,jar,apk}
List contents of Zip-compatible archive.
相容的ZIP歸檔的列表內容
aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]
badging
Print the label and icon for the app declared in APK.
徽章 為聲明的APK列印標籤與表徵圖
permissions Print the permisssions from the APK.
許可權 列印來自於APK中的許可權
resources
Print the resource table from the APK.
資源 列印來自於APK的資源表
configurations
Print the configurations in the APK.
配置 列印來自於APK聲明的設定檔
xmltree
Print the compiled xmls in the given assets.
XML樹 列印給定的資源中編譯後的XML
xmlstrings Print the strings of the given compiled xml assets.
XML字串
列印給定的資源檔中編譯後的字串
appt 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] ...]
Package the android resources.It will read assets and resources that are
supplied with the -M -A -S or raw-files-dir arguments.The -J -P -F and -R
options control with files are output.
上面這段好理解,就是aapt對應APP包的相關資訊,如DEBUG模式,最小版本,目標SDK版本APP名稱與版本以及編碼等資訊的輸出.
appt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]
Delete specified files from Zip-cpmpatible archive.
這是指定移出來自歸檔的某個檔案
appt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]
Add specified files to Zip-compatible archive.
指定某歸檔進行添加檔案
aapt c[runch] [-v] -S resource-sources ... -C output-folder ...
Do PNG preprocessing and store the results in output folder.
對PNG格式處理並進行儲存然後對其結果輸出到檔案夾中
aapt v[ersion]
Print program version.
列印應用程式的版本
Modifiers:
-a print Android-specific data (resources,manifest) when listing
列印androdi指定l列出來的資料,如resource與manifest的資源資料
-c specify which configurations to include.The default is all
configurations.The value of the parameter should be a comma
separated list of configuration value.Locales should be specified
as either a language or language-region pair.Some examples:
指定設定檔相關參數
en
port,en
port,land,en_US
If you put the special locale,zz_ZZ on the list,it will perform
pseudolocalozation on the default locale,modifying all of the
strings so you can look for strings that missed the
internationalization process.Forexample:
port,land,zz_ZZ
-d one or more device assets to include,separated by commas
一個或多個資源檔
-f force overwite of existing files
強制覆寫已經存在的檔案
-g specify a pixel tolerance to force images to grayscale,default 0
-j specify a jar or zip file containing classes to include
-k junk path of file(s) added
-m make package directories under location specified by -J
-o create overlay package (ie only resource; expects <overlay-package> in manifest)
-u upate existing package (add new,replace older,remove deleted files)
-v verbose output
-x create extending (non-application) resource IDs
-z require localization of resource attributes marked with localization=suggested"
-A additional directory in which to find raw asset files
-G A file to output proguard options into.
-F specify the apk file to output
-I add an existing package to base include set
-J specify where to output R.java resurce constant definitions
-M specify full path to AndroidManifest.xml to incliude in zip
-P specify where to output public resource definitions
-S directory in which to find resources.Multiple directories will be scanned
and the first match found (left to right) will take precedence.
-0 specifies an additional extension for which such files will not '
be stored compressed int the .apk.An empty string means to not compress any files at all.
以上為修飾符號可進行測試:
以上我就不一一的翻譯了,其實很好理解,如需要用到哪個參數,對照開頭字母拼字來尋找吧
--debug-mode
inserts android:debuggable="true" in to the application node of the manifest,making the application debuggable even
on production devices.
--min-sdk-version
inserts android:minSdkVersion in to manifest.If the version is 7 or
higher,the default encoding for resources will be in UTF-8.
--target-sdk-version
inserts android:targetSdkVersion in to manifest.
--max-res-version
ignores versioned resource directories above the given value.
--values
when used with "dump resources" also includes resource values.
--version-code
inserts android:versionName in to manifest.
--version-name
inserts android:versionName in to manifest.
--custom-package
generates R.java into a deferent package.
--extra-packages
generate R.java for libraries.Separate libraries with':'.
--generate-dependencies
generate dependency files in the same directories for R.java and resource package
--auto-add-overlay
Automatically add resource that are only in overlays.
--preferred-configurations
Like the -c option for filtering out unneeded configurations,but only expresses a
prefference,If there is no resource available with the preferred configuration then it will not be stripped.
--rename-manifest-package
Rewrite the manifest so that its packeg name is the package name given here.
Relative calss name (for example,Foo) will be changed to absolute names with the old package so that the code does
not need to change.
--rename-instrumentation-target-package
Rewrite the manifest so that all of its instrumentation components target the given package.Useful when used in
congunction with --rename-manifest-package to fix tests against a package that has been renamed.
--product
Specifies which variant to choose for strings that have product variants
--utf166
changes default encoding for resources to UTF-16.Only userful when API level is set to 7 or higher where the default
encoding is UTF-8.
--non-constant-id
Make the resources ID non constant,This is required to make an R java class that does not contain the final value but
is used to make reusable compiled libraries that need to access resource.
以上是對最上面的相關參數值進行解釋,沒事也多看看吧,這些不需要你去記住,你只需要知道有這麼回事即可,就簡單那舉個例子吧:
現在我們有個需求就是想把一個已經存在的APK的相關包與資源路徑顯示出來,我們應該這麼做呢,看,我們根據以上資訊可以得到如下命令:
aapt l -a xxx.apk > xxx.txt
xxx.apk指定哪個apk檔案,xxx.txt:把獲得的資訊輸出到這個檔案,並儲存於目前的目錄中,:
產生的檔案如下:
獲得檔案資訊如下:
,好了,別的就不多說了.需要獲得什麼資訊,你可以帶入相關參數即可
注:之前忘吧圖給貼上來了,現在補上....