Android:如何找到APK的目标平台版本?

Android:如何找到APK的目标平台版本?,android,Android,给定一个APK,是否可以确定它针对的是哪个版本的Android平台?您可以提取APK并在清单文件中查找平台目标。就像derek上面所说的那样 使用来反编译apk并检查清单版本 如果希望以编程方式找到平台版本,请尝试使用类: 然后读取其中的ApplicationInfo字段和targetSdkVersion 使用aapt: aapt list -a package.apk | grep SdkVersion 您将看到十六进制的版本号。e、 g: A: android:minSdkVersio

给定一个APK,是否可以确定它针对的是哪个版本的Android平台?

您可以提取APK并在清单文件中查找平台目标。

就像derek上面所说的那样

使用来反编译apk并检查清单版本


如果希望以编程方式找到平台版本,请尝试使用类:

然后读取其中的ApplicationInfo字段和targetSdkVersion

使用
aapt

aapt list -a package.apk | grep SdkVersion
您将看到十六进制的版本号。e、 g:

  A: android:minSdkVersion(0x0101020c)=(type 0x10)0x3
  A: android:targetSdkVersion(0x01010270)=(type 0x10)0xc
对于这个apk,
minSdkVersion
0x3
即3,而
targetSdkVersion
0xc
即12。

然后在生成的apktool.yml文件中查找以下内容:

sdkInfo:
  minSdkVersion: '11'
  targetSdkVersion: '17'

您可以将SDK版本与Android版本相匹配。在上面的示例中,最低Android版本为3.0,目标版本为4.2。

如果您使用Nautilus,则可以为APK文件添加列提供程序和属性页提供程序。这将提供很多信息,包括SdkVersion

有关此链接的步骤说明如下:


干杯。

只需使用
aapt dump-bading my_apk_file.apk
即可获得有关您的apk的大量信息。 grep按版本筛选
aapt dump-bading my_apk_file.apk|grep-Version

使用$ANDROID_SDK_ROOT/build tools/30.0.3/aapt输出:

任何已安装应用程序
$app
(例如com.google.android.apps.docs)的apk都可以通过以下方式从您的设备中检索:

adb pull $(adb shell dumpsys package $app | grep path: | cut -c11-) $app.apk

如果你没有grep,你可以使用

aapt list -a package.apk >file.txt

并在file.txt中搜索minSdkVersion和targetSdkVersion。

如果您想从移动设备中查找这些信息,可以安装My APK应用程序,该应用程序可为您提供有关应用程序的详细信息 你可以在


您想要获得这些信息的应用程序必须安装在您的移动设备上,或者必须在您的移动设备上安装应用程序apk。

您可以使用该应用程序对文件apk进行反编译,并可以在Mandifest中找到它。

您可以运行以下命令以获得API级别(整数):

如果是针对KitKat(API 19)编译的,您将获得如下输出:

十九,


PS:aapt位于文件夹
/build tools//

您可以使用apkanalyzer,它包含在Android SDK工具中,更多信息请参见此处

打印SDK的最低版本

apkanalyzer -h manifest min-sdk myapk.apk
打印目标SDK版本

apkanalyzer -h manifest target-sdk myapk.apk

另一个功能:

function android-target-sdk-version {
    aapt list -a $1 | grep targetSdkVersion | grep -o '....$' | awk '{print $1+0}'
}

获取APK信息的最快方法是使用此在线工具:

就我而言,我在Android Studio上打开了apk文件。因此,我可以在android Manifest.xml检查android版本,该清单在编译后不可读。您可能需要使用一些工具来获取值。您可能知道的任何工具?您可以使用
aapt list
。请参阅@Sylvainer此站点的答案以反编译代码您可以使用已安装的apkanalyzer工具以人类可读的格式查看清单。只需使用:
apkanalyzer manifest打印一些。apk
aapt
可在
sdk\build tools\XX.X.X
@Thupten的答案是使用
aapt dump-bading
而不是
aapt-list-a
,这会提供更可读的输出。有没有办法使用这个工具来找出支持什么体系结构?ie.x86或ARM感谢.yml提示。我使用了apktool,查看了AndroidManifest.xml,但困惑地发现我想要的信息丢失了!没有想到要查看.yml文件。正如@ajh158所提到的,很困惑。谢谢它具有GUI模式:
aapt dump badging "your_apk.apk" | awk '/targetSdkVersion/{gsub("targetSdkVersion:''|''","");  print $1}'
apkanalyzer -h manifest min-sdk myapk.apk
apkanalyzer -h manifest target-sdk myapk.apk
function android-target-sdk-version {
    aapt list -a $1 | grep targetSdkVersion | grep -o '....$' | awk '{print $1+0}'
}