Android Source Code Architecture
1. Android framework

2. Android directories


|-- bionic
Android使用开源Linux内核同时Google为Linux内核增强了不少东西,自己开发了Bionic库。首先GNU的内核在体积和运行效率上不适合移动设备,系统核心组件都是以动态库的形式驻留在每个进程中,运行效率和内存占用都是十分重要的问题。Google开发了一个自定义的库名为Bionic,以BSD许可形式开源。

|-- bootloader
Legacy, 未知
|-- build
Android 的Makefile实际上在此目录下。
|-- buildspec.mk.default //此文件注释中提到此文件为临时文件,
|-- cleanspec.mk //clean build
|-- core //mk (Makefile 文件) 文件多在此目录下
|-- envsetup.sh //用于编译Android 的脚本
|-- libs //不太清楚
|-- target //类似于qtopia 中QPE/device目录,关于不同target所需要的一些定义,为目标所需要文件
`-- tools //编译过程中主机所需要的工具,一些需要经过编译生成
其中,core中的Makefile是整个Android编译所需要的真正的Makefile,它被顶层目录的Makefile引用。
envsetup.sh是一个在使用仿真器运行的时候,用于设置环境的脚本。
dalvik目录用于提供Android JAVA应用程序运行的基础————JAVA虚拟机。
development目录展开的一个级别的目录如下所示:



|-- dalvik
Google自己的java虚拟机, 有源码。

|-- development
在Android中运行, 用于开发中调试的工具。如Emulator上运行的,用于监视系统运行情况的程序。
|-- apps //Android应用程序的模板
|-- build //编译脚本模板
|-- cmds
|-- data
|-- docs
|-- emulator //模拟器相关
|-- host //包含windows平台的一些工具
|-- ide
|-- pdk
|-- samples //一些示例程序
|-- simulator //大多是目标机器的一些工具
`-- tools
在emulator目录中qemud是使用QEMU仿真时目标机器运行的后台程序,skins是仿真时手机的界面。
samples中包含了很多Android简单工程,这些工程为开发者学习开发Android程序提供了很大便利,可以作为模板使用。


|-- external
非系统库,bluez, dbus, yaffs2等。有一个googleclient, 还没有看。
在external中,每个目录表示Android目标系统中的一个模块,可能有一个或者若干个库构成。其中:
opencore为PV(PacketVideo),它是Android多媒体框架的核心。
webkit是Android网络浏览器的核心。
sqlite是Android数据库系统的核心。
openssl是Secure Socket Layer,一个网络协议层,用于为数据通讯提供安全支持。



|-- frameworks Android framework
|-- base
Base下的目录列表
|-- Android.mk
|-- MODULE_LICENSE_APACHE2
|-- NOTICE
|-- awt
|-- camera
|-- cmds
|-- core
重点。Android SDK源码在此。

|-- data
|-- docs
|-- graphics
|-- include
|-- libs
|-- location
|-- media
|-- opengl
|-- packages
|-- preloaded-classes
|-- sax
|-- services
|-- telephony
|-- test-runner
|-- tools
`-- wifi
|-- opt //不大清楚
`-- policies //手机运行的后台,好像管理按键消息,以及关机等

|-- hardware
GPS, POWER, WIFI等硬件驱动

|-- kernel
Linux kernel



|-- out //编译出的结果放在此目录下,包括img文件以及编译好的jar库
|-- packages //Android应用程序,SDK中已经实现的应用程序,Alarm Clock, Media Player 等, 不能直接在1.0sdk上编译,1.0的sdk中并没有source code中庫的接口
|-- prebuilt //平台相关 windows, linux(x86)等。
|-- recovery //不大清楚
`-- system //adb源码在此

更多相关文章

  1. 《Android/OPhone 开发完全讲义》目录
  2. 用Eclipse开发Android应用程序(2): 开发环境搭建
  3. Android——导入已存在的android工程时出现红叉错误“AndroidMan
  4. Android深入四大组件(一)应用程序启动过程
  5. android中xml文件的使用详解
  6. Android 应用程序基础知识(2)
  7. [摘]android 入门xml布局文件
  8. Android 选择文件并返回路径
  9. 关于android xml文件中 android:id="@+id/my_button"的含义疑问

随机推荐

  1. Android(安卓)应用内存管理-onTrimMemory
  2. Android实现通讯录功能
  3. Android报错:open failed: EACCES (Permis
  4. Android(安卓)MMS/SMS(二)
  5. ViewAnimator教程
  6. 【RK3399】Android(安卓)9.0 系统更改记
  7. monkey的基本定义及基本使用(菜鸟学习中)
  8. android sqllite数据库的多表联合查询
  9. Android开发中textStyle=”bold”无效的
  10. Android监听器的实现方法