我购买了HTC Incredible并潜入了android的世界!只是发现自己对API级别和向后兼容性完全感到困惑。
我的设备运行2.1操作系统,但我知道大多数设备运行1.5或1.6;很快2.2操作系统将在新设备上运行。 SDK已经经历了如此巨大的变化,甚至常量已被重命名(例如,从VIEW_ACTION到ACTION_VIEW)。已添加和删除方法(onPause替换之前的调用等)。
所以,如果我想编写一个适用于1.6+的应用程序,那是否意味着我必须使用1.6 API安装和编写我的代码;然后测试更高版本?或者我可以使用2.1 SDK编写并只设置minSDK级别而不使用“新”功能吗?
我从来没有使用过从版本到版本彻底改变SO的SDK!所以我不知道该怎么做....
我阅读了Android开发网站上的一篇文章(这篇关于堆栈溢出的帖子引用了它:Should a legacy Android application be rebuilt using SDK 2.1?),但对我来说仍然不是很清楚。 任何帮助将不胜感激
答案 0 :(得分:5)
SDK经历了如此巨大的变化 变化,即使是常数也是如此 重命名(从VIEW_ACTION到 例如ACTION_VIEW)。方法有 已被添加和删除(onPause 取代之前的电话,等等。)
这是两年前的平台测试版,之前有任何运输设备。从Android 1.0开始,几乎没有什么能够突破兼容性,主要是在移动到安全API中的设置领域,因此SDK应用程序不会弄乱它们。
所以,如果我想写一个应用程序 那将是1.6+的工作,那样做 意思是我必须安装和写我的 使用1.6 API的代码;然后测试 以后的版本?或者我可以用它来写 2.1 SDK并只设置minSDK 级别而不是使用“新”功能?
你认为这些是相互排斥的。事实上,它们基本相同。
minSdkVersion
放入清单中,说明您希望支持的最低API级别targetSdkVersion
放入您的清单中,说明您的“目标”API级别是什么,因此如果您的应用在较新版本的Android上运行,Android可以应用一些兼容性助手(通常,您“定位”当时 - 当前API级别)minSdkVersion
中指定的API级别,可选择使用reflection或conditional class loading在支持它们的设备上访问更新的API 答案 1 :(得分:3)
您可以使用当前SDK并将minSDK级别设置为您想要的任何级别。如果您这样做,那么您不能使用minSDK中没有的任何功能。尽管使用模拟器在所有版本的SDK上测试它也是一个好主意。
<uses-sdk minSDK="4" targetSDK="8"/>
这让它知道你的目标是2.2,但你希望你的应用运行的最低SDK级别是1.6。通过这样做,您可以在较新版本中使用一些新的xml内容,例如支持屏幕和不同屏幕的不同绘图等。