2017-05-04 109 views
6

我是Android开发的新手。尽管我提到了Android开发者website,但我没有弄清楚。什么是Android Studio的向后兼容性?

在自定义活动对话框,当我在Android Studio中取消选中了Backwards Compatiblity(Appcompat) 2.3.1给了我一个提示:

如果是假,本次活动的基类会活动,而不是AppCompatActivity

enter image description here

一般来说,有什么事情的Android开发者更喜欢?支持向后兼容或没有它?任何人都可以解释我哪一个更好。

+1

请参阅https:// stackoverflow。com/a/38963902/115145和https://stackoverflow.com/a/36989121/115145了解更多背景信息。摘要中没有“更好的” - 您需要定义可以比较选项的标准。 – CommonsWare

回答

6

Android应用程序可以向后兼容,而无需选中此复选框。

如果是假,本次活动的基类会活动,而不是AppCompatActivity

Android的工作室让你知道,如果你取消“向后兼容(程序兼容性)”复选框,然后你会包括使用库Activity而不是AppCompatActivity的&。 两者之间的详细对比,看看这个:Activity, AppCompatActivity, FragmentActivity, and ActionBarActivity: When to Use Which?

一般来说,有什么事情的Android开发者更喜欢?支持向后兼容或没有它?

通过“CommonsWare”撰写的评论解释了这个最好的:

与选中复选框创建的活动没有更多的向后兼容比是一个没有那个复选框选中。选中该复选框可为您的应用提供特定的外观,以保留某些较旧设备的外观和风格;未选中复选框意味着您的外观和感觉的某些方面在Android 5.0之前的设备上会有所不同。不过,这并不影响该活动的核心功能。 - CommonsWare

+1

Android应用可以向后兼容,无需选中此复选框。 – CommonsWare

+0

的确如此。但是,如果在创建项目时选中“向后兼容性(Appcompat)”框,它将以适合向后兼容的方式构建项目。 –

+6

使用该复选框创建的活动不再向下兼容,没有选中该复选框。选中该复选框可为您的应用提供特定的外观,以保留某些较旧设备的外观和风格;未选中复选框意味着您的外观和感觉的某些方面在Android 5.0之前的设备上会有所不同。不过,这并不影响该活动的核心功能。 – CommonsWare

5

向后兼容性允许您在应用程序中使用某些向后兼容的功能。他们将能够使用以前版本的Android。

Android支持库提供了一些未内置到框架中的功能的向后兼容版本。 (Android Support Library website)

例如,而不是ActivityAppCompatActivity会被使用的东西是“倒退”兼容。它可以一直用于API级别15.

+6

Android应用程序可以向后兼容,无需选中此复选框。 – CommonsWare

+1

啊,我应该澄清一点。我的错。 –

-1

您通常应该使用AppCompatActivity来支持较旧的Android版本。如果你的应用程序不需要旧的Android版本,那么只需使用Activity即可。

通常更推荐使用AppCompatActivity

+0

如上所述,这个选项只影响你的应用程序的外观,你也可以用“just”“Activity”支持旧的Andro版本。 – Qback