Android学习系列
背景简介
Android是当今最流行的移动操作系统之一,它是一个由Google主导的开源项目AOSP
(Android Open Source Project
,官方地址:https://android.googlesource.com/)。
图1:Android整体架构图,,图片来自Google Android系统开发者官网[^1]
Android的源码由一个个大大小小的repo
(代码仓)组成,十分庞杂,抛开架构直接学习源码,费时费力不讨好。本系列文章计划从Android的各个子系统(大致有:相机、音频、图形、媒体、连接性等等)入手,同时穿插着对一些基础技术(比如强弱指针、Binder
等)的学习。
从Camera
子系统开始。
本文仅存放各个模块的学习目录、一些术语约定及学习资源,保持不定期更新。
系列目录
术语约定
Google Android系统开发者官网[^1]
强调系统两个字,意思是该网站主要针对于系统开发者,提供系统架构、底层等方面的参考指引。
Android是一个开源项目,谁都可以拿它来使用和修改,耳熟能详的,诸如MIUI
、flyme
,都是基于Android开放的源代码深度定制的。这个网站的主要目标受众是定制系统(也称ROM
)的开发者。
Google Android应用开发者官网[^2]
类似于上一条,该网站针对应用开发者,可能最大的用途之一是查阅API了。当然上面有非常多应用开发的学习资源,偏向应用开发者。
Android官网[^3]
这个网站的存在感比较低,上面会放一些最新Android大版本的变化。
学习资源
1、源码:https://android.googlesource.com/
几个重要仓库的作用:
frameworks/av/ | Native Frameworks层,存放了部分用于与HAL交互的Native服务进程,如CameraService |
---|---|
frameworks/base/ | Java Framework层,存放给应用调用的API源码 |
frameworks/support/ | Jetpack 组件的源码仓 |
hardware/interfaces/ | Native Service与HAL相互通信的HIDL接口定义 |
2、Android Code Search
:https://cs.android.com/android/platform/superproject
官方出品,阅读源码强烈推荐的工具,支持交叉索引,非常好用。
脚注
[^1]: Google Android系统开发者官网:https://source.android.google.cn/
[^2]: Google Android应用开发者官网:https://developer.android.google.cn/
[^3]: Android官网:https://www.android.com/