写点什么

Android 事件分发机制收藏这一篇就够了,阿里一线架构师技术图谱

发布于: 刚刚

AndroidX 的前世今生

Android 系统在刚刚面世的时候,可能连它的设计者也没有想到它会如此成功,因此也不可能在一开始的时候就将它的 API 考虑的非常周全。随着 Android 系统版本不断地迭代更新,每个版本中都会加入很多新的 API 进去,但是新增的 API 在老版系统中并不存在,因此这就出现了一个向下兼容的问题。


举个例子,当 Android 系统发布到 3.0 版本的时候,突然意识到了平板电脑的重要性,因此为了让 Android 可以更好地兼容平板,Android 团队在 3.0 系统(API 11)中加入了 Fragment 功能。但是 Fragment 的作用并不只局限于平板,以前的老系统中也想使用这个功能该怎么办?于是 Android 团队推出了一个鼎鼎大名的 Android Support Library,用于提供向下兼容的功能。比如我们每个人都熟知的 support-v4 库,appcompat-v7 库都是属于 Android Support Library 的,这两个库相信任何做过 Android 开发的人都使用过。


但是可能很多人并没有考虑过 support-v4 库的名字到底是什么意思,这里跟大家解释一下。4 在这里指的是 Android API 版本号,对应的系统版本是 1.6。那么 support-v4 的意思就是这个库中提供的 API 会向下兼容到 Android 1.6 系统。它对应的包名如下:



类似地,appcompat-v7 指的是将库中提供的 API 向下兼容至 API 7,也就是 Android 2.1 系统。它对应的包名如下:



可以发现,Android Support Library 中提供的库,它们的包名都是以**android.support.***开头的。


但是慢慢随着时间的推移,什么 1.6、2.1 系统早就已经被淘汰了,现在 Android 官方支持的最低系统版本已经是 4.0.1,对应的 API 版本号是 15。support-v4、appcompat-v7 库也不再支持那么久远的系统了,但是它们的名字却一直保留了下来,虽然它们现在的实际作用已经对不上当初命名的原因了。


那么很明显,Android 团队也意识到这种命名已经非常不合适了,于是对这些 API 的架构进行了一次重新的划分,推出了 AndroidX。因此,AndroidX 本质上其实就是对 Android Support Library 进行的一次升级,升级内容主要在于以下两个方面。


第一,包名。之前 Android Support Library 中的 API,它们的包名都是在**android.support.*下面的,而 AndroidX 库中所有 API 的包名都变成了在 androidx.*下面。这是一个很大的变化,意味着以后凡是 android.*包下面的 API 都是随着 Android 操作系统发布的,而 androidx.***包下面的 API 都是随着扩展库发布的,这些 API 基本不会依赖于操作系统的具体版本。


第二,命名规则。吸取了之前命名规则的弊端,AndroidX 所有库的命名规则里都不会再包含具体操作系统 API 的版本号了。比如,像 appcompat-v7 库,在 AndroidX 中就变成了 appcompat 库。

最后

我这里整理了一份完整的学习思维以及 Android 开发知识大全 PDF。



当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。


**本文已被[CODING 开源项目:《Android 学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](


)



收录**


最后自我介绍一下,小编 13 年上海交大毕业,曾经在小公司待过,也去过华为、OPPO 等大厂,18 年进入阿里一直到现在。

深知大多数初中级 Android 工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

用户头像

还未添加个人签名 2021.10.19 加入

还未添加个人简介

评论

发布
暂无评论
Android事件分发机制收藏这一篇就够了,阿里一线架构师技术图谱