首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android系统架构简介

Android系统架构简介

作者头像
乱码三千
发布2021-07-29 15:18:14
4970
发布2021-07-29 15:18:14
举报
文章被收录于专栏:乱码三千乱码三千

Android系统架构师安卓系统的体系机构,Android的系统架构和其他操作系统一样,采用了分层的架构,共分为4层,从高到低分别是Android应用层,Android应用架构层,Android系统运行层和Linux内核层。

1. 应用程序

顶层中有所有的Android应用程序,包括通讯录、浏览器等,你写的应用程序也被安装在这层;所有的的应用程序都是使用Java语言编写的。

2. 应用框架层

这一层主要提供构建应用程序是可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用API来构建自己的应用程序

活动管理者(Activity Manager):控制应用程序生命周期和活动栈的所有方面

内容提供器(Content Providers):允许程序之间发布和分享数据。

资源管理器(Resource Manager):提供对非代码嵌入资源的访问,如字符串、颜色设置和用户界面布局。

通知管理器(Notification Manager):允许应用程序显示对话框或者通知给用户

视图系统(View System):一个可拓展的视图集合,用于创建应用程序用户界面

3. 系统运行库层

1) 程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。他们通过Android应用程序框架为开发者提供服务,以下是一些核心库:

*系统C库(libc):一个从BSD继承来的标准C系统函数库,他是专门为基于embedded linux的设备定制的媒体库(Media Framework):基于Packet Video opencore; 该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 MPEG4。H264、MP3、AAC、AMR、JPG、PNG。

* Surface Manager:对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。

* SGL:底层的2D图形引擎

*3D libraries:基于OpenFLES1.0 APLs实现,该库可以使用硬件3D加速或者使用高度优化3D软加速。

*FreeType:位图(bitmap)和矢量(vector)字体显示

*SQLite:一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

2) Android运行库

Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该个税文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由java编译器编译,然后通过SDK中的”dx”工具转化成 .dex格式由虚拟机执行

Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

4. Linux内核层

Android系统基于Linux2.6内核,这一层为Android设备各种硬件提供了底层驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,WIFI驱动,电源管理等

区别DVM与JVM

\1. 首要差别

1Dalvik:基于寄存器,编译和运行都会更快些

JVM:基于栈,编译和运行都会慢一些

\2. 字节码的区别

Dalvik:执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小

JVM:执行.class格式的字节码

\3. 运行环境的区别

Dalvik:一个应用启动都运行一个单独的虚拟机运行在一个单独的进程中

JVM:只能运行一个实例,也就是所有应用都运行在同一个JVM中

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱码三千 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档