Android特性与系统架构
一.Android特性
• 应用程序框架支持组件的重用与替换
• Dalvik 虚拟机专为移动设备优化
•
集成的浏览器基于开源的WebKit 引擎
•
优化的图形库包括定制的2D
图形库,基于OpenGL ES 1.0的3D
图形库
• SQLite 用作结构化的数据存储
•
多媒体支持包括常见的音频、视频和静态图像格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
, GIF)
• GSM 电话技术(依赖于硬件)
•
蓝牙Bluetooth, EDGE, 3G,
和WiFi(依赖于硬件)
•
照相机,GPS,指南针,和加速度计(accelerometer)(依赖于硬件)
•
丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse 集成开发环境插件
二.Android的系统架构
1.
应用程序
同Android系统一起发布的核心应用程序,如email
客户端,SMS
短消息程序,日历,地图,浏览器,联系人管理程序等。(JAVA
编写)
2.
应用程序框架
开发者可以用它开发应用,其中包括:
•
丰富而又可扩展的视图(Views):可以用来构建应用程序,
它包括列表(lists),网格(grids),
文本框(text boxes),按钮(
buttons),
甚至可嵌入的web 浏览器。
•
内容提供器(Content Providers):使得应用程序可以访问另一个应用程序的数据(如联系人数据库),
或者共享它们自己的数据
•
资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串,图形,布局文件(
layoutfiles )
•
通知管理器(Notification
Manager):
使得应用程序可以在状态栏中显示自定义的提示信息
•
活动管理器( Activity Manager):用来管理应用程序生命周期并提供常用的导航回退功能
- 类库
一些C/C++核心库,方便开发者进行应用的开发。
•
系统C
库(libc):专门为基于embedded linux的设备定制的
•
媒体库:支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG,
PNG
• SurfaceManager
:对显示子系统的管理,并且为多个应用程序提供了2D和3D 图层的无缝融合
• webkit/LibWebCore
:Web
浏览引擎,支持Android
浏览器和一个可嵌入的web 视图
• SGL:底层的2D图形引擎
• 3D libraries
:
基于OpenGL ES 1.0 APIs
实现的3D引擎
• FreeType
:位图(bitmap)和矢量(vector)字体显示
• SQLite
:轻型关系型数据库引擎
4.
Android 运行时环境
• Android
核心库:提供了JAVA库的大多数功能
• Dalvik
虚拟机:依赖于linux 内核的一些功能,比如线程机制和底层内存管理机制。同时虚拟机是基于寄存器的,Dalvik
采用简练、高效的byte code
格式运行,它能够在低资耗和没有应用相互干扰的情况下并行执行多个应用,每一个Android
应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik
虚拟机实例。Dalvik
虚拟机中可执行文件为.dex文件,该格式文件针对小内存使用做了优化。所有的类都经由JAVA
编译器编译,然后通过SDK中的"dx"
工具转化成.dex 格式由虚拟机执行。
5.
Linux 内核
Linux
内核作为硬件和软件栈之间的抽象层。Android
的核心系统服务:
安全机制、内存管理、进程管理、网络、硬件驱动
Android特性与系统架构的更多相关文章
- 吴裕雄--天生自然Android开发学习:android 背景相关与系统架构分析
1.Android背景与当前的状况 Android系统是由Andy Rubin创建的,后来被Google收购了:最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google ...
- Android群英传》读书笔记 (1) 第一章 Android体系与系统架构 + 第二章 Android开发工具新接触
第一章 Android体系与系统架构 1.Dalvik 和 ARTDalvik好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.ART好比是一辆组装好了的自行车,装好就可以骑了. ...
- Android群英传笔记——第一章:Android体系与系统架构
Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起 ...
- Android之路-------浅淡Android历史、系统架构与开发特色
前言 离上一篇发表的博客差不多有两个星期了吧,相信有些博友差点就对LP失望了,因为上一篇博文中说了,这次不管怎样,LP都会坚持写博客的. 由于工作关系LP才隔了这么久才再次发表博文,这篇博文主要是总结 ...
- 第一章 Android体系与系统架构
1. Dalvik 和 ART(Android Runtime) 在Dalvik中应用好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.在ART中应用好比是一辆组装好了的自行车, ...
- Android四款系统架构工具
开发者若想开发出一款高质量的应用,一款功能强大的开发工具想必是不可或缺的.开发工具简化了应用的开发流程,也能使开发者在应用开发本身投入更多的精力.本文就为大家带来4款实用的Android应用架构工具. ...
- android sensor传感器系统架构初探
http://blog.csdn.net/qianjin0703/article/details/5942579 http://blog.chinaunix.net/uid-28621021-id-3 ...
- android系统架构解析
以上是我在这个课题下的一些参考博客或者网页链接.里面有对于android架构的一些较好的分析理解,接下来是楼主在阅读后自己的一些整理. Android采用层次化系统架构,官方公布的标准架构如下图所示. ...
- 大型网站系统架构演化之路【mark】
前言 一 个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的 扩展逐渐演变完善的,在这个过程中,开发模式. ...
随机推荐
- GridControl 分组排序
方法一:纯代码 this.list.gridControl.ItemsSource = lsItem; this.list.gridControl.GroupBy("GroupTitle&q ...
- Unity3D中的欧拉角的理解
先贴一个图: 游戏物体的属性视图中调整的角度就是欧拉角啦.. 如果细心,就会发现,单独去调整xyz的时候它并不是按照世界坐标系中的xyz轴来实施旋转的,它表示的是旋转的欧拉角. 什么是欧拉角呢?请看这 ...
- 【python】用正则表达式进行文字局部替换
比如有个字符串http://www.55188.com/thread-8306254-2-3.html,需要把8306254后面的2替换成其它数字,其它保持不变,该如何办呢?请看代码: import ...
- Discuz常见小问题-无法登陆UCenter怎么办
打开uc_server/model/admin.php找到第22行的$this->cookie_status = 0;改成$this->cookie_status = isset($_CO ...
- android 时间与String的相互转化
:大体思路 [html] view plaincopy 这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=n ...
- sqlplus的使用
1.连接数据库 sqlplus / as sysdba 2.连接到远程数据库 sqlplus 用户名/密码@服务命名 3.遇到&会当成变量,一般是不需要的,可以关掉 SQL> set d ...
- java 笔试之在线模拟
网站地址: https://www.nowcoder.com
- sql数据库表复制、查看是否锁表
1.不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库..表 当目标表不存在时: select * into 目的数 ...
- load()和get()的区别
区别1:如果数据库中,没有userId的对象.如果通过get方法加载,则返回的是一个null:如果通过load加载,则返回一个代理对象,如果后面代码如果调用user对象的某个属性(比如user.get ...
- spring的applicationContext.xml中的DBCP配置如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy ...