aapt命令查看APK信息

aapt命令查看APK信息,第1张

        近期在GooglePlay发布版本时遇到一个问题,新版本合入了应用内付费的功能,但是升级到新版本的用户比以往少太多,不足20%。分析这个问题的原因,原来是由于新版本由于需要做应用内付费,就需要用到一个权限com.android.vending.BILLING,这个权限是新版本的新增权限。

        GooglePlay有一个自动更新应用的功能,且该功能默认是开启的,因此大部分用户的应用更新都是通的GooglePlay的自动更新,但是如果新版本较旧版本而言有新增权限的话,GooglePlay就不会帮你默认更新,则完全需要用户手动更新升级了。

        综上,版本发布前除了测试版本的新增功能之外,检查版本的权限也是很有必要的,如果有新增的权限就需要权衡,是针对该权限的功能重要,还是用户升级重要。如果新增权限至是为了一个用户完全无法感知,对产品完全没有正面影响的话,那么就可以考虑去掉该功能。

      说了这么多,那么回到正题,版本发布前需要坚持版本的权限,并且与上一版本对比校验,确认是否有新增或者减少权限,是版本发布前很有必要执行的一个环节。就想需要确认版本号一样。那么怎么样去查看一个APK的权限信息呢?古老一点的办法就是手机上先安装老版本,在覆盖安装新版本,在手机上看提示。但是这个版本并不靠谱,因为有些权限是不会展示给用户的,就想应用内付费需要的权限com.android.vending.BILLING,我在升级安装的时候,是提示我没有新增权限的。因此想要查看一个是否有新增权限,还是得查看APK完整的权限信息。我在网上找了下办法,发现可以通过aapt命令达到我想要的目的。接下来我就简单讲讲aapt命令。

       aapt即Android Asset Packaging Tool,我们可以在SDK的platform-tools目录下找到该工具。aapt可以查看、 创建、 更新ZIP格式的文档附件(zip, jar, apk)。 也可将资源文件编译成二进制文件,尽管你可能没有直接使用过aapt工具,但是build scripts和IDE插件会使用这个工具打包apk文件构成一个Android 应用程序。接下来我就简单讲下aapt一些简单的应用。

aapt d[ump] [--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.

1.1 查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息

      aapt dump badging

      部分效果图:

1.2 查看权限

        aapt dump permissions

        效果图:

1.3 查看资源列表

       aapt dump resources

       一般都会输出很多的信息,如要全部查看,请用下面这两句:

       aapt dump resources    >sodino.txt

       sodino.txt

       这样会把所有的信息通过重定向符">"输出到sodino.txt文件中,然后再打开该文件即可查看。

1.4 查看apk配置信息

      aapt dump configurations

       部分效果图:

1.5 查看指定apk的指定xml文件。

      aapt dump xmltree res/***.xml

      以树形结构输出的xml信息。

      aapt dump xmlstrings res/***.xml

      输出xml文件中所有的字符串信息。

       以上介绍的只是aapt比较简单的查看应用命令,还有其他一些命令没有做介绍,后续再工作中用到后会继续讲解。

aapt,即Android Asset Packaging Tool。是一个管理资源文件的工具。

具体用法如下:

1. aapt l[ist] [-v] [-a] file.{zip,jar,apk}

List contents of Zip-compatible archive.

1.1 列出压缩文件目录

aapt l <file_path.apk>

参数:

-v:会以table的形式输出目录,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。其中Method表示压缩形式,有:Deflate及Stored两种,即该Zip目录采用的算法是压缩模式还是存储模式;可以看出resources.arsc、*.png采用压缩模式,而其它采用压缩模式。

-a:会详细输出所有目录的内容。

2. aapt d[ump] [--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.

resourcesPrint 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.

2.1 查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息。

2.2 查看权限

aapt dump permissions <file_path.apk>

2.3 查看资源列表

aapt dump resources <file_path.apk>

2.4 查看apk配置信息

aapt dump configurations <file_path.apk>

2.5 查看指定apk的指定xml文件。

aapt dump xmltree <file_path.apk>res/***.xml 以树形结构输出的xml信息。

aapt dump xmlstrings <file_path.apk>res/***.xml 输出xml文件中所有的字符串信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12005123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存