作为一个新手我不知道如何确保我的应用程序在某些Android版本范围之间工作。 According to latest statistics,似乎2.3.3(姜饼)仍然在那里大量使用(除了ICS和JB)。但是现在Kitkat已经取得了成功,许多应用程序也会更新以支持它,同时仍然保持与旧版Android的兼容性。
基本上什么是支持最新版本的android以及指定的最小旧版本的一般指导原则。例如,如何确保我的应用程序从2.3.3(姜饼)到最新的4.4 kitkat开始工作?
还可以使用模拟器来确保应用程序在指定范围内工作吗?
PS:我知道可以通过应用程序清单文件指定,但这不是我的问题我只是在寻找如何在两个版本之间实现app 兼容。
感谢您的建议和有用的想法:)
答案 0 :(得分:2)
您有不同的方法来实现这一目标。
第一件事:
尽管你想支持min sdk,你应该总是使用最新的sdk来构建你的应用程序。
此时,选择要支持的min sdk并在清单中声明它。
如果你正在使用带有lint的eclipse,那么在这一点上很容易发现你是否在该平台级别使用不支持的api。
如果您想使用新的API并使其仅在较新的设备上可用,您基本上有两种方法:
使用反射(气馁)
对使用新api和call的方法使用@TargetApi注释 这些方法仅适用于那些api可用的设备
if(Integer.valueOf(android.os.Build.VERSION.SDK)>whatlevelyouwant){
callMethodWithNewAPI();
}
答案 1 :(得分:1)
您可以在Google的“支持不同版本”网站上找到大量信息:http://developer.android.com/training/basics/supporting-devices/platforms.html
一般来说,你应该支持90%的设备(这意味着你可以省略Android 2.2,但应该从2.3开始)。
然而,一些新的应用程序不是从2.3开始,而是从4.0开始。这使得生活在测试方面变得更加容易。
答案 2 :(得分:1)
在ADT中,您可以使用ADV生成不同的模拟器,每个模拟器对应您要支持和测试的每个Android版本。 它不如真实设备好,但却是一个有用的起点
答案 3 :(得分:-1)
您可以在清单文件中定义MinSdk and maxSdk。这将定义您的应用程序将支持哪个Android Versions。
android:minSdkVersion
An integer designating the minimum API Level required for the application to run.
android:maxSdkVersion
An integer designating the maximum API Level on which the application is designed to run.
因此,如果您希望您的应用与2.3兼容,您可以在清单文件中定义最新版本:
<uses-sdk
android:minSdkVersion="8" />
如果你没有指定maxSdkVersion
,它将采用最新发布的Android版本。所以这一行暗示你的应用程序与所有具有android 2.3或更高版本的设备兼容..