不知你们有没有注意到,我最近发布的关于 Android 的文章都开始涉及到在源码里面找问题了,比如不久前的『Toolbar NavigationIcon & Title 迷之间距』和『Android CountDownTimer 实现倒计时』等。
由于 Android 是开源的,所以我们开发者可以了解到其系统内部的实现原理,以帮助我们更好的设计逻辑代码。
Android 源码集成的项目称为 Android Open Source Project,我们一般简称 AOSP。那么从哪能找到 Android 的源码呢?
其中最简单的方法就是通过『Android Studio』中的跳转,按住 Ctrl
键(Windows)或 Command
键(macOS)然后移动鼠标到相应的类或方法中点击即可跳转。
这种方式比较适合用来查看属性类型的源码文件,比如在『Toolbar NavigationIcon & Title 迷之间距』一文中的「values.xml」文件。
而逻辑实现的文件通常不会使用这种方式打开,因为通过这种方法打开的是「.class」文件,即通过字节码文件反编译出来的代码,会有一些逻辑的缺失,你需要点击『Android Studio』上方的「Download Sources」来下载完整的源码。
由于 Android 项目的庞大,所以很多时候我也会使用一些在线的网站来查看、阅读与下载,今天就来推荐几个我常用的查看 Android 源码的网站。
Android Open Source Project
最官方的途径总是最权威,因此我比较建议在 Android Source 中获取源码以及文档,且 Google 还特意为中国开发者搭建了一个中文站点,照顾墙外的人。
AOSP Mirror · Github
从 AOSP 官网中提供的信息我们可以知道,Android 的源码存储在 Google 的 Gerrit 服务器上,如果你懒得配置,可以在『Github』上寻找对应的镜像 Repo。
Android OS 在线源代码
由于 Github 和 Google 的不稳定性,有时候从国内的站点获取 Android 源码反而更方便,『Android社区』提供了 Android 系统所有版本源码的查看与下载,十分方便。
AndroidXRef
『AndroidXRef』在国内的访问速度也是挺快的,只不过网站整体比较简陋,且就目前来看,更新不及时,不知是维护者弃了还是单纯的佛系更新,但其搜索功能还是挺不错的。
Opersys AOSP Portal
『Opersys AOSP Portal』提供了类似『AndroidXRef』的交叉索引功能,且更新比较及时,还可以查看更新日志,是『AndroidXRef』的一个很好的替代品。
Android Code Search
Android 官方推出的开源代码搜索工具,除了搜索 AOSP 的代码之外,它同时提供了 CameraX、Jetpack Compose 等 AndroidX 库的源码搜索,功能强大,但目前墙外无法访问,相信以后会逐步开放。
Git repositories on Android
Android 的 Git 仓库,包含了一些库的文档和代码,但由于无检索能力,仅适合阅读。
清华大学开源软件镜像站
清华大学为我们提供的开源软件镜像,更新速度比较快,仅支持下载,操作跟官方类似。
其实,在线查看 Android 源码的网站远远不止这些,几乎每隔一段时间都有一批类似的网站诞生,也有一批类似的网站死去,因此官方的途径总是相对稳定,如果条件允许,建议还是官方网站来获取。