所以我刚才写了一个Android应用程序,我试图更新它。我想要构建代码部分,如果他们所使用的手机小于3.0,则以某种方式做某事,否则就采取其他方式。
我的构建目标在project.properties文件中设置为11,但它似乎仍然在Android版本上运行< 3.0?这是正常的吗?我会在某些时候看到一些崩溃吗?一切似乎都在工作......我的minSDKVersion是8,但是当我在Android 2.3.3上使用Android 3.0代码运行这个应用程序时会发生什么?
答案 0 :(得分:1)
一般情况下,它会在API级别8之前在平台上运行正常,因为这就是您的minSdkVersion
。但是,如果您尝试调用在11级或更高级别引入的任何API,它将在早期(11之前)平台上崩溃。为避免这种情况,您应该在调用任何此类方法之前在运行时检查操作系统版本。有关如何执行此操作的建议,请参阅Retrieving Android API version programmatically。
答案 1 :(得分:1)
通常最好在接近此类开发时使用较低的API。每次完成API的工作版本时,请确保它在没有错误的情况下进行编译,然后再升级到下一级别。如果你是targetSdkVersion并且你的minSdkVersion不同,清单会警告你;但是,这主要是为了确保您小心不要从更高的API调用方法。一个有用的工作可能是:
private static int getApiLevel() {
return Integer.parseInt(android.os.Build.VERSION.SDK);
}
答案 2 :(得分:0)
我想我有一个愚蠢的时刻。 如果我将minSDK设置为8,那么任何比8更新的东西都可以正常工作。 如果我将构建目标设置为11,然后在运行SDK早于11的手机上运行任何比8更新的代码之前进行检查,则应覆盖所有基础。
当我弄乱targetSDK和minSDK时,我有点困惑
感谢您的评论。