android系统架构图汇总

格式:DOC 上传日期:2023-04-26 17:40:09
android系统架构图汇总
时间:2023-04-26 17:40:09     小编:zdfb

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。那么我们该如何写一篇较为完美的范文呢?这里我整理了一些优秀的范文,希望对大家有所帮助,下面我们就来了解一下吧。

android系统架构图篇一

目前android的linux kernel控制包括安全、存储器管理、进程管理、网络堆叠、驱动程序模型等。下载android源码之前,先要安装其构建工具repo来初始化源码。repo是android用来辅助git工作的一个工具。

android系统是基于linux内核开发,使用java作编程语言,使界面到功能,都有层出不穷的变化,其中activity等同于j2me的midlet,一个activity类别负责创建视窗,一个活动中的activity就是在foreground(前景)模式,背景执行的程序叫做service。两者之间透过由serviceconnection和aidl连结,达到复数程序同时执行的效果。如果执行中的activity全部画面被其他activity取代时,该activity便被停止,甚至被系统清除。

view等同于j2me的displayable,程序人员可以透过view类别与“xml layout”档将ui放置在视窗上,并可以利用view打造出所谓的widgets,其实widget只是view的一种,所以可以使用xml来设计layout。至于viewgroup是各种layout的基础抽象类别,viewgroup之内还可以有viewgroup。view的构造函数不需要在activity中调用,但是displayable的是必须的,在activity中,要通过findviewbyid()来从xml中获取view,android的view类的显示很大程度上是从xml中读取的。view与事件息息相关,两者之间透过listener结合在一起,每一个view都可以注册event listener,例如:当view要处理用户触碰的事件时,klistener。另外还有image等同于j2me的bitmap。

操作系统与应用程序的沟通桥梁,并用分为两层:函数层和虚拟机器。 bionic是android改良libc的版本。android包含了chrome浏览器引擎。surface flinger是就2d或3d的内容显示到萤幕上。 libc。

android采用opencore作为基础多媒体框架。opencore可分7大块:pvplayer、pvauthor、codec、packetvideo multimedia framework(pvmf)、operating system compatibility library(oscl)、common、openmax。

android使用skia为核心图形引擎,搭配opengl/es。skia与linux cairo功能相当,但相较于linux cairo,skia功能还只是阳春型的。2005年skia公司被google收购,2007年初,skia gl源码被公开,目前skia也是google chrome的图形引擎。

android的多媒体资料库采用sqlite资料库系统。资料库又分为共用资料库及私用资料库。用户可透过contentprovider类别获取共用资料库。

android的中间层多以java实现,4.4版之前使用特殊的dalvik虚拟机器。dalvik虚拟机器是一种“暂存器型态”的java虚拟机器,变数皆存放于暂存器中,虚拟机器的指令相对减少。5.0版起改用android runtime(art)。

dalvik虚拟机器可以有多个实例,每个android应用程序都用一个自属的dalvik虚拟机器来执行,让系统在执行程序时可达到最优化。dalvik虚拟机器并非执行java字节码,格式的档案。

android的硬件抽像层是能以封闭源码形式提供硬件驱动模块。hal的目的是为了把android framework与linux kernel隔开,让android不至过度依赖linux kernel,以达成“内核独立”(kernel independent)的概念,也让android framework的开发能在不考量驱动程序实现的前提下进行发展,以达到垄断gpu市场的目的。

hal stub是一种代理人的概念,stub是以*.so档的形式存在。stub向hal“提供”操作函数,并由android runtime向hal获取stub的操作,再回调这些操作函数。hal里包含了许多的stub(代理人)。runtime只要说明“类型”,即module id,就可以获取操作函数。

android是执行于linux kernel之上,但并不是gnu/linux。因为在一般gnu/linux里支持的功能,android大都没有支持,包括cairo、x11、alsa、ffmpeg、gtk、pango及glibc等都被移除掉了。android又以bionic取代glibc、以skia取代cairo、再以opencore取代ffmpeg等等。android为了达到商业应用,必须移除被gnu gpl授权证所约束的部分,android并没有用户层驱动(user space driver)这种东西。所有的驱动还是在内核空间中,并以hal隔开版权问题。bionic/libc/kernel/ 并非标准的内核头文件(kernel header files)。android的内核头文件是利用工具由linux内核的头文件所产生的,这样做是为了保留常数、资料结构与宏。

android的核心基于linux,除了核心之外,则是中介层、数据库元和用c/c++编写的api以及应用程序框架。android的应用程序通常以java数据库元为基础编写,运行程序时,应用程序的代码会被即时转变为dalvik dex-code(dalvik executable),然后android操作系统通过使用即时编译的dalvik虚拟机来将其运行。

s("content_relate");

【android系统架构简介】相关文章:

1.

智慧健康系统架构

2.

秒杀系统架构分析

3.

软件架构是什么-什么是系统架构

4.

什么是系统架构师-如何成为系统架构师

5.

系统架构师概述

6.

sap系统架构是什么

7.

如何搭建系统css架构

8.

什么是系统架构师

【本文地址:http://www.xuefen.com.cn/zuowen/2720602.html】

全文阅读已结束,如果需要下载本文请点击

下载此文档