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】
前言 一 个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的 扩展逐渐演变完善的,在这个过程中,开发模式. ...
随机推荐
- jquery选择器用法笔记(第二部分)
今天继续讲讲jquery选择器的更多用法,希望能给大家带来帮助. 9.$("ul li:eq(3)") -- 列表中的第四个元素(index 从 0 开始) :eq() 选择器 ...
- leetcode 二分查找 Search in Rotated Sorted ArrayII
Search in Rotated Sorted Array II Total Accepted: 18500 Total Submissions: 59945My Submissions Follo ...
- magento upsell from cur_category
<?php /** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Academic Free Li ...
- Cognos两种建模工具对于复杂日期维度的处理比较(下)
本文继Cognos两种建模工具对于复杂日期维度的处理比较(上)之后将介绍一下Cognos中建模工具Transform对复杂日期维度的处理. 二:Transform建模对于复杂日期维度的处理 为了书写效 ...
- Android网络缓存的实现思路
在开发群里有多位同学问到了关于Android中网络缓存的问题.事实上不管是Android还是iOS,缓存的大致思路都是同样的,以下就几种情况下的缓存做一个大致的介绍.顺便说一下有些开源的网络请求框架已 ...
- 【Javascript Demo】遮罩层和弹出层简单实现
最近纠结于遮罩层和弹出层的实现,终于搞定了个简单的版本.示例和代码如下,点击按钮可以看到效果: 1.示例: 2.代码: <!DOCTYPE html PUBLIC "-//W3C//D ...
- Cflow使用具体解释
近期使用cflow,依据Cflow提供的帮助对cflow的使用方法做了具体的整理.把经常使用的命令的使用方法贴出来.完整版请见http://download.csdn.net/detail/hanch ...
- JSP实现数据传递(web基础学习笔记三)
get和post的区别: JSP内置对象: 1)out内置对象:out内置对象是在JSP开发过程中使用得最为频繁的对象,然而其使用起来也是最简单的.out对象用于向客户端浏览器输出数 ...
- Android 逆向project 实践篇
Android逆向project 实践篇 上篇给大家介绍的是基础+小Demo实践. 假设没有看过的同学能够进去看看.(逆向project 初篇) 本篇主要给大家介绍怎样反编译后改动源代码, 并打包执行 ...
- java面试第十二天
多线程: 多线程的同步: 多线程并发访问同一个对象(临界资源),如果不对线程进行同步控制,破坏了原子操作(不可再分的操作),则会造成临界资源(两个线程同时访问的资源)的数据不一致. 每一个对象都有一个 ...