采得百花成蜜后,为谁辛苦为谁甜。这篇文章主要讲述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引擎
【Android特性与系统架构】 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适配器Adapter
- makefile 与android.mk中加信息打印
- HDU 1452 Happy 2004(唯一分解定理)
- eclipse和maven创建WebApp项目
- nrf51822中app_button 的应用
- Ng第十八课(应用实例:图片文字识别(Application Example: Photo OCR))
- android android:duplicateParentState="true" "false"
- Android消息机制学习笔记
- android假设给TextView或EditText的email链接加下划线,并在点击在email连接上能够弹框显示