0

我创建了一些针对 2.2 的应用程序

我正在考虑投资购买便宜的手机来尝试这些(迄今为止只使用过模拟器)。我想要的手机运行的是 Android 2.1 版本。

从代码的角度来看,2.1 和 2.2 之间是否有任何可能导致我出现问题的重大变化?

我知道如果我尝试部署到 1.x 手机(例如 People/ContractsContact 等)会出现问题,但我看不出有什么可以说 2.2 应用程序在 2.1 环境中会失败

(我可以尝试更改模拟器目标,但很想知道其他人使用实际手机)

谢谢

4

3 回答 3

2

这是可能对您有用的页面:http: //developer.android.com/sdk/api_diff/8/changes.html

您可以交叉检查所有用于差异列表的包和方法。

就像 Juhani 所说,如果您的应用程序使用任何新的 API,那么这意味着您遇到问题的可能性很高。

于 2010-10-08T16:09:15.913 回答
1

如果您不需要 2.2 提供的任何新 API,您可以将您的应用程序定位到 2.1。这样您就可以确定它将在 2.1 和 2.2 上运行。另一方面,如果您需要一些新的 API,它将无法在 2.1 上正常工作。

您可以在这里查看 2.2 中的新功能:http: //developer.android.com/sdk/android-2.2.html

于 2010-10-08T12:16:10.537 回答
0

为了保证兼容性,您应该将目标版本设置为 2.1 并重新编译它以查看失败的原因。如果您使用的是 2.2-only API,这将向您展示它是什么。然后,如果您真的想使用它,您可以将目标版本重置为 2.2,并在 2.1 中为“未找到方法”编写回退行为。

除了记录在案的 API 之外,对于大多数开发人员来说,最大的区别在于那些使用通用但不受支持的接口的人。如果您尝试调用日历,您会发现它停止工作,因为旧意图“com.android.calendar/com.android.calendar.LaunchActivity”已被“com.google.android.calendar/com”替换.android.calendar.LaunchActivity”。(这是用于库存的 android。各种手机/硬件供应商还有其他替代应用程序/意图,只是为了让您保持警觉。)

当然,这只是在您使用未记录的、不受支持的接口时才会出现的问题,而您不应该这样做。然而,这可能是“被 FroYo 破解”应用程序的第一大来源。

于 2010-10-08T17:18:48.900 回答