Android系统架构

   最近为了更深入的学习,由于遇到一本不错的书,所以开始写相关的读书笔记。同时开始练习相关的Markdwon写法。

1Android 系统机构

1. 应用层

2. 应用框架层(Java Framework)

提供的一些常用的API

名称功能描述
Activity Manager(活动管理器)管理各个应用程序生命周期以及通常的导航回退功能
Location Manager(位置管理器)提供地理位置以及定位功能服务
Package Manager(包管理器)管理所有安装在Android系统中的应用程序
Notification Manager(通知管理器)使得应用程序可以在状态栏中显示自定义的提示信息
Resource Manager(资源管理器)提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
Telephony Manager(电话管理器)管理所有的移动设备功能
Window Manager(窗口管理器)管理所有开启的窗口程序
Content Providers(内容提供器)使得不同应用程序之间可以共享数据
View System(视图系统)构建应用程序的基本组件

3. 系统运行库层(Native)

1. C/C++程序库

名称功能描述
OpenGL ES3D绘图函数库
Libc 从BSD继承来的标准C系统函数库,专门为基于嵌入式Linux的设备定制
Media Framework多媒体库,支持多种常用的音频、视频格式录制和回放。
SQLite轻型的关系型数据库引擎
SGL底层的2D图形渲染引擎
SSL安全套接层,是为网络通信提供安全及数据完整性的一种安全协议
FreeType可移植的字体引擎,它提供统一的接口来访问多种字体格式文件

2. Android运行时库

运行时库又分为核心库和ART(5.0系统之后,Dalvik虚拟机被ART取代)。DVM和ART相比进步的地方: 在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码。

3. 硬件抽象层(HAL)

通俗来讲,就是将控制硬件的动作放在硬件抽象层中。

4. Linux内核层

2.Android系统源码目录

如果没有下载的源码,在线查看推荐http://androidxref.com.查询搜索还是很快。

1.整体结构

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

2.应用层部分

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

3.应用框架层部分

/frameworks/base目录结构

/frameworks/base目录描述
api定义API
cmds重要命令:am、app_proce等
core核心库
data字体和声音等数据文件
docs文档
graphics图形图像相关
include头文件
keystore和数据签名证书相关
libs
location地理位置相关库
media多媒体相关库
native本地库
nfc-extrasNFC相关
obex蓝牙传输
opengl2D/3D 图形API
packages设置、TTS、VPN程序
saxXML解析器
services系统服务
telephony电话通讯管理
test-runner测试工具相关
tests测试相关
tools工具
wifiWiFI无线网络

4.C/C++程序库部分

目录位置描述
bionic/Google开发的系统C库,以BSD许可形式开源。
/frameworks/av/media系统媒体库
/frameworks/native/opengl第三方图形渲染库
/frameworks/native/services/surfaceflinger图形显示库,主要负责图形的渲染、叠加和绘制等功能
external/sqlite轻量型关系数据库SQLite的C++实现

3.Android源码阅读

1.在线阅读

推荐http://androidxref.com. 查询速度相对可以

2.使用Source Insight阅读

第一章的主要 内容就到这里了,详细的内容还需要实践去操作,比如真正的挑选到感兴趣的部分去阅读源码。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值