首先推荐大家一个很好的,而且没有被墙的android源码查询网站:http://androidxref.com/
大家可以直接在上面查看源码,而且里面的查询也很方便。
如果是第一次查看源码肯定会被里面的目录名整迷糊了,不知道要在哪个目录下查到自己想要的代码。我这边给大家详细介绍下:
Bionic - Google自己开发的安卓C运行库。 在这个文件夹下你可以找到c库的源码,如数学计算和其他的一些核心运行C库源码。(注:一般Linux系统使用glibc, bionic主要以BSD许可形式开源,它仅有200KB是glibc的一半,有更高的效率和低内存占用,更适合移动设备)
Bootable - 引导 和 启动相关代码。它对广大设备厂商来说是一个福音,很多设备的boot loaders实行这种fastboot协议,比如Nexus One。
Build - 编译系统的实现包含系统所有的核心makefile模板。其中一个很有用的文件 envsetup.sh 可以帮你设定环境变量,编译专有模块和检索一下源码文件。
Cts - 兼容性测试。这个测试套确保编译过程符合Android规格。
Dalvik - Dalvik 虚拟机的实现源码。
Development - 开发相关的一些源码,如sdk、ndk工具。
Device - 这里包括硬件模块代码,不同设备,内容也不同。
External - 包含所有开源项目的代码,如SQLite, Freetype, Webkit 等。
Frameworks - Android框架源码。在这里可以找到Android最核心的实现,比如 包和Activity的管理等。许多的Java与native库映射的api也在这里实现。初期学习源码我们主要关注这个目录下内容。
Hardware - 硬件相关源码,如Android硬件抽象层的实现和规范。这个文件夹还包括所涉及的通信模块实现。
libcore - 核心java库,大部分内容曲子Apache Harmony的类库子集。(Apache Harmony虚拟机间接催生了Davilk虚拟机)
libnativehelper - JNI使用的帮助函数
Out - 运行make后生成的一些文件。
Packages - 包含系统默认应用的源码,如联系人、日历、浏览器等。
Prebuilt - 为方便而提前编译好的二进制文件。
System - Android系统核心的源码文件。这是在Dalvik虚拟机和所有java启动前所能运行的最小Linux系统。里面包括init进程、默认的init.rc 脚本 等。
tools - 不同IDE工具
为方便大家理解,再贴出一张Android的架构图
最后再推荐大家一个好用的Chrome插件:Android SDK Search,安装成功后,打开https://developer.android.com 查询某些View或组件的用法时,可以直接查看它的源码。如下,多了一个 view source
的按钮。
网友评论