我知道我可以使用支持库来添加本机不可用的元素。但是,最新的SDK版本(例如Lollipop)是否也使用这些支持库,还是使用本机元素?例如。如果我在Lollipop设备上运行应用程序,它会使用原生或支持元素吗?我问,因为在编辑源代码时(在Android Studio中),我只编辑了一个版本的文件,例如,我不能选择为ICS创建一个文件,并且另外对于Lollipop,那么系统如何知道要使用哪些元素?
答案 0 :(得分:1)
但是,最新的SDK版本(例如Lollipop)是否也使用这些支持库,还是使用原生元素?
Android框架不使用支持库。
如果我在Lollipop设备上运行应用程序,它会使用原生或支持元素吗?
如果我正在解释你的意思" native",它使用原生元素。 Android框架不使用支持库。
例如,我不能选择为ICS创建一个文件,而为Lollipop创建其他文件
当然欢迎您检测正在运行的API级别并选择实例化某些特定级别的类。你会在框架中偶尔看到这个,虽然它在Android支持包中更常见,特别是对于...Compat
类。
那么系统如何知道要使用哪些元素?
每个Android设备只有一个Android版本。因此,只有一套框架"元素"供框架使用。
小部件外观的某些方面由主题驱动,每个Android版本都支持现有的任何库存主题,从API级别1返回Theme
。如果开发人员选择使用基于运行API级别的不同主题(例如,使用Theme.Material
作为Android 5.0+的基础,但使用Theme.Holo
作为Android 4.0-4.4的基础),这是由资源集限定符驱动的(例如, res/values-v21/styles.xml
)。