Android 安卓2.1和2.2之间是否存在开发人员需要了解的向后兼容性方面的任何更改?

Android 安卓2.1和2.2之间是否存在开发人员需要了解的向后兼容性方面的任何更改?,android,android-emulator,android-2.2-froyo,android-hardware,Android,Android Emulator,Android 2.2 Froyo,Android Hardware,我已经创建了一些针对2.2的应用程序 我正在考虑投资一款便宜的手机来试用这些产品(目前只使用模拟器)。我想要的手机运行的是Android的verion 2.1 从代码的角度来看,2.1和2.2之间是否有可能导致问题的重大更改? 我知道如果我试图部署到1.x手机(如People/ContractsContact等)会有问题,但我看不到任何东西可以说明2.2应用程序在2.1环境下会失败 (我可以试着改变模拟器的目标,但很想从其他有实际手机的人那里知道) 谢谢如果你不需要2.2提供的任何新API,你可

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

我正在考虑投资一款便宜的手机来试用这些产品(目前只使用模拟器)。我想要的手机运行的是Android的verion 2.1

从代码的角度来看,2.1和2.2之间是否有可能导致问题的重大更改?

我知道如果我试图部署到1.x手机(如People/ContractsContact等)会有问题,但我看不到任何东西可以说明2.2应用程序在2.1环境下会失败

(我可以试着改变模拟器的目标,但很想从其他有实际手机的人那里知道)


谢谢

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

您可以在此处查看2.2中的新增功能:

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

您可以在此处查看2.2中的新增功能:
以下是可能对您有用的页面:

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


正如Juhani所说,如果你的应用程序使用了任何新的API,那就意味着你很有可能遇到问题。

以下是可能对你有用的页面:

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


正如Juhani所说,如果你的应用程序使用了任何新的API,那就意味着你很有可能遇到问题。

为了保证兼容性,你应该将目标版本设置为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”取代。(这是针对库存android的。各种手机/硬件供应商都有其他替代应用/意图,只是为了让你保持警惕。)


当然,这只是一个问题,如果您使用的是未记录的、不受支持的接口,而您不应该这样做。然而,这可能是“FroYo破坏”应用程序的头号来源。

为了保证兼容性,您应该将目标版本设置为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”取代。(这是针对库存android的。各种手机/硬件供应商都有其他替代应用/意图,只是为了让你保持警惕。)

当然,这只是一个问题,如果您使用的是未记录的、不受支持的接口,而您不应该这样做。然而,这可能是“FroYo打破”应用程序的头号来源