地体现Android(安卓)手机的国际化和数据库的处理功能,因此设计中以《圣经》作为题材。
2开发环境2.1Android简介
随着手机应用的迅速普及,各种手机系统不断涌现,其中Android系统以其操作系统
免费、
源代码开源、控件易用以及强大的
网络支持等特点,迅速占有了很大的市场,并不断扩大。目前,Android手机应用程序开发已成为手机软件设计的一个重要部分[4]。2010年末数据显示,正式推出仅两年的Android操作系统已迅速赶超流行多年的手机系统,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。Android由Google公司于2007年11月15日公布,是基于Linux内核的操作系统,早期由Google开发,后由开放手持设备联盟(OpenHandsetAlliance)开发。Android采用软件堆层(softwarestack,又称软件叠层)架构,主要分为三个层面:底层、中间层和应用层。其中,底层Linux内核只提供基本功能,应用层的软件开发则由各公司编写,主要以Java为开发语言。
2.1.1系统架构
(1)应用程序Android以Java为编程语言,从接口到功能,都灵活多变。一个Activityclass(活动类)负责创建Window(视窗),一个运行中的Activity就是一个Foreground(前景)模式,背景运行的程序则称为Service。Foreground和Service之间通过ServiceConnection
和AIDL(AndroidInterfaceDescriptionLanguageAndroid接口描述语言)连结,达到多个程序同时运行的效果。如果运行中的Activity全部画面都被其他Activity取代,该Activity便被停止,甚至被系统清除。程序人员可以通过View类与XML(ExtensibleMarkupLanguage,可扩展标记语言)将UI(UserInterface,用户界面)放置在视窗上[5]。View与event(事件)息息相关,两者之间通过Listener结合在一起,每一个View都可以
注册一个eventlistener。例如:当View要处理用户click(点击)事件时,就要向Android框架注册View.OnClickListener。(2)中介软件中介软件是Android操作系统与应用程序的桥梁,分为两层:函数层(Library)和虚拟机(VirtualMachine)。Android的多媒体数据库采用SQLite3数据库系统,分为共用数据库和私用数据库,用户可通过ContentResolver类取得共用数据库。(3)硬件抽象层Android的HAL(HardwareAbstractLayer,硬件抽象层)能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Androidframework与Linuxkernel隔开,让Android不至过度依赖Linuxkernel,以达成kernelindependent(内核独立)的概念。(4)编程语言Android运行于Linuxkernel之上,目前其Linuxkernel控制包括安全(Security)、存储器管理(MemoryManagement)、程序管理(ProcessManagement)、网络堆栈(NetworkStack)和驱动程序模型(DriverModel)以Java为主要开发语言[6-8]。等,
2.1.2四大组件
Android四大组件是支持Android应用程序显示、跳转、服务和事件的重要工具,它们分别是:Activity(活动)、Intent(意图)、Service(服务)、ContentProvider(内容提供者)[9,10]。
(1)ActivityActivity是一个用户的界面基类,属于UI。一个Activity就是一个类,使用时需继承Activity基类,并与其它控件结合使用。(2)IntentIntent在程序间或Activity间传输数据,可指明传递数据的类型、方向等。(3)ServiceService是后台服务,为应用程序提供数据支持。(4)ContentproviderContentprovider负责数据存储。
2.2Java语言
Java是一种简单易用的、面向对象的、可移植的语言,是Android的主要开发语言。Java诞生于1991年,SUN公司为一些消费性电子产品设计的一个通用环境,是具有以下特点。(1)平台无关性Java引进虚拟机原理,Java虚拟机是建立在硬件和操作系统之上,可实现不同平台的接口。虚拟机的数据类型与机器无关,它能将字节码翻译成机器代码,可由
计算机直接识别、读取。因此Java能运行于不同的平台,使用Java编写的程序能普遍共享。(2)安全性Java舍弃了C和C++的指针操作,程序运行时,内存由操作系统分配,从而避免病毒通过指针侵入系统。同时,Java对程序提供了安全管理器,防止程序被非法访问。(3)面向对象Java将数据封装于类中,使程序更加简洁,且便于维护。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,即可通过上述特性反复利用。(4)分布式Jav