前言
关于查看Android源代码,我们可以通过两种手段查看,一个是本地,一个是在线。
在线查看Android源代码,请看http://androidxref.com/。
本地查看根据级别可以下载不同的源码:
1、如果仅仅是看一下Java端的Android源代码可以直接在Android Studio中查看(SDK里面有)
2、如果还想了解Android源码C++部分的源码可以去github下载一个分支:https://github.com/aosp-mirror/platform_frameworks_base/
3、如果还想了解Android内核、硬件层、recovery等源码,请看下文:
Android源码下载
主要是记录一下第一次下载时的一些步骤,以及自己在这过程中的一些疑问记录一下,希望能够帮到后来者。
使用的是清华的AOSP:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/,也有官方指示步骤。
进入正题
步骤一:下载 repo 工具。
需要解释一下repo,不理解的情况下,会一脸懵逼的看待接下来的源码下载:
repo是对git文件的管理。git文件应该都明白,repo就是可以针对所有的git一起操作,一起同步,Android源码包含了很多很多的git,需要使用repo来管理。
mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
注意点:这里的repo是不能用的(这里的repo指向google,所有后面执行repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest,会报联系不上google仓库,翻墙也不能解决)。所以使用https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/下的解释:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo
步骤二:https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
这个下载的是一堆的git仓库,并没有任何可用的代码,但是目前依然有37G...
推荐直接使用迅雷下载,不然网络中断就可能失败,导致重新下载。这里我是下了2天2夜...
然后
tar xf aosp-latest.tar cd AOSP
# 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
步骤三:repo仓库初始化:
仓库列表地址:https://source.android.com/source/build-numbers.html#source-code-tags-and-builds
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.0.0_r17
步骤四:获取源代码
repo sync,也就是根据.repo目录下的git,同步下载andriod-8.0.0_r17的代码。
特别注意:这里的sync会失败很多次,但是没有关系,一直sync下去就可以了,只要有能下载成功的可以。这里我同步了大概6-7次才完全获取成功。只有全部sync完了之后,你才能看到最后的checkout,才会看到android-8.0.0_r17的代码,也就是android8.0的真正源码,作为Android开发最想看到的东西。
查看aosp目录:
可以看到aosp/frameworks/base 即前言里面第二个查看方式。
aosp/system 内核代码
aosp/device 可以看到google/lge/huawei的一些定制信息
aosp/bootable/recovery recovery