android系统和开发指南
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Google Android System and Development Tutorial
Abstract
Android是Google公司所开发的手机用途操作系统架构。Android包含了操作系统、系统中间的转换程序和重要的应用程序。人们透过Android可以有比较好的手机专属系统,并且让用户更方便按照自己的需求扩充自己的手机功能。开发人员也因为Android的独特架构,使得以往要针对不同系统撰写的手机程序变得只要写一次就好,成为真正的可携式程序(Portable Program)。我们在本篇报告中介绍Android的特性、以及如何做到以上的架构。最后我们实践了Android 架构上的程序开发。
Introduction
手机系统长久以来是学术界和产业界焚膏继晷研究的对象。手机属于mobile system的一种,即便和个人计算机一样属于数字装置,但是特性却是大相径庭。最主要的差异是个人计算机通常依靠插座供电;手机大部分的时间是靠电池续航。因此手机系统必须要设法省电,否则做为一个mobile system,不能应付使用者长时间在外的需求是不适当的。此外手机为了携带放便,尽量缩小体积,以至于使用的硬设备有诸多限制,例如:难以扩充硬件、常常被迫使用整合性芯片组、不能选择自己符合自己需求的硬件…。以上两项主要限制使得手机系统被迫和个人计算机发展出不一样的特性。
另外常见的手机系统有Symbian、Windows CE。以往手机系统以封闭式为主,使用者能够决定的设定和服务不多。因为电信公司是发配手机内容与服务的最后服务端,使用者没有选择,只好接受质量良莠不齐,没有量身订做的内容了。简而言之,服务内容被电信公司给垄断。反观Symbian (S60)和Windows CE,以及Android系统是一个开放式的系统,允许用户透过增加程序和套件增加服务和内容。开放式系统是个潮流,能够给使用者最大的福祉,使电信公司无法再垄断手机内容。
Android Features
Android系统是一套手机软件的集合,包含核心操作系统、中间软件(middleware)、以及关键的重要应用程序。架构如下图:
最上端的应用程序部份,Google的SDK提供了一套开发工具和API让程序开发人员撰写。Android的应用程序可以使用Java语言撰写。使用Java语言撰写的原始码被编译程序编译之后转换成Dalvik程序代码,Android的程序就是运行在Dalvik Virtual Machine上。
Dalvik Virtual Machine有下列特色:
1.被设计成尽量使用最少内存资源来执行。
2.使用类似Java Bytecode的中间码(.dex文件),使用叫dx软件可以将Java
code转换成dex檔。如此则方便使用者开发跨平台、携带性强的手机程序,更重要的是能够利用Java跨平台的特性有不被Sun公司局限。
3.使用Register Based的架构,变量皆存在register里,且精简化指令,使得
执行速度更快。
Application指的是Android的核心应用程序,包含打电话、浏览器等等。Application framework包含组件化的开发架构。Android开发架构与函式库有以下的特色:
1.应用程序框架(Application framework)
建立了许多可重复使用的组件,将应用程序组件化,使得管理与开发更具效率。
2.优化的图形处理(2D graphics library)
具备2D和3D图形处理函式库,其中3D使用OpenGL ES 1.0版本。
3.SQLite
将数据储存变成数据库储存的结构化数据,使得数据的存取更具效率。
4.媒体支持
支援MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF。
5.联机支持
支持GSM, Bluetooth, Wi-Fi, EDGE, 3G等多种通讯模式。
6.硬件支持
支持相机、GPS定位系统、罗盘、加速度仪等设备。
7.丰富的开发工具
提供装置仿真器、除错工具、内存和效能查看器、还有Eclipse IDE的
plug-in。
其中Android的应用程序开发架构中包含以下的Components:
1.View System
用来建立程序的外观,包含了list、buttons、以及嵌入式的网页浏览器。
2.Content Providers
使得程序之间共享、存取自己的数据。
3.Resource Manager
提供非程序资源数据的存取。
4.Notification Manager
允许各个程序能够显示自己的状态。
5.Activity Manager
管理程序的生命周期。
函式库包含下列:
1.System C library
BSD为基础的标准C函式库。
2.Media Libraries
支援MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF, PNG。
3.LibWebCore
提供Android的网页浏览器和嵌入浏览器一个有效的浏览引擎。
4.3D libraries
强大的3D图形处理函式库
5.SQLite
有效且运算极快的数据库管理函式库。
Developing
在Android的工具组中有Android Development Tools (ADT)可以外挂到Eclipse软件上。Eclipse是一个很好的整合型开发环境(IDE),在Eclipse上整合了Android的开发,成功的使Android程序设计师的工作便容易了。
现有的Android装置有T-Mobile G1和Android Dev Phone1。用户可以在计算机用SDK将程序写好了以后写入G1等装置使用。
除错功能是一个整合开发环境中最重要的一个环节。如果有一套好的除错模式,不仅找bug会变得容易许多,而且能够防微杜渐,事先发现潜在的漏洞,建立一个robust system。Android SDK中包含相当有帮助功能。其中除错功能包含了:
1.DDMS:可以在程序代码中放置断点。
2.DTDS (Debug and Test Device Setting):在计算机端仿真的时候可以显示
手机端可能的使用状态,如CPU使用率和frame rate等等。
3.DDMS (Dalvik Debug Monitor Service):用户可以透过DDMS管理实体
装置或是仿真器中的process。
4.ADB (Android Debug Bridge):用户可以轻松的透过命令行存取应用程
序的档案。
Publishing
程序的发布有以下的步骤:
1.签署
2.验证
3.填写checklist
4.发布到Android Market
此外也可以发布在自己的部落格上或是社群网站上都是一个选择。Tutorials and Sample Code
Android程序依照以下的生命周期运行: