Android系统架构

 Android系统叫一共分为五层:应用程序层(Application)、应用程序框架层(Application Framework)、系统运行库层(Libraries和Android Runtime)和linux内核层(linux kernel)。

目录

1.应用程序层

2.应用程序框架层

3.系统运行库层

1.程序库

2.android运行时库

4.linux内核层


1.应用程序层

 所有的应用程序都是由java或者kotlin语言来编写的,通过调用应用程序框架层所提供的api来完成。当然也可以通过使用java或者kotlin调研jni的方式,配合android ndk来开发原生的应用程序,这样可以提高应用程序的效率,但是难度也将增大,需要熟悉c/c++语言。

2.应用程序框架层

     应用程序框架层为开发人员提高了可以完全访问核心应用程序所使用的api框架。

     

表1 应用程序框架层提供的组件及功能描述
名称功能描述
活动管理器(Activity Manager)

管理应用程序生命周期并提供常用导航回退功能

窗口管理器(window  manager)

管理所有开启的窗口程序

内容提供者(content provider)

使应用程序可以访问另一个应用程序的数据,或者共享他们自己的数据

视图系统(view system)

可以用来构建应用程序,它包括列表,网格,文本框,按钮等,

通知管理器(notification manager)

使应用程序可以在状态栏显示自定义提示信息

包管理器(package manager)

管理所有安装在android系统的应用程序

资源管理器(resource manager)

提供各种资源供应用程序使用

硬件服务(hardware service)

电话、地图、蓝牙、wifi、usb、传感器等

3.系统运行库层

系统运行库层包括程序库和android运行库。

1.程序库

android包括一些C/C++库,能被android系统的不同组件使用,它们通过应用程序框架为开发者提供服务。

表2 系统运行库层包含的核心库及其功能描述
名称功能描述
surface manager对显示子系统进行管理,并且为多个应用程序提供2d和3d图层的融合
media framework基于packetVideo OpenCore,该库自持多种格式的音频和视频的回放和录制,同时支持静态图像
sqlite轻型关系数据库引擎
opengl es硬件3D加速或者高度优化的3D软加速
SGL底层的2D图像引擎,android使用skia作为其核心图像引擎
FreeType位图和矢量字体显示
webkit最新的web浏览器引擎
SSL安全通信相关技术处理
Libeandroid没有采用glibc作为C库,而是采用了google自己开发的Bionic libc。它从BSD继承标准C系统函数库,是专门为基于嵌入式Linux设备定制的

2.android运行时库

分为核心库和Dalvik虚拟机两部分。核心库提供了java语言的大多数功能,Dalvik虚拟机是为了能同时高效运行多个VMs而实现的。Dalvik虚拟机执行.dex的可执行文件,该格式针对最小内存做了优化。Dalvik虚拟机是基于寄存器的,所有的类经由Java汇编器编译,然后通过sdk的dx工具转化成.dex格式由虚拟机执行。

4.linux内核层

Android依赖于linux2.6版内核提供的核心系统服务如内存管理,进程管理,驱动模块。内核存在于软件栈层和硬件层之间,Android对内核的硬件时钟、内存分配与共享、低内存管理器、kernel调试、日志设备、IPC机制、电源管理进行了增强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

景兄弟1366

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值