写点什么

安卓开发实战讲解!从新手到 Flutter 架构师,一篇就够!快来收藏!

发布于: 2021 年 04 月 11 日

前言

Android 常用知识体系是什么鬼?所谓常用知识体系,就是指对项目中重复使用率较高的功能点进行梳理。注意哦,不是 Android 知识体系。


古语道:学而不思则罔,思而不学则殆。如果将做项目类比为“学”,那么整理就可以类比为“思”。


在做项目过程中总是会遇到使用相同的功能,比如 toast、对话框、刷新加载列表、网络框架、数据库等等,一个简单的方法就是从之前的项目中复制粘贴到新项目中,然后做一些个性化修改,好了,这就“大功告成”了。当另外一个新项目用到了,再次复制粘贴。这样是不是很 low。但是当项目一个接一个的时候,这个方法是一个简单快速的方法。


那么当几乎没有项目可做的时候或者当周末有时间的时候,我们是不是应该对功能点进行一下思考呢。那么思考什么呢?


1.思考这个功能点经过多个项目的“考验”,是不是“成年”了,可以“独立”出来了;2.思考这个功能点是不是属于常用功能,值得“独立”出来;如果是的话,为什么不把这个功能点从项目中“独立”出来呢。有人会说,我记忆好,能知道所有项目中用到的功能点,我可以随时找到。是吗?我当下很怀疑啊。

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 库。

架构师筑基包括哪些内容

我花了将近半个月时间将:深入 Java 泛型.、注解深入浅出、并发编程.、数据传输与序列化、Java 虚拟机原理、反射与类加载、高效 IO、Kotlin 项目实战等等 Android 架构师筑基必备技能整合成了一套系统知识笔记 PDF,相信看完这份文档,你将会对这些 Android 架构师筑基必备技能有着更深入、更系统的理解。


由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的【架构师筑基必备技能】文档领取方式:点赞+关注,然后私信关键词 【666】即可获得免费领取方式!或者 可以查看我的【Github

注:资料与上面思维导图一起看会更容易学习哦!每个点每个细节分支,都有对应的目录内容与知识点!



这份资料就包含了所有 Android 初级架构师所需的所有知识!需要的可以在我的 GIthub 里面去查看!

用户头像

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

还未添加个人简介

评论

发布
暂无评论
安卓开发实战讲解!从新手到Flutter架构师,一篇就够!快来收藏!