一、前言
安卓系统因其代码开源性,成为了目前安装量最多的操作系统,大部分手机安装的都是安卓系统,大概占手机用户群体的80%以上。
所以研究安卓系统源码应该可以说是一个比较有‘钱途’的事情。
但由于安卓系统源码很大部分都是用C/C++代码写的,复杂而庞大,想要将其彻底研究清楚还是一件比较困难的事情,本文只是我目前对其部分源码的理解,不一定准确,仅供参考。
如果后续有机会的话,我想我会继续研究下去的。
二、理解安卓系统
安卓是基于linux系统之上开发的一个系统,为了效率,其底层是用C/C++写的,中间层是一个叫做jni的模块,用于让上层的Java代码与底层的C/C++代码进行交互。
所以说安卓软件目前是从系统层面绑定了java语言的,如果你想要学习开发安卓程序,那么Java至少需要有一定程度的理解才行,如果后续有空的话,我应该也会考虑出一套java相关的简单入门教程。
不过相比于java
,我更加看好Kotlin
,这个以后有机会再聊吧。
安卓源码就公布在了Android Code Search
不过你需要翻墙才能查看,这个是违规内容,这里这不进一步讲述了,下面默认你已经能够访问这个官方了。
然后进入这个链接就能够查看到安卓系统的源码:platform/superproject/main - Android Code Search
每个文件夹中就代表着一个安卓系统的一个模块,其模块非常的多,这里我主要介绍的是ART
模块:
art模块你可以理解为一个虚拟机,毕竟Java代码最终生成的是可以跨平台的字节码,并不能直接在系统上执行,这就是虚拟机的用途,它是安卓软件运行的基础。
它里面又有很多模块,我这里要介绍的是里面的运行时模块:runtime