使用给定的API级别生成APK时,有没有办法知道哪个API级别用于编译只有APK文件?
minSdkVersion不一定与用于编译项目的API级别相匹配,如果minSdkVersion>这只是Android安装程序阻止应用程序的注释。当前版本
答案 0 :(得分:2)
BuildConfig.VERSION_CODE;
和
getPackageManager().getPackageInfo(...).
会给我们:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
android:versionCode="1"
android:versionName="...">
此示例中的versionCode,1。
用于编译.apk的API级别我找不到在运行时查询它的方法,但是如果你使用 gradle ,你可以检查它:
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
...
}
如果您使用的是 .iml ,则使用IntelliJ项目配置GUI进行配置:
<component name="NewModuleRootManager" inherit-compiler-output="true">
...
<orderEntry type="inheritedJdk" />
...
</component>
<强> project.properties 强>:
# This file is automatically generated by IntelliJ IDEA
# Project target.
target=Google Inc.:Google APIs:22
但由于 build.gradle , project.iml 和 project.properties 未附带.apk我无法想到一种在运行时获取compileSdkVersion或通过解压缩.apk
的方法答案 1 :(得分:2)
这是获取我的应用的targetSdkVersion
和versionCode
的另一种方法:
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
int versionCode = packageInfo.versionCode;
int targetSdkVersion = packageInfo.applicationInfo.targetSdkVersion;
}
catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, e.getMessage());
}
使用Android Studio
,将值定义到我的build.gradle
文件
defaultConfig {
applicationId "com.tuna.hello.androidstudioapplication"
minSdkVersion 9
targetSdkVersion 22
versionCode 12
versionName "1.0"
}
答案 2 :(得分:1)
你可以获得的所有东西都应该是你从PackageManager获得的ApplicationInfo,所以你应该得到ApplicationInfo,然后看看你可以从中得到什么,即:
getPackageManager().getPackageInfo(...).targetSdkVersion
参考:http://developer.android.com/reference/android/content/pm/ApplicationInfo.html
检查参考文献的“字段”部分。看看“sourceDir”字段。
我希望这对你有任何帮助,请在任何帮助/错过你的情况下投票/投票。
最好的问候。
答案 3 :(得分:0)
试试这个:
android.os.Build.VERSION.SDK_INT
答案 4 :(得分:0)
如何知道您的应用程序正在运行哪个Android API:
int myAPI = Build.VERSION.SDK_INT;
如何知道APK的versionCode已构建:
String versionCode = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0).versionName;
注意:ctx
是应用程序上下文。
但更具体地说,将APK文件的扩展名更改为.zip,然后提取Manifest.xml
,然后您就会看到versionCode
,minSdkVersion
,{{ 1}}等......