Android学习系列

背景简介

Android是当今最流行的移动操作系统之一,它是一个由Google主导的开源项目AOSPAndroid Open Source Project,官方地址:https://android.googlesource.com/)。

Android整体架构

图1:Android整体架构图,,图片来自Google Android系统开发者官网[^1]

Android的源码由一个个大大小小的repo(代码仓)组成,十分庞杂,抛开架构直接学习源码,费时费力不讨好。本系列文章计划从Android的各个子系统(大致有:相机、音频、图形、媒体、连接性等等)入手,同时穿插着对一些基础技术(比如强弱指针、Binder等)的学习。

Camera子系统开始。

本文仅存放各个模块的学习目录、一些术语约定及学习资源,保持不定期更新。

系列目录

术语约定

Google Android系统开发者官网[^1]

强调系统两个字,意思是该网站主要针对于系统开发者,提供系统架构、底层等方面的参考指引。

Android是一个开源项目,谁都可以拿它来使用和修改,耳熟能详的,诸如MIUIflyme,都是基于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 Searchhttps://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/