Android系统如何在手机上安装的应用程序中查找sdk信息?
我想知道apk瞄准的是哪个目标,我使用apktool反编译apk文件,但在反编译的apk文件中找不到sdk信息,只能在apktool.yml文件中找到,如下所示:Android系统如何在手机上安装的应用程序中查找sdk信息?,android,Android,我想知道apk瞄准的是哪个目标,我使用apktool反编译apk文件,但在反编译的apk文件中找不到sdk信息,只能在apktool.yml文件中找到,如下所示: sdkInfo: minSdkVersion: '14' targetSdkVersion: '23' 我想知道安卓系统在哪里可以找到安装在手机上的apk中的信息?为什么我在反编译文件中找不到信息 更新: 反编译的AndroidManifest.xml文件中存在可疑信息,但与apktool.yml文件中的信息一致
sdkInfo:
minSdkVersion: '14'
targetSdkVersion: '23'
我想知道安卓系统在哪里可以找到安装在手机上的apk中的信息?为什么我在反编译文件中找不到信息
更新: 反编译的
AndroidManifest.xml
文件中存在可疑信息,但与apktool.yml
文件中的信息一致
提前感谢。
AndroidManifest.xml
文件包含以下值:
minSdkVersion
targetSdkVersion
使用apktool解码您的APK文件。您可以在应用程序/主模块级别
build.gradle
文件中找到它
在下一节
android {
compileSdkVersion 23
buildToolsVersion '25.0.0'
defaultConfig {
applicationId "yourApplicationPackage"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
}
Minsdk第14版
targetSdkVersion 23以下命令将在apk文件中打印出android清单的xmltree:
aapt dump xmltree file.apk AndroidManifest.xml
样本输出:
N: android=http://schemas.android.com/apk/res/android
E: manifest (line=17)
A: android:versionCode(0x0101021b)=(type 0x10)0x7
A: android:versionName(0x0101021c)="2.1-update1" (Raw: "2.1-update1")
A: package="com.android.spare_parts" (Raw: "com.android.spare_parts")
E: uses-sdk (line=0)
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x7
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x7
E: uses-permission (line=19)
A: android:name(0x01010003)="android.permission.SET_ANIMATION_SCALE" (Raw: "android.permission.SET_ANIMATION_SCALE")
E: uses-permission (line=20)
A: android:name(0x01010003)="android.permission.CHANGE_CONFIGURATION" (Raw: "android.permission.CHANGE_CONFIGURATION")
E: uses-permission (line=21)
A: android:name(0x01010003)="android.permission.WRITE_SETTINGS" (Raw: "android.permission.WRITE_SETTINGS")
E: application (line=23)
A: android:label(0x01010001)=@0x7f060000
A: android:icon(0x01010002)=@0x7f020000
E: activity (line=26)
A: android:name(0x01010003)="SpareParts" (Raw: "SpareParts")
E: intent-filter (line=27)
E: action (line=28)
A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
E: category (line=29)
A: android:name(0x01010003)="android.intent.category.DEFAULT" (Raw: "android.intent.category.DEFAULT")
E: category (line=30)
A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
在这里,您可以在第7行和第8行中看到minSdkVersion和targetSdkVersion @AtefHares Ok。但它会在这个文件中存储新的值。Android操作系统通过解析此文件来检测支持的版本。@AtefHares在我反编译后,我找不到minSdkVersion和targetSdkVerion,但platformBuildVersionCode和platformBuildVersionName,但它们与apktool.yml.OP中的sdk信息不一致。OP正在询问如何从apk文件中提取信息。抱歉,我的意思是Android在哪里可以找到安装的apk中的信息。好的。感谢您的确认。可能的副本也请检查此@AtefHares我想知道Android系统如何知道AndroidManifest.xml不包含此信息(至少在反编译文件中与apktool.yml文件中的信息不同)