使用aapt工具查看apk要求的最低版本

举报
福州司马懿 发表于 2024/06/30 12:33:04 2024/06/30
【摘要】 背景现在每一年安卓更新一个新版本,而我们的设备则因为还能用,好几年不升级换代了。那么如何才能知道我们下载的apk最低支持多少版本的安卓系统呢? aapt工具介绍AAPT(Android Asset Packaging Tool)是Android SDK中的一个重要工具,用于处理Android应用程序包(APK)文件。以下是关于AAPT的详细介绍: 工具概述名称:AAPT,全称Android...

背景

现在每一年安卓更新一个新版本,而我们的设备则因为还能用,好几年不升级换代了。那么如何才能知道我们下载的apk最低支持多少版本的安卓系统呢?

aapt工具介绍

AAPT(Android Asset Packaging Tool)是Android SDK中的一个重要工具,用于处理Android应用程序包(APK)文件。以下是关于AAPT的详细介绍:

工具概述

  • 名称:AAPT,全称Android Asset Packaging Tool。
  • 功能:主要用于Android资源的编译、打包、反编译、分析等操作。它支持多种子命令,可以列出APK文件的内容、查看APK的基本信息、添加或删除文件等。
  • 位置:AAPT通常位于Android SDK的build-tools目录下。

主要功能

  1. 资源编译:将Android资源文件(如XML布局、图片、字符串等)编译成二进制格式,以便于在APK中使用。
  2. APK分析:可以查看APK文件的内容,包括其中的资源文件、AndroidManifest.xml文件等。
  3. APK打包:根据指定的资源文件和AndroidManifest.xml文件,生成APK文件。

常用子命令

  1. aapt l[ist]:列出APK或ZIP文件中的内容。
  2. aapt d[ump]:查看APK包内指定的内容,如aapt dump badging可以查看APK的配置信息。
  3. aapt p[ackage]:打包生成资源压缩包。
  4. aapt r[emove]:从压缩包中删除指定文件。
  5. aapt a[dd]:向压缩包中添加指定文件。
  6. aapt v[ersion]:打印AAPT的版本信息。

使用 aapt --help 可以查看到相关的帮助文档

图片.png

使用注意事项

  1. 环境变量配置:为了在任何地方使用AAPT命令,需要将AAPT所在的目录添加到系统的环境变量中。
  2. 路径问题:当处理APK文件时,确保APK文件的路径不包含中文,否则可能会出现错误。
  3. 权限问题:使用AAPT时,可能需要特定的权限来访问或修改APK文件。

优化与替代

  • AAPT2:AAPT2是AAPT的一个优化版本,它提供了更快的编译速度和更好的资源优化。从Android Gradle插件3.0.0开始,默认情况下会使用AAPT2进行资源编译和打包。

实战:查看apk的最低版本

例如,我们现在是要查看一个apk,名字为 fstvbxz.apk,完整命令如下

>aapt dump badging "D:\Downloads\fstvbxz.apk" | grep sdk

这条命令是一个组合命令,用于从 Android APK 文件中提取特定的信息,并使用 grep 来过滤结果。下面我将逐一解释这条命令中的每个部分:

  1. aapt dump badging:

    • aapt: 是 Android Asset Packaging Tool 的缩写,它是 Android SDK 中的一个工具,用于处理 Android 应用程序包(APK)文件。
    • dump badging: 是 aapt 的一个子命令,用于从 APK 文件中提取包元数据(例如,包名、版本、权限等)。
  2. "D:\Downloads\fstvbxz.apk":

    • 这是你想要 aapt 处理的 APK 文件的路径。在这里,APK 文件位于 D:\Downloads\ 目录下,文件名为 fstvbxz.apk
  3. |:

    • 这是一个管道符号,用于将一个命令的输出作为另一个命令的输入。在这里,它将 aapt dump badging 的输出传递给 grep 命令。
  4. grep sdk:

    • grep: 是一个常用的 Unix/Linux 命令行工具,用于搜索文本,并打印匹配行的内容。
    • sdk: 这是 grep 要搜索的模式或关键字。它将从 aapt dump badging 的输出中查找包含“sdk”的行。

命令输出为:

图片.png

总结

这条命令的作用是:从位于 “D:\Downloads\fstvbxz.apk” 的 APK 文件中提取包元数据,并使用 grep 命令从这些数据中搜索包含“sdk”的行。通常,这可能是为了检查 APK 是否引用了特定的 SDK 版本或与其他 SDK 相关的配置。

注意:这个命令假设你已经将 aaptgrep 命令添加到了你的系统路径中,或者你正在使用包含这些工具的特定环境(如 Linux 系统或 Cygwin)。如果你正在 Windows 系统上,并且没有 grep 命令,你可能需要使用其他方法(如 PowerShell 的文本搜索功能)来过滤输出。

拓展知识:badging(徽章/证章)

在Android Asset Packaging Tool (aapt) 的上下文中,badging 指的是APK(Android应用程序包)文件中关于应用程序元数据的部分。这些元数据包括应用程序的标签(label)、图标(icon)、版本信息、SDK版本、权限等。当你使用 aapt dump badging 命令时,你实际上是在请求aapt工具提取并显示这些元数据。

具体来说,aapt dump badging 命令的输出可能包含以下信息(具体输出可能因APK文件的不同而有所差异):

  1. 包名 (package:name):例如,name='com.example.myapp'。这标识了应用程序的唯一包名。

  2. 版本信息

    • versionCode:表示应用程序的内部版本号,通常用于在更新应用程序时检查版本差异。
    • versionName:一个用户可以阅读的版本字符串,如 '1.0'
  3. SDK版本

    • compileSdkVersion:编译APK时使用的SDK版本。
    • targetSdkVersion:目标SDK版本,表示应用程序是为哪个版本的Android平台设计的。
    • sdkVersion:应用程序运行所需的最小SDK版本。
  4. 应用程序标签和图标

    • application-label:应用程序的显示名称。
    • application-icon:应用程序图标的路径,通常指向APK中的资源文件。
  5. 权限:列出了APK请求的所有权限,这些权限是应用程序在运行时需要访问的特定系统功能的权限。

  6. 其他配置:可能还包括应用程序的启动活动(launchable-activity)、支持的屏幕方向(supports-screens)等配置信息。

使用 aapt dump badging 命令时,可以结合其他参数或选项来定制输出。例如,通过添加 --values 参数,可以显示元数据的实际值,而不是其标识符。

总之,badging 在aapt的上下文中是指APK文件中包含的应用程序元数据,这些元数据描述了应用程序的基本信息和配置。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。