Android源代码结构

Android源代码结构:
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:
.
|-- Makefile        (全局的Makefile)
|-- bionic          (Bionic含义为仿生,这里面是一些基础的库的源代码)
|-- bootloader      (引导加载器)
|-- build           (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
|-- dalvik          (JAVA虚拟机)
|-- development     (程序开发所需要的模板和工具)
|-- external        (目标机器使用的一些库)
|-- frameworks      (应用程序的框架层)
|-- hardware        (与硬件相关的库)
|-- kernel          (Linux2.6的源代码)
|-- packages        (Android的各种应用程序)
|-- prebuilt        (Android在各种平台下编译的预置脚本)
|-- recovery        (与目标的恢复功能相关)
`-- system          (Android的底层的一些库)
 

Android源码根目录 描述
abi 应用程序二进制接口
art 全新的ART运行环境
bionic 系统C库
bootable 启动引导相关代码
build 存放系统编译规则及generic等基础开发包配置
cts Android兼容性测试套件标准
dalvik dalvik    虚拟机
developers 开发者目录
development 应用程序开发相关
device 设备相关配置
docs 参考文档目录
external 开源模组相关文件
frameworks 应用程序框架,Android系统核心部分,由Java和C++编写
hardware 主要是硬件抽象层的代码
libcore 核心库相关文件
libnativehelper 动态库,实现JNI库的基础
ndk NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码
out 编译完成后代码输出在此目录
packages 应用程序包
pdk         Plug Development Kit 的缩写,本地开发套件
platform_testing 平台测试
prebuilts x86和arm架构下预编译的一些资源
sdk sdk和模拟器
system 底层文件系统库、应用和组件
toolchain 工具链文件
tools 工具文件
Makefile 全局Makefile文件,用来定义编译规则

 

上面这么多文件夹,有些是一直不需要去理会的,比如说我接触较多的就文件夹:device,build,out,packages。

device下都是一些配置文件,比如Wifi Adb端口如果需要写死,可以添加属性并设置里面的参数

build下是一些编译规则,比如可以设置某些程序是否安装。

out下是编译完成后生产的各种文件,比如各种系统的apk文件,这些都是即将安装到Android设备上面的

package下包含很多Android项目的源码,手机上所有可以点击的图标其实都是一个Android项目,比如录音,电话,系统设置,或者三方的一些程序(阅读器,应用商城)等等

Android系统源码也不是没有bug的,比如我之前的一个Android板子上的Music就有几个bug,需要进去package/apps/Music里面修改源码

把源码修改后重新编译,再把编译生成的镜像文件烧录到Android设备上就可以了。

接下来分析packages中的内容,也就是应用层部分

 

 

应用层位于整个Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都是在应用层。 
源码根目录中的packages目录对应着系统应用层。它的目录结构:

packages目录     描述
apps 核心应用程序
experimental 第三方应用程序
inputmethods 输入法目录
providers 内容提供者目录
screensavers 屏幕保护
services 通信服务
wallpapers 墙纸

 

你可能感兴趣的:(Android)