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