Android源代码结构
简介
在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试。但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码。
图:找不到Android源码的提示
我们都知道Android系统是一个开源工程,在网上可以下载到源代码。一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是http://android.git.kernel.org/。关于利用Git下载android源代码的方法,我就不再赘述了,因为网上的方法很多,这里给出一个参考链接Windows平台下Android源码的下载。
如果你跟我一样是初学者,相信看了上面的文章,你就知道如何使用Git下载android源码了。但是,看着http://android.git.kernel.org/ 站点下的各种目录和文件,相信你也会跟我一样傻眼,不知道那个目录下的文件对应是什么代码,想找到自己所需要的东西都比较难了。所以这里给大家介绍一下android源代码的结构,如果发现文章有错误之处,还请各位童鞋轻点砸砖!
图:http://android.git.kernel.org/ 下纷繁复杂的文件
认识Android源代码结构之前,先来再熟悉一下Android的系统架构吧!Android系统架构被分为四层,自下而上分别是:Linux操作系统及驱动层、本地框架和Java运行环境、Java框架、Java应用层。每一层的具体介绍在此就略过了。
图:Android系统架构
认识Android源代码结构
Android代码的工程分为3个部分,在打开http://android.git.kernel.org/ 后看到的,就是android源代码的根目录。(建议:打开这个网站后,对照学习以下内容)
- 核心工程(Core Project):建立Android 系统的基础,在根目录的各个文件夹中。
- 扩展工程(External Project):使用其他开源项目扩展的功能,在external 文件夹中。
- 包(Package):提供Android 的应用程序和服务,在package 文件夹中。
1、Android 的核心工程
Android 的核心工程包含了对Android系统基本运行的支持,以及Android系统的编译系统,工程的内容如下表:
工程名称 | 工程描述 |
bionic | [Build 系统] C运行时支持:libc、libm、libdl、动态linker |
bootloader/legacy | Bootloader 参考代码 (内核加载器,在内核运行之前运行) |
build | [Build 系统] Build系统 |
dalvik | Dalvik虚拟机 |
delelopment | 高层的开发和调试工具 |
framework/base | Android 核心的框架库 |
framework/policies/base | 框架配置策略 |
hardware/libhardware | 硬件抽象层库 |
hardware/ril | 无线接口层(Radio Interface Layer) |
kernel | Linux 内核 |
prebuilt | [预编译内核] 对Linux 和 Mac OS 编译的二进制支持 |
system/core | 最小化可启动的环境 |
system/extras | 底层调试和检查工具 |
除了上表列出的工程外,还有其他的工程,但大都是Android系统第2个层次的源代码。
2、Android 扩展工程
Android 的扩展工程包含在external文件夹中,是一些经过修改后适应Android系统的开源工程。有一些工程在主机上运行,也有些在目标机上运行。由于包含的扩展工程就多,就不一一列出,感兴趣的童鞋可以自己收集一些资料学习一下。
3、Android 中的Java程序包
Android中的Java程序包是Android系统架构第4层的内容,主要包括应用程序(Application)和内容提供器(Content Providers)两个部分,还有一个目录inputmethods是
相关新闻>>
- 发表评论
-
- 最新评论 更多>>