写点什么

阿里开发 7 年大牛:只需一篇文章吃透 Android 多线程技术,好文推荐

发布于: 2021 年 04 月 23 日

前言

在老东家呆了将近四年光景,受益颇多,无奈在技能上遇到瓶颈,深感自己技能上不能再进步,毅然离职,加入求职大军。说实话,遇上 18 年的金融危机、互联网寒冬、裁员,大量求职人员迸涌上来,找工作并不是那么容易,即使有多个面试邀约,面试后也极少有回应的。革命尚未成功,同志仍需努力!

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学习笔记



用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
阿里开发7年大牛:只需一篇文章吃透Android多线程技术,好文推荐