作为一个工作了好几年的Android应用层开发者,准备在工作之余干一件事情,那就是分享一些Android系统知识
,为什么决定要做这个呢,理由如下:
不知何时起,单纯的Android应用层开发越来越少了,主流技术演变也越来越快,从之前的rxjava到如今的协程,从之前MVC到如今的MVVM,还有Flutter、Compose
等技术,可以说是日新月异。 当我们在使用这些技术时,通常会犯一个毛病,那就是使用简单,深入困难。随便新技术,可能几天就上手了,但是没有深入理解,时间久了,就容易欠下许多技术债。
这里我提到了转到Android系统开发,也并非是一定的好方向,只是觉得可以多一条路而已,毕竟有很多相通之处。在Android系统中,涉及的知识更多,从充当基石的Linux,到各种C++库的native层,再到我们熟悉的 Framework层,还包括虚拟机、驱动等,这里关联的知识非常多,更适合个人能力提升和沉淀。
这个说起来并非易事,可能在很多人的认知里,Android开发就是主要用来实现UI和交互
,但是现在小程序和混合开发大行其道,真正留给Android开发的工作量可能会越来越少。
Android系统的架构官方经典图献上:
从下到上分别是:
Linux内核
:Android平台的基础是Linux内核,Android虚拟机依靠Linux内核来执行底层功能,比如线程和底层内存管理。同时基于