进一步推进"随时随地为每个人提供信息"这一企业目标的实现,Google的目标是让移动通信不依赖于设备甚至是平台。
Android一词本意是指机器人,当然现在大家都知道它是Google推出的开源手机操作系统。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它是被一个由 30 多家科技公司和手机公司组成的"开放手机联盟"共同研发的,这将大大降低新型手机设备的研发成本。完全整合的全移动功能性产品成为"开放手机联盟"的最终目标。
Android软件平台主要由五部分构成,它们分别是:关键应用程序、应用程序框架和组件、C/C ++函数库、Java程序运行环境、优化了的Linux内核。
关键应用程序。Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的Android应用程序还有待于广大开发者共同参与开发。
应用程序框架及组件。Android应用程序开发基于框架和组件。Android本身已在其框架中提供了许多组件供应用程序调用,开发者也可在开发应用程序时顺带开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用。
C/C ++函数库。Android应用程序框架之下是一套C/C ++函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括::标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库等[2]。
Java程序运行环境。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。
Linux内核。Android系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层。
Android应用程序以各种组件(API)为基础。API是Android软件平台的重要组成部分,也是开发Android应用的关键所在。Android 在Linux 核心的基础上,提供了各种合用的函数库,和一个完整的应用程式框架。并采用较符合商用限制的Apache 版权。
当前活动程序Activity。作为最常用的应用程序组件,几乎所有Activity都会通过创建U I窗口与用户进行交流。Activity具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop()、onDestory()等方法来实现。要开启新的activity,可以调用startActivity(Intent),或调用startSubActivity(Intent,int),后者通常和onActivityResult(int,int,String,Bundle)联合使用,以从一个activity获取某结果并返回给打开它的activity[3]。
图像显示View。View是最基本的UI构件,它在屏幕中占据一个矩形区域,可用来显示文本、图像等内容,还可完成图像事件处理[4]。常用的View方法有:inflate() (由XML 文件生成View)、onDraw (Canvas)(对View进行填充) 、onMeasure (int,int)(测量View的高度和宽度)、onLayout()(完成View的布局)、onKeyDown(int, KeyEvent)(View中有按键操作时被调用)、onFocusChanged (boolean,int)(当View得到或失去关注时被调用)、setOnClilckListener()(设置View点击事件监听器)。View也包含一些子类,如:TextView(布局文件中的文本显示)、EditText(布局文件中的文本编辑)、Button(按钮)、ListView(显示列表)。
事件Intent。Intent抽象描述了想要执行的某种操作,它与startActivity一起使用可以开启新的activity,与startService一起使用可以开启后台服务。Intent最重要的作用还是加载activity,它是不同activity间的桥梁。Intent也可以被认为是一种概括操作行为的数据结构,它主要包括action (动作)和data(数据)两部分,此外它还具有一些附加属性如category(intent种类)、type (数据类型)等。常用的Intent方法有intent()(构造intent)、addcategory() (添加intent类型)、getAction()(获取intent动作)、getData()(获取intent数据)等。
数据存取与共享机制ContentProvider:ContentProvider为应用程序提供一些访问方法,包括:Query(Uri,String [ ],String,String[ ],String,String,String)(数据信息的查询) ,insert (Uri,Contentvalues) (在Content provider中加新数据),update(Uri, Contentvalues,String,String[ ])(更新Content provide中的数据),Get type (Uri)(获取数据类型)。其中,Uri标明了ContentProvider存储的数据类型,在执行访问方法时都需依据Uri作为路径标识来确定要访问哪个ContentProvider[5]。
后台服务Service。Service是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用Context.StartService()开启一项后台服务,还可以通过Context. bindService()与后台服务通信。
2.1.2 Android系统特点
Android系统具有如下5个特点:
1) 开放性。Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统;
2) 应用程序无界限。Android上的应用程序可以通过标准API(Application Programming Interface,应用程序编程接口)访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用;
3) 应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件;
4) 应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容;
5) 应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引动注意[6]。
每个Android应用程序都存在于它自己的世界之中:默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。每个进程都运行于自己的Java虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。默认情况下,每个应用程序均被赋予一个唯一的Linux用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。
使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个Linux进程,以及同一个虚拟机。
2.1.3 Android手机平台的优势
现在常见的智能手机平台有:Symbian、Windows Mobile、PALM、Blackberry、iOS等。Android平台的优势主要体现在以下方面:
1) 开放性
Android平台是开放性的平台,允许任何移动终端厂商加入到Android 联盟中来。显著的开放性可以使其拥有更多的开发者。随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
2) 挣脱运营商的束缚
在过去很长的一
上一篇:
app开发毕业论文开题报告
下一篇:
试论APP广告在手机中的应用