2011-11-28 80 views

回答

3

您可以提取APK並在清單文件中查找平臺目標。

+12

清單是沒有被編譯後人類可讀。你可能不得不使用一些工具來獲取值。 –

+0

您可能認識的任何工具? –

+0

你可以使用'aapt list'。請參閱@Sylvain的答案 –

0

,如果你想以編程方式嘗試使用PackageManager類:

public PackageManager getPackageArchiveInfo(String archiveFilePath, int flags) 

然後讀取其中的ApplicationInfo字段和targetSdkVersion;

52

使用aapt

aapt list -a package.apk | grep SdkVersion 

你會看到在十六進制的版本號。例如:

A: android:minSdkVersion(0x0101020c)=(type 0x10)0x3 
    A: android:targetSdkVersion(0x01010270)=(type 0x10)0xc 

對於此apk,minSdkVersion0x3即,3,和targetSdkVersion0xc即12.

+8

'aapt'可在'sdk \ build-tools \ XX.X.X'中找到。 –

+1

@ Thupten的回答說使用'aapt dump badging'而不是'aapt list -a',它可以提供更可讀的輸出。 – neno

+0

有沒有辦法使用這個工具來找出哪種體系結構被支持?即。 x86或arm – MikeSchem

20

apktool使用

java -jar apktool.jar d app.apk 

然後尋找在此所生成的文件apktool.yml :

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

您可以將SDK版本與Android版本here相匹配。在上面的例子中,最低的Android版本是3.0,目標版本是4.2。

+2

感謝.yml提示。我使用了apktool,在AndroidManifest.xml中查找並發現我想要的信息丟失了!沒想到在.yml文件中查找。 – ajh158

+0

正如@ ajh158提到的那樣,困惑。謝謝! – DazChong

5

只需使用aapt dump badging my_apk_file.apk即可獲取有關您的apk的很多信息。 通過 版本的grep過濾aapt dump badging my_apk_file.apk|grep Version

輸出

sdkVersion:'9' 
targetSdkVersion:'24' 
1

如果你不使用grep,您可以使用

aapt list -a package.apk >file.txt 

和file.txt的搜索的minSdkVersion和targetSdkVersion。