android 源码总体结构
– Makefile (全局的Makefile文件)
– bionic (Bionic含义为仿生,这里面是一些基础的C库源代码)
– bootloader (引导加载器)
build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
– build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
– cts (Android兼容性测试套件标准)
– libcore (核心库相关)
Dalvik虚拟机 针对嵌入式设备优化的Java
Java虚拟机)
– dalvik ( Dalvik虚拟机,针对嵌入式设备优化的Java虚拟机)
– development (创建应用程序所需要的模板和工具)
qcom,
– device (与具体设备相关的一些编译脚本和库,如htc,qcom,samsung等)
– external (Android使用的一些外部的开源框架和库)
(应用程序的框架层,SDK
SDK的接口基本都是在这里实现的)
– frameworks (应用程序的框架层,SDK的接口基本都是在这里实现的)
– hardware (与硬件相关的库)
Linux2.6
– kernel (Linux2.6的内核源代码)
– ndk (本地开发套件--C语言开发套件)
--C
Android的各种应用程序)
– packages (Android的各种应用程序)
– prebuilt (Android在各种平台下编译的预置脚本)
– sdk (SDK及模拟器)
Android的底层的一些库)
– system (Android的底层的一些库)
`– vendor (厂商私有的代码)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
packages/
|– apps (各种应用程序,如联系人、浏览器等)
|– experimental (一些实验性的项目,如错误报告)
|– inputmethods (输入法相关)
|– providers (各种数据源实现,如联系人数据、媒体库等信息)
|– wallpapers (各种壁纸程序)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Android Framework功能介绍
android.app :提供高层的程序模型和基本的运行环境。
android.content :包含对各种设备上的数据进行访问和发布。
android.database :通过内容提供者浏览和操作数据库。
android.graphics :底层图形库,包含画布、点、矩形等,可以将其直接绘制到屏幕上。
android.location :定位和相关服务的类。
android.media :提供一些类管理多种音频、视频的媒体接口。
android.net :提供帮助网络访问的类,超过通常的 java.net.* 接口。
android.os :提供了系统服务、消息传输和 IPC 机制。
android.opengl :提供 OpenGL 的工具。
android.provider :提供访问 Android 内容提供者的类。
android.telephony :提供与拨打电话相关的 API 交互。
android.view :提供基础的用户界面接口框架。
android.util :涉及工具性的方法,例如时间日期的操作。
android.webkit :默认浏览器操作接口。
android.widget :包含各种 UI 元素(大部分是可见的)在应用程序的布局中使用
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/
|– buildspec.mk.default
|– cleanspec.mk
|– core (各种以mk为结尾的文件,它门是编译所需要的Makefile)
|– envsetup.sh
|– libs
|– target (包含board和product两个目录,为目标所需要文件)
|– tools (编译过程中主机所需要的工具,一些需要经过编译生成)
其中,core中的Makefile是整个Android编译所需要的真正的Makefile,它被顶层目录的Makefile引用。