【谷歌公众号官宣,Code Search,的4天前,我就写好这篇blog的草稿了】,因为各种奇葩事情,没发出来,心塞。
曾经一个 “比官方更早推广Code Search的机会” 摆在我面前,但是我没有珍惜……
一、 在线阅读android系统源码
直接浏览器查看android源码,很方便
早前我们都用 grepcode在线看源码,不仅没墙,而且稳定好用,可惜grepcode服务器停服了好多年了。
最近 google 出品Code Search,cs.android.com/ ,更好用了,哇哈哈哈。
更好用了,哇哈哈哈。
更好用了,哇哈哈哈。
更好用了,哇哈哈哈。
但是要注意了:
这个网站国内访问不了。。。
国内访问不了。。。
国内访问不了。。。
- 来我们搜索activitymanager类的源码,试试:
代码搜索很方便
信息很丰富:git 提交历史,修改者等,类的概览,目录结构等
语法高亮很自然
- 切换代码版本|分支
好了,接下来深入主题。。。
二、 什么是AOSP
AOSP,是Android 源代码项目的简称。
英文全称:Android Open-Source Project
中文全称:Android 开放源代码项目
三、 安卓官方源码存放于:android.googlesource.com
注意该网站被墙了
虽然官网被墙,但是,清华大学,有aosp的镜像服务器:aosp.tuna.tsinghua.edu.cn/
四、 单个模块下载
AOSP 由很多个git仓库组成,往往一个git仓库是一个比较独立的模块,可以单独下载。
比如,我们只想下载 android系统应用《计算器》 的代码时。
- 打开网站 android.googlesource.com/ 找到计算器
-
直接,git clone即可。
git clone https://android.googlesource.com/platform/packages/apps/Calculator
使用清华镜像下载:将https://android.googlesource.com替换为:aosp.tuna.tsinghua.edu.cn
git clone https://aosp.tuna.tsinghua.edu.cn/platform/packages/apps/Calculator
五、 repo 全量下载所有源码
官方教程:source.android.google.cn/setup/build…
官方教程已经很详细了,咱们再做个补充吧。
- 什么是repo?
repo 是android源码管理工具,底层还是使用git命令来实现代码版本管理。
因为android是由N个git仓库组成,repo可以实现这些仓库的统一管理。
repo是python实现的工具,需要依赖python环境。所以你的电脑需要安装好python环境。
- 下载不同版本代码
repo init -u https://android.googlesource.com/platform/manifest -b {VERSION_TAG}
repo sync
{VERSION_TAG} 为git tag,在如下图文档,可以查看所有android版本的tag:
source.android.google.cn/setup/start…
六、 android架构与源码文件目录对应关系
android源码目录结构清晰。各个版本的源码目录结构大同小异。
我们先来看看android系统架构图,android是分层架构的。
- android分层架构图
大家猜猜看: App层、Framework层、c/c++ libraries层、art【anroid Runtime】、HAL层、Linux Kernel层的 对应的源码在那些文件夹下面吗?
- android源码目录
看文件夹名称我们基本也能猜出个7788了。
- android源码目录与架构的关系
脑图来自网络:@码出世界
更多必备技能,点击这里:juejin.cn/post/684490…
赞美是一种美德,点个赞 再走啊,老铁
关键词:android源码阅读; Code Search; android架构; grepcode; AOSP; android源码; android source;
参考资料