开篇 Android系统的体系结构
1、APPLICATIONS (应用程序层)
2、APPLICATION FRAMEWORK(应用程序框架) android应用程序提供了大量应用程序供开发者使用,当我看开发android应用程序时就是面向底层的框架进行的。
3、LIBRARIES(函数库) android包含一套被不同组件所使用的C/C++的集合,android应用开发者可以通过上面的应用程序框架来调用这些库。
- 系统C库: 一个从BSD系统派生出来的标准C系统库(libc),并专门为嵌入式Linux设备调整过。
- 媒体库:基于PacketVideo的OpenCORE,这套媒体库支持播放和录制许多流行的音频和视频格式,以及查看静态图片。主要包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等多媒体格式。
- Surface Manager:管理对显示子系统的访问,并可以对多个应用程序的2D和3D图层机提供无缝整合。
- L.ibWebCore:一个全新的Web浏览器引擎,该引擎为Android浏览器提供支持,也为WebView提供支持,WebView完全可以嵌入开发着自己的应用程序中。
- SGL:底层的2D图形引擎。
- 3D libraries:基于OpenGL ES 1.0 API实现的3D系统,这套3D库既可使用硬件3D加速(如硬件系统支持),也可使用高度优化的软件3D加速。
- Free Type:位图和向量字体显示。
- SQLite:供所有应用程序使用的、功能强大的轻量级关系数据库。
4、ANDROID RUNTIME(安卓运行时):Android运行时有两部分组成:Android核心库集和Dalvik虚拟机。其中核心库集提供了Java语言核心库所能使用的绝大部分功能,而虚拟机则 负 责运行Android应用程序。
- Dalvik虚拟机对Android应用程序的管理:每个Android应用程序都运行在单独的Dalvik虚拟机内(即每个Android应用程序对应一个Davlik进程),Dalvik专门针对同时高效的运行多个虚拟机进行了优化,因此Android系统以方便的实现对应用程序进行隔离。
- Dalvik和JVM的区别:由于Android应用程序的编程语言是Java,因此有些人会把Dalvik虚拟机和JNM搞混,但实际上二者存在差别:Dalvik并未遵守JVM规范,两者也不兼容。实际上,JVM虚拟机运行的是Java字节码(通常就是.class文件),但Dalvik运行的是器专有的dex(Dalvik Executable)文件。JVM直接从.class文件或JAR包中加载字节码然后运行;而Dalvik则无法从.class文件或JAR包中加载字节码,它需要通过DX工具将应用程序的所有.class文件编译成.dex文件,Dalvik运行该.dex文件。
- Dalvik的优点:Dalvik虚拟机非常适合在移动终端上使用,相对于PC或服务器上运行的虚拟机而言,Dalvik虚拟机不需要很快的CPU计算速度和大量的内存,它主要有如下两个特点。
- 运行专有的.dex文件。专有的.dex文件减少了.class文件中的冗余信息,而且会把所有.class文件整合到一个文件中,从而提高运行性能;而且DX工具还会对.dex文件进行一些性能的优化。
- 基于寄存器实现。大多数虚拟机(包括JVM)都是基于栈的,而Dalvik虚拟机则是基于寄存器的。一般来说,基于寄存器的虚拟机具有更好的性能表现,但在硬件通用性上略差。
5、Linux内核:Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层。
开篇 Android系统的体系结构的更多相关文章
- Android系统的体系结构、开发语言及源码结构
整理自android系统体系结构 Android 是google公司针对手机开发的一个平台,并公布了其中大部分代码,其大部分应用程序都是用JAVA开发的,毕竟它是商业性的产品嘛,有所保留也是理所 当然 ...
- 【转】Android系统开篇
版权声明:本站所有博文内容均为原创,转载请务必注明作者与原文链接,且不得篡改原文内容.另外,未经授权文章不得用于任何商业目的. 一.引言 Android系统非常庞大.错综复杂,其底层是采用Linux作 ...
- [总结]Android系统体系结构
Android 从图中可以看出Android主要的组成部分,其中底层是Linux的内核,包括的主要就是文件.内存.系统资源等的管理,Google在这部分的工作主要就是电源管理和一部分驱动,并且整合上层 ...
- android系统体系结构
android系统底层是建立在Linux系统之上的,如下图 从上图可以看出android系统有五部分组成 1.APPLICATIONS(应用程序层) 包含一些核心应用程序,电子邮件,日历,地图,浏览器 ...
- android系统架构解析
以上是我在这个课题下的一些参考博客或者网页链接.里面有对于android架构的一些较好的分析理解,接下来是楼主在阅读后自己的一些整理. Android采用层次化系统架构,官方公布的标准架构如下图所示. ...
- Android系统全貌 (转)
转自Gityuan的Android开篇,对自我学习作进一步整理. Android系统以Linux内核作为基底,上层采用Native层和Java层.系统分为内核空间和用户空间,并通过系统调用(Sysca ...
- android的四层体系结构,基于mvc三层结构浅析
从多方面理解Android体系结构 1.以分层的方式来看Android 安卓体系结构分为四层. 首先看一下官方关于Android体系结构的图: 1).Linux Kernel:负责硬件的驱动程序.网络 ...
- 【译】Android系统简介
简介 本文主要介绍Android的基础知识和体系结构,本文主题: 简介什么是Android,为什么开发者需要关注Android: Android体系结构(如Linux Kernel, Librari ...
- 【转】编译Android系统源码和内核源码
原文网址:http://blog.csdn.net/jiangwei0910410003/article/details/37988637 好长时间没有写blog了,之所以没有写,主要还是工作上的事, ...
随机推荐
- Sping中的IOC四种注解的简单记录
@Component 通用注解,不推荐使用,要用的话,任何类的头上都能使用,但是这个类到底是干嘛用得就不知道了. @Controller 控制层使用,也就是MVC中的C,主要的时候使用的时候注意配合@ ...
- dedecms自定义表单
- this.button1.Click += new System.EventHandler(this.button1_Click);
在这个程序里,这里的修改是为了更好理解,当然这种写法是语法错误的. 下面我们对其进行分析: 首先,观察“=”右面的表达式. new System.EventHandler(this.button1_C ...
- ural2014 Zhenya moves from parents
Zhenya moves from parents Time limit: 1.0 secondMemory limit: 64 MB Zhenya moved from his parents’ h ...
- centos常用配置收集
配置ntp服务器: # vi /etc/ntp.conf driftfile /var/lib/ntp/driftrestrict -4 default kod notrap nomodifyrest ...
- ngx_http_core_module模块提供的变量
ngx_http_core_module模块在处理请求时,会有大量的变量,这些变量可以通过访问日志来记录下来,也可以用于其它nginx模块.在我们对请求做策略如改写等等都会使用到一些变量,顺便对ngx ...
- Ubuntu安装MongoDB和PHP扩展
MongoDB是一个可伸缩的,高性能的开源NoSQL 文档数据库.主要用C++开发完成.面向文档存储,全索引支持,可复制和高可用性,自动分片等特征.其在非关系型数据库中是功能最丰富,最像关系型数据库 ...
- [Lua]Mac系统上安装Lua环境
1.下载 Lua语言的官方网站 http://www.lua.org/ 下载最新版本的Lua环境 2.安装 解压下载包lua-5.3.1.tar.gz 打开终端Terminal 使用cd命令进入该目录 ...
- [Unity Shader] 3D模型的简单属性
每个3D对象是由顶点和面的.这被称为一个网格(Mesh).每个顶点有一个归一化的“normal”的向量,表示连接到该顶点的面的方向.这对于计算光照来说很重要.当计算漫反射和镜面反射的照明,normal ...
- HUST 1605 Gene recombination
简单广搜.4进制对应的10进制数来表示这些状态,总共只有(4^12)种状态. #include<cstdio> #include<cstring> #include<cm ...