![](https://img.haomeiwen.com/i11345863/09245cb3a4d26c49.png)
..
AndroidX
Android系统刚刚面世的时候,可能连它的设计者也没有想到它会如此成功,因此也不可能在一开始的时候就将它的API考虑的非常周全。
随着Android系统版本不断地迭代更新,每个版本中都会加入很多新的API进去,但是新增的API在老版系统中并不存在,因此这就出现了一个向下兼容的问题。
比如,当Android发布到3.0的时候,突然意识到了平板电脑的重要性,因此为了让Android可以更好地兼容平板,Android在3.0中加入了Fragment功能。
但Fragment的作用并不只局限于平板,以前的老系统中也想使用这个功能该怎么办?
于是Android团队推出了一个鼎鼎大名的Android Support Library,用于提供向下兼容的功能。
比如我们熟知的support-v4库,appcompat-v7库都是属于Android Support Library。
![](https://img.haomeiwen.com/i11345863/606210c14010fd78.png)
那么这个名字到底是什么意思呢?
4在这里指的是Android API版本号,对应的系统版本是1.6。support-v4的意思就是这个库中提供的API会向下兼容到Android 1.6系统。
随着时间的推移,1.6系统早就已经被淘汰了,Android官方支持的最低系统版本已经是4.0.1,对应的API版本号是15。
support-v4、appcompat-v7库也不再支持那么久远的系统了,但是它们的名字却一直保留了下来,虽然它们现在的实际作用已经对不上当初命名的原因了。
Android团队也意识到这种命名已经非常不合适了,于是对这些API的架构进行了一次重新的划分,推出了AndroidX。
AndroidX本质上其实就是对Android Support Library进行的一次升级.
![](https://img.haomeiwen.com/i11345863/a5c9625de928b745.png)
Androidx的更改
AndroidX升级内容主要在于:
第一,包名。
第二,命名规则。
AndroidX 将原始支持库 API 替换为 androidx 命名空间中的软件包。只有软件包和 Maven 工件名称发生了变化;类名、方法名和字段名没有变化。
AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx
开头。支持库软件包已映射到对应的 androidx.*
软件包。
与支持库不同,androidx
软件包会单独维护和更新。从版本 1.0.0 开始,androidx
软件包使用严格的语义版本控制。
使用依赖:
implementation 'androidx.appcompat:appcompat:1.0.2'
Jetpack
2018年谷歌I/O 发布了一系列辅助Android开发者的实用工具,合称Jetpack,以帮助开发者构建出色的 Android 应用。
![](https://img.haomeiwen.com/i11345863/8d3fa735b2a6dc7a.png)
JetPack是Google推出的一些库的集合。是Android基础支持库SDK以外的部分。包含了组件、工具、架构方案等...开发者可以自主按需选择接入具体的哪个库。
![](https://img.haomeiwen.com/i11345863/30cf2cbcc9ba9773.png)
目前,androidx
命名空间中的工件包含 Android Jetpack库。
Goole IO 2017:Google 开始推出Architecture Component, ORM库Room, 用户生命周期管理的ViewModel/ListData。
Goole IO 2018:将Support lib 更名为androidx,Google将许多正确的方案集中起来,以高效的开发Android APP。
Jetpack的组成
Android Jetpack 组件覆盖以下 4 个方面:
- Foundation (基础组件)
- Architecture(架构组件)
- Behavior(行为组件)
- UI(界面组件)
![](https://img.haomeiwen.com/i11345863/cd914e24cdccee8d.png)
网友评论