Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2214394
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类:

2010-10-17 23:54:00

   组员:刘宇,赵朝,马思雨,刘晓楠,吕超

  在上周了解完android的简介和操作版本后,我们这星期主要对他的特性与架构做了研究。

Google android平台功能俱全,并且技术先进。以下是他所集合的特性:

1.       应用程序框架 支持组件的重用与替换  

2.       Dalvik虚拟机 专门为移动设备做了优化  

3.       内部集成浏览器 该浏览器基于开源的WebKit 引擎  

4.       优化的图形库 包括2D3D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选)  

5.       #SQLite 用作结构化的数据存储  

6.       多媒体支持 包括常见的音频、视频和静态印象文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)  

7.       GSM电话 (依赖于硬件)  

8.       蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)  

9.       照相机,GPS,指南针,和加速度计 (依赖于硬件)  

10.   丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件

 

同时,我们也进行了架构的分析,了解到了Android系统架构由5部分组成,分别是:Linux KernelAndroid RuntimeLibrariesApplication FrameworkApplications。我们每人分析一个架构,互相配合完成了google android架构的研究。

1.       Linux Kernel(刘宇)

  Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAPService Access Point),专业点可以说是高内聚、低耦合。

2.       Android Runtime(马思雨)

  Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dexdex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。  大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以将 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。  Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。

3.       Libraries(吕超)

  Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。下面列出一些核心库:  系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备  媒体库——基于PacketVideoOpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4 H.264 MP3 AAC AMRJPG PNG  界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层  LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图  SGL——基本的2D图形引擎  3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅  FreeType ——位图和矢量字体渲染  SQLite ——所有应用程序都可以使用的强大而轻量级的关系数据库引擎。

4.       Application Framework(刘晓楠)

  通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器。内容提供者(Content Providers)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据。资源管理器(Resource Manager)——提供访问非代码资源,如本地化字符串、图形和布局文件。通知管理器(Notification Manager)——使所有的应用程序能够在状态栏显示自定义警告。活动管理器(Activity Manager)——管理应用程序生命周期,提供通用的导航回退功能。

5.       Applications(赵朝)

Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!  从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆叠(Software Stack),或称为「软件叠层架构」,叠层主要分成三层:操作系统、中间件、应用程序。

    下周我们准备对google android的编译环境及开发平台安装进行研究。吕超在本次作业中表现出色,在此提出表扬。

阅读(1295) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~