Android Studio 中的向后兼容性是啥?
Posted
技术标签:
【中文标题】Android Studio 中的向后兼容性是啥?【英文标题】:What is Backwards Compatibility in Android Studio?Android Studio 中的向后兼容性是什么? 【发布时间】:2017-10-02 22:35:33 【问题描述】:我是 android 开发的新手。即使我提到了 android 开发人员website,我也没有弄清楚。
在自定义 Activity 对话框中,当我在 Android Studio 2.3.1 中取消选中 Backwards Compatiblity(Appcompat)
时,它给了我一个提示:
如果为 false,则此活动基类将是 Activity 而不是 AppCompatActivity
一般来说,Android 开发者更喜欢什么?是否启用向后兼容性?谁能解释一下哪个更好。
【问题讨论】:
更多背景信息请参见***.com/a/38963902/115145 和***.com/a/36989121/115145。摘要中没有“更好”——您需要定义可以比较选项的标准。 【参考方案1】:Android 应用无需选中此复选框即可向后兼容。
如果为 false,则此活动基类将是 Activity 而不是 AppCompatActivity
Android Studio 通知您,如果取消选中“向后兼容性(Appcompat)”框,那么您将包含并使用库 Activity 而不是 AppCompatActivity。 有关两者之间更详细的比较,请查看:Activity, AppCompatActivity, FragmentActivity, and ActionBarActivity: When to Use Which?
一般来说,Android 开发者更喜欢什么?启用向后兼容性还是不启用它?
“CommonsWare”写的评论最好地解释了这一点:
选中该复选框创建的活动不比未选中该复选框的活动向后兼容。选中该复选框可为您的应用提供特定的外观和感觉,该外观将在某些旧设备上保留该外观和感觉;未选中该复选框意味着您的外观的某些方面在 Android 5.0 之前的设备上会有所不同。不过,这不会影响活动的核心功能。 – CommonsWare
【讨论】:
Android 应用无需选中此复选框即可向后兼容。 确实如此。但是,如果您在创建项目时选中“向后兼容性(Appcompat)”框,它会以已经适合向后兼容的方式构建项目。 选中该复选框创建的活动不比未选中该复选框的活动向后兼容。选中该复选框可为您的应用提供特定的外观和感觉,该外观将在某些旧设备上保留该外观和感觉;未选中该复选框意味着您的外观的某些方面在 Android 5.0 之前的设备上会有所不同。不过,这不会影响 Activity 的核心功能。 我刚刚检查以确保,看来您是完全正确的。刚开始研究的时候,一直以为它不会像你说的那样改变核心功能,而是增加了很多不必要的库(如果你不关心向后兼容的话),事实并非如此。谢谢你纠正我!【参考方案2】:向后兼容性允许您在应用中使用某些向后兼容的功能。他们将能够在以前版本的 Android 上工作。
Android 支持库提供了许多未内置在框架中的功能的向后兼容版本。 (Android Support Library website)
例如,将使用AppCompatActivity
而不是Activity
,并且是“向后”兼容的东西。它可以一直使用到 API 级别 15。
【讨论】:
Android 应用可以向后兼容,无需选中此复选框。 啊,我应该澄清一下。我的错。【参考方案3】:您通常应该使用AppCompatActivity
来支持较旧的 Android 版本。如果您的应用不需要较旧的 android 版本,则只需使用 Activity
。
通常更推荐使用AppCompatActivity
。
【讨论】:
如上所述,此选项仅影响您的应用程序的外观,您也可以使用“just”Activity
来支持旧的安卓版本。以上是关于Android Studio 中的向后兼容性是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Schema Registry 中的向后兼容性问题和不确定性
从 BLE v4.2 到 4.0 的有效载荷大小的向后兼容性