A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- -bash: aapt: command not found
- #Windows
- 1. 找到本机上aapt工具的安装路径(或 aapt2)
- /Users/CommandNotFound/android-sdk/build-tools/28.0.3/aapt
- 2. 切换目录到/usr/local/bin,将aapt复制到该目录下
- /Users/CommandNotFound/android-sdk/build-tools/28.0.3/aapt /usr/local/bin
- 3. 运行aapt成功
- $ aapt v
- Android Asset Packaging Tool, v0.2-5747142
- --------------------------
- #Debian
- apt-get install aapt
- #Ubuntu
- apt-get install aapt
- #Kali Linux
- apt-get install aapt
- #Raspbian
- apt-get install aapt
- aapt l[ist] [-v] [-a] <你的应用>
- -v 以table形式列出来
- -a 详细列出内容
- #例如:aapt l <你的apk文件>,这个命令就是查看apk内容
提示:由于我们工作中需要使用badging参数来查看versioncode,因此可以使用命令aapt dump badging
选项 | 说明 | 例子 |
---|---|---|
badging | 查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息 | aapt dump badging file_path.apk |
permissions | 查看apk包的权限信息 | aapt dump permissions file_path.apk |
resources | 查看资源列表 | aapt dump resources file_path.apk >1.txt |
configurations | 查看apk配置信息 | aapt dump configurations file_path.apk |
xmltree | 以树形结构输出的xml信息。 | aapt dump xmltree file_path.apk res/***.xml |
xmlstrings | 查看指定apk的指定xml文件。 | aapt xmlstrings resources file_path.apk res/***.xml |
- aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]
- #例如:aapt d permissions <apk文件>, 这个就是显示这个apk所具有的权限
- #android 编译资源打包资源文件的命令
- 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] \
- [-D main-dex-class-list-file] \
- [-S resource-sources [-S resource-sources ...]] \
- [-F apk-file] [-J R-file-dir] \
- [--product product1,product2,...] \
- [-c CONFIGS] [--preferred-density DENSITY] \
- [--split CONFIGS [--split CONFIGS]] \
- [--feature-of package [--feature-after package]] \
- [raw-files-dir [raw-files-dir] ...] \
- [--output-text-symbols DIR]
- -d:包括一个或多个设备资源,由逗号分隔;
- -f:覆盖现有的文件命令,加上后编译生成直接覆盖目前已经存在的R.java;
- -m:使生成的包的目录放在-J参数指定的目录;
- -u:更新现有的包 u = update;
- -v:详细输出,加上此命令会在控制台输出每一个资源文件信息,R.java生成后还有注释。
- -x:创建扩展资源ID;
- -z:需要本地化的资源属性标记定位。
- -M:AndroidManifest.xml的路径
- -0:指定一个额外的扩展. apk文件将不会存储压缩
- -g:制定像素迫使图形的灰度
- -j:指定包含一个jar或zip文件包,这个命令很特别
- –debug-mode:指定的是调试模式下的编译资源;
- –min-sdk-versopm VAL:最小SDK版本 如是7以上 则默认编译资源的格式是 utf-8
- –target-sdk-version VAL:在androidMainfest中的目标编译SDK版本
- –app-version VAL:应用程序版本号
- –app-version-name TEXT:应该程序版本名字;
- –custom-package VAL:生成R.java到一个不同的包
- –rename-mainifest-package PACKAGE:修改APK包名的选项;
- –rename-instrumentation-target-package PACKAGE:重写指定包名的选项;
- –utf16:资源编码修改为更改默认utf – 16编码;
- –auto-add-overlay:自动添加资源覆盖
- –max-res-version:最大资源版本
- -I:指定的SDK版本中android.jar的路径
- -A:assert文件夹的路径
- -G:一个文件输出混淆器选项,后面加文件逗号隔开.
- -P:指定的输出公共资源,可以指定一个文件 让资源ID输出到那上面;
- -S:指定资源目录 一般是 res
- -F:指定把资源输出到 apk文件中
- -J:指定R.java输出的路径
- raw-file-dir:附加打包进APK的文件
常用:查看APK的信息
- [root@dsp_web_95 09]$aapt d badging Z5GoecB71543801820973OhhMig9T.apk
- package: name='com.tansuotv.vcgame' versionCode='20406' versionName='2.4.6'
- sdkVersion:'17'
- targetSdkVersion:'21'
- uses-permission:'android.permission.ACCESS_DOWNLOAD_MANAGER'
- uses-permission:'android.permission.ACCESS_WIFI_STATE'
- uses-permission:'android.permission.CHANGE_WIFI_STATE'
- uses-permission:'android.permission.INTERNET'
- uses-permission:'android.permission.ACCESS_NETWORK_STATE'
- uses-permission:'android.permission.KILL_BACKGROUND_PROCESSES'
- uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
- uses-permission:'android.permission.READ_EXTERNAL_STORAGE'
- uses-permission:'android.permission.MOUNT_UNMOUNT_FILESYSTEMS'
- uses-permission:'android.permission.DOWNLOAD_WITHOUT_NOTIFICATION'
- uses-permission:'android.permission.READ_PHONE_STATE'
- uses-permission:'android.permission.ACCESS_COARSE_LOCATION'
- application: label='家嬉兔游戏' icon='res/mipmap-xhdpi-v4/icon_launch200.png'
- launchable activity name='com.tansuotv.vcgame.activity.SplashActivity'label='' icon=''
- uses-feature:'android.hardware.location'
- uses-feature:'android.hardware.location.network'
- uses-feature:'android.hardware.wifi'
- uses-feature:'android.hardware.touchscreen'
- main
- other-activities
- other-receivers
- other-services
- supports-screens: 'small' 'normal' 'large' 'xlarge'
- supports-any-density: 'true'
- locales: '--_--' 'ca' 'da' 'fa' 'ja' 'nb' 'de' 'af' 'bg' 'th' 'fi' 'hi' 'vi' 'sk' 'uk' 'el'
- 'nl' 'pl' 'sl' 'tl' 'am' 'in' 'ko' 'ro' 'ar' 'fr' 'hr' 'sr' 'tr' 'cs' 'es' 'it' 'lt' 'pt'
- 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'fr_CA' 'lo_LA' 'en_GB' 'bn_BD' 'et_EE' 'ka_GE' 'ky_KG'
- 'km_KH' 'zh_HK' 'si_LK' 'mk_MK' 'ur_PK' 'sq_AL' 'hy_AM' 'my_MM' 'zh_CN' 'pa_IN' 'ta_IN'
- 'te_IN' 'ml_IN' 'en_IN' 'kn_IN' 'mr_IN' 'gu_IN' 'mn_MN' 'ne_NP' 'pt_BR' 'gl_ES' 'eu_ES'
- 'is_IS' 'es_US' 'pt_PT' 'en_AU' 'zh_TW' 'ms_MY' 'az_AZ' 'kk_KZ' 'uz_UZ'
- densities: '160' '240' '320' '480' '640'
- native-code: 'armeabi'
打包好的apk中移除文件
- #aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]
- #例如:这个就是将apk中的AndroidManifest移除掉
- aapt r {你的apk文件} AndroidManifest.xml
添加文件到打包好的apk中
- #aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]
- #例如:这个就是将文件添加到打包好的apk文件中
- aapt a {你的apk文件} {要添加的文件路径}
显示aapt的版本
- #aapt v[ersion]
- [root@Dev ~]$aapt v
- Android Asset Packaging Tool, v0.2
在 Windows 上执行 aapt 命令的小伙伴,可能有时候发现出来的结果是乱码?其实是 Windows 下的命令窗口默认是采用非UTF-8编码的,有时候运行一些UTF-8编写的批处理文件在控制台中的输出就是乱码..
解决办法:
用 CHCP
设置编码,这是MD DOS中的命令,用来显示或设置活动代码页编号的。用法是:
- CHCP [num]
- #其中num指定的是代码页的编号。
- #这个参数是可选的,如果,在默认的cmd窗口中,我们只输入chcp,
- 显示的将类似活动的代码页: 936
以下是几种常用的编码:
- #要设置CMD窗口编码格式为UTF-8,运行cmd,输入下面命令:
- chcp 65001