aapt

来源:互联网 发布:小额贷款那个软件最好 编辑:程序博客网 时间:2024/06/05 17:25

对网上相关方面的资料做了整理
aapt 工具, 位于 \android-sdk\build-tools 里面然后选个版本进入 ,就会有aapt
主要作用就是 可以查看apk文件中的相关信息,和编译

1.aapt l[list]:列出资源压缩包里的内容,内容较多,可以将内容输出到 txt文件中查看。
appt l > xxx.txt

2.aapt r[remove]:从压缩包中删除指定文件。
aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 …]
实例:将apk中的某个文件移除掉
命令:aapt r <你的apk文件路径> <想要移除的文件名>

3.aapt a[add]:向压缩包中添加指定文件
添加文件到打包好的apk中
aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 …]
实例:将文件添加到打包好的apk文件中   
命令:aapt a <你的apk文件路径> <想要添加的文件路径>
在这里我遇到一个问题,添加文件成功之后再去尝试显示文件,结果提示文件损坏,至于是什么问题我还不知道,如果大家谁知道可以告诉我一下。
4.aapt v[version]:打印aapt的版本

5.aapt d[dump]:查看APK包内指定的内
详细用法:
aapt d[dump] [–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.

5.1 aapt dump xmlstrings XXXX.apk xxx.xml: 显示apk中某个xml文件中所有的字符

5.2 aapt dump badging XXX.apk (可以查看 很多的相关信息 )

package: name=’com.baidu.netdisk’ versionCode=’471’ versionName=’7.13.3’ platfor
mBuildVersionName=’6.0-2438415’
sdkVersion:’9’
targetSdkVersion:’19’
uses-permission: name=’android.permission.VIBRATE’
uses-permission: name=’android.permission.INTERNET’
uses-permission: name=’android.permission.READ_PHONE_STATE’
uses-permission: name=’android.permission.ACCESS_WIFI_STATE’
uses-permission: name=’android.permission.ACCESS_NETWORK_STATE’
uses-permission: name=’android.permission.WRITE_EXTERNAL_STORAGE’
uses-permission: name=’android.permission.WRITE_SETTINGS’
uses-permission: name=’android.permission.WAKE_LOCK’
uses-permission: name=’android.permission.GET_TASKS’
uses-permission: name=’android.permission.USE_CREDENTIALS’
uses-permission: name=’android.permission.MANAGE_ACCOUNTS’
uses-permission: name=’android.permission.AUTHENTICATE_ACCOUNTS’
uses-permission: name=’android.permission.RECEIVE_BOOT_COMPLETED’
uses-permission: name=’android.permission.MOUNT_UNMOUNT_FILESYSTEMS’
uses-permission: name=’android.permission.SYSTEM_ALERT_WINDOW’
uses-permission: name=’com.baidu.permission.SHARE’
uses-permission: name=’android.permission.READ_CONTACTS’
uses-permission: name=’android.permission.WRITE_CONTACTS’
uses-permission: name=’android.permission.READ_SMS’
uses-permission: name=’android.permission.WRITE_SMS’
uses-permission: name=’android.permission.READ_CALL_LOG’
uses-permission: name=’android.permission.CHANGE_WIFI_STATE’
uses-permission: name=’android.permission.ACCESS_COARSE_LOCATION’
uses-permission: name=’android.permission.ACCESS_FINE_LOCATION’
uses-permission: name=’android.permission.ACCESS_MOCK_LOCATION’
uses-permission: name=’android.permission.READ_LOGS’
uses-permission: name=’android.permission.CAMERA’
uses-permission: name=’android.permission.DISABLE_KEYGUARD’
uses-permission: name=’android.permission.BROADCAST_STICKY’
uses-permission: name=’android.permission.SEND_SMS’
uses-permission: name=’android.permission.CALL_PHONE’
uses-permission: name=’android.permission.FLASHLIGHT’
uses-permission: name=’org.fidoalliance.uaf.permissions.FIDO_CLIENT’
uses-permission: name=’android.permission.USE_FINGERPRINT’
uses-permission: name=’com.fingerprints.service.ACCESS_FINGERPRINT_MANAGER’
uses-permission: name=’com.sec.feature.fingerprint_manager_service’
uses-permission: name=’android.permission.SET_ACTIVITY_WATCHER’
uses-permission: name=’android.permission.ACCESS_DOWNLOAD_MANAGER’
uses-permission: name=’android.permission.DOWNLOAD_WITHOUT_NOTIFICATION’
uses-permission: name=’android.permission.RECORD_AUDIO’
uses-permission: name=’android.hardware.sensor.accelerometer’
uses-permission: name=’android.permission.GET_ACCOUNTS’
uses-permission: name=’android.permission.CHANGE_NETWORK_STATE’
uses-permission: name=’android.permission.REORDER_TASKS’
uses-permission: name=’com.android.launcher.permission.READ_SETTINGS’
uses-permission: name=’com.android.launcher.permission.WRITE_SETTINGS’
uses-permission: name=’android.permission.CHANGE_WIFI_MULTICAST_STATE’
uses-permission: name=’android.permission.BROADCAST_PACKAGE_REMOVED’
uses-permission: name=’android.permission.READ_EXTERNAL_STORAGE’
uses-permission: name=’android.permission.BLUETOOTH’
uses-permission: name=’android.permission.RECEIVE_SMS’
uses-permission: name=’com.baidu.netdisk.permission.BROADCAST’
application-label:’鐧惧害浜?
application-icon-160:’res/drawable-mdpi-v4/ic_element_appicon_netdisk.png’
application-icon-240:’res/drawable-hdpi-v4/ic_element_appicon_netdisk.png’
application-icon-320:’res/drawable-xhdpi-v4/ic_element_appicon_netdisk.png’
application-icon-480:’res/drawable-xhdpi-v4/ic_element_appicon_netdisk.png’
application: label=’鐧惧害浜? icon=’res/drawable-mdpi-v4/ic_element_appicon_netd
isk.png’
launchable-activity: name=’com.baidu.netdisk.ui.Navigate’ label=’鐧惧害浜? icon
=”
uses-library:’android.test.runner’
feature-group: label=”
uses-feature: name=’android.hardware.camera’
uses-feature: name=’android.hardware.camera.autofocus’
uses-feature: name=’android.hardware.bluetooth’
uses-implied-feature: name=’android.hardware.bluetooth’ reason=’requested andr
oid.permission.BLUETOOTH permission, and targetSdkVersion > 4’
uses-feature: name=’android.hardware.location’
uses-implied-feature: name=’android.hardware.location’ reason=’requested andro
id.permission.ACCESS_COARSE_LOCATION permission, requested android.permission.AC
CESS_FINE_LOCATION permission, and requested android.permission.ACCESS_MOCK_LOCA
TION permission’
uses-feature: name=’android.hardware.location.gps’
uses-implied-feature: name=’android.hardware.location.gps’ reason=’requested a
ndroid.permission.ACCESS_FINE_LOCATION permission’
uses-feature: name=’android.hardware.location.network’
uses-implied-feature: name=’android.hardware.location.network’ reason=’request
ed android.permission.ACCESS_COARSE_LOCATION permission’
uses-feature: name=’android.hardware.microphone’
uses-implied-feature: name=’android.hardware.microphone’ reason=’requested and
roid.permission.RECORD_AUDIO permission’
uses-feature: name=’android.hardware.screen.landscape’
uses-implied-feature: name=’android.hardware.screen.landscape’ reason=’one or
more activities have specified a landscape orientation’
uses-feature: name=’android.hardware.screen.portrait’
uses-implied-feature: name=’android.hardware.screen.portrait’ reason=’one or m
ore activities have specified a portrait orientation’
uses-feature: name=’android.hardware.telephony’
uses-implied-feature: name=’android.hardware.telephony’ reason=’requested a te
lephony permission’
uses-feature: name=’android.hardware.touchscreen’
uses-implied-feature: name=’android.hardware.touchscreen’ reason=’default feat
ure for all apps’
uses-feature: name=’android.hardware.wifi’
uses-implied-feature: name=’android.hardware.wifi’ reason=’requested android.p
ermission.ACCESS_WIFI_STATE permission, requested android.permission.CHANGE_WIFI
_MULTICAST_STATE permission, and requested android.permission.CHANGE_WIFI_STATE
permission’
main
other-activities
other-receivers
other-services
supports-screens: ‘small’ ‘normal’ ‘large’ ‘xlarge’
supports-any-density: ‘true’
locales: ‘–_–’
densities: ‘160’ ‘240’ ‘320’ ‘480’
native-code: ‘armeabi’

6.aapt p[package]:打包生成资源压缩包。
aapt 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] …]

-f 如果编译出来的文件已经存在,强制覆盖
-m 使生成的包的目录存放在-J参数指定的目录
-J 指定生成的R.java 的输出目录
-S res文件夹路径
-A assert文件夹路径
-I 某个版本平台的android.jar的路径
-F 具体指定APK文件的输出

example:

1 将工程的资源编译到一个APK包里, 并将工程的资源编译到R.java文件
(1) aapt package -f -S

0 0
原创粉丝点击