我创建了一些针对2.2
的应用程序我正在考虑投资一台便宜的手机试试这些(迄今为止只使用过仿真器)。我想要的手机正在运行Android的版本2.1。
从代码的角度来看,2.1和2.2之间是否有任何重大变化可能会导致我出现问题?
我知道如果我尝试部署到1.x手机(例如People / ContractsContact等)会有问题,但我看不出有什么要说2.1应用程序会在2.1环境中失败
(我可以尝试更改模拟器目标,但很想知道其他人使用实际的手机)
由于
答案 0 :(得分:2)
以下是可能对您有用的页面:http://developer.android.com/sdk/api_diff/8/changes.html
您可以交叉检查用于差异列表的所有包和方法。
就像Juhani所说,如果你的应用程序使用任何新的API,那么这意味着你遇到问题的可能性很高。
答案 1 :(得分:1)
如果您不需要2.2提供的任何新API,您可以将应用定位到2.1。这样你可以确定它将在2.1和2.2上运行。另一方面,如果您需要一些新的API,它将无法在2.1上正常工作。
您可以在这里查看2.2中的新功能: http://developer.android.com/sdk/android-2.2.html
答案 2 :(得分:0)
为保证兼容性,您应该将目标版本设置为2.1并重新编译它以查看失败的内容。如果您使用的是仅限2.2的API,则会显示它是什么。然后,如果您真的想要使用它,可以将目标版本重置为2.2,并为2.1中的“找不到方法”编写回退行为。
在记录的API之外,大多数开发人员的最大区别在于那些使用通用但不受支持的界面的人。如果您尝试调用日历,您会发现它停止工作,因为旧的意图“com.android.calendar / com.android.calendar.LaunchActivity”已被“com.google.android.calendar / com”替换.android.calendar.LaunchActivity”。 (这适用于股票安卓。各种手机/硬件供应商都有其他替代应用/意图,只是为了让你保持警惕。)
当然,如果您使用的是未记录的,不受支持的接口,这只是一个问题,您不应该这样做。然而,这可能是“破坏了FroYo”应用程序的头号来源。