您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于android的手机系统助手软件的实现——文献综述
基于Android的手机系统助手软件的实现1.引言随着手机的普及以及手机应用的深入人心,近几年“智能手机”成为了人们关注的话题。在现今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统。Android凭借其开放性和良好的人机界面,受到广大手机生产商的重视。Android是基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。[1]从Android的从业角度分析,Android的开发概括为两类:一是系统开发,包括低层linux内核的裁剪和扩展,硬件驱动的开发和系统移植等,从业人员主要工作在硬件厂商的公司里:而是应用开发,主要包括游戏开发、Android互联网客户端开发和工具软件开发等。随着用户群体的不断壮大,Android系统有望成为手机操作系统的“Windows”所以Android应用开发应用需求将非常大。[2]2.研究背景2.1Android的前世今生Android平台是开放手机联盟为创造一代更好的移动电话而合作开发的产品。该联盟由谷歌领导,成员包括移动运营商,手机设备制造商,元件制造商,软件解决方案和平台供应商以及销售商。从软件开发的角度,机器人立足于开源世界。市场上第一款基于Android系统的手机G1由HTC制造并供应给T-Mobile用于销售。然而,该设备从放出风声到真正发布,用了大概一年的时间,因为发布的sdk补丁累计了一年才使唯一的软件开发工具变得可用。随着G1发布日期的临近,Android团队发布了SDK1.0,为新的平台而设计的应用也开始浮出水面。为了鼓励创新,谷歌赞助了两轮“Android开发者挑战大赛”,并提供了数百万美元的奖励。在G1发布后的几个月,谷歌发布了Android市场,它允许用户直接在自己的手机上浏览和下载应用程序。大约过了18个月,一个新的移动平基于Android的手机系统助手软件的实现1台进入了公众的视野。[3]2.2Android简介Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟OpenHandsetAlliance开发。它采用了软件堆层softwarestack,又名以软件叠层的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的NexusOne。[4]2.3Android开发工具Android的上层应用程序是用Java语言开发的,同时需要基于Dalvik虚拟机,所以Google公司推荐使用主流的Java继承开发环境Eclipse。有了Eclipse还不够,因为使用Java语言进行开发,应该有由SUN公司提供的JavaSDK,其中包含了JRE:JavaRuntimeEnvironment。另外,Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的AndroidSDK。[5]2.4Android应用程序特点Android系统是一个强大的智能机系统,与之相适应的硬件也一般具备相对较高的性能。总结起来,Android系统上的应用程序具有以下一些特点:1.功能强大。Android平台的设备一般都具备较强的运算能力、存储空间、网络功能以及各种各样的传感器。2.可复用性强。Android的应用程序由许多Activity组成,不同的Activity在程序中实现不同的功能模块。而最令人赞叹的就是,得益于Android的良好设计,不同应用程序之间的Activity可以实现共享(可以通过安全选项进行配置)。这就实现了良好的复用性。[6]3.开放程度高。“开放”是Android的设计宗旨之一,开发人员可以自己编写程序替代系统中原有的程序,甚至连拨号、短信、主屏幕这样的核心功能都可以由第三方开发人员的程序替代。基于Android的手机系统助手软件的实现23.Android上的应用程序开发概要3.1Android应用程序的组成部分Android有丰富的功能,是一个分层的环境,构建在Linux内核的基础上,包括丰富的功能。Android应用程序是用Java编程语言编写的,它们在Dalvik虚拟机中运行。每个Android应用程序都占用DalvikVM的一个实例,这个实例驻留在一个由Linux内核管理的进程中。Android应用程序是由Android体系结构定义的四个基本组成部分类型构成,:1.Activities活动这些都是在台式机媲美独立的系统,如办公应用软件。Activities是实时可执行代码,当用户或操作系统和运行需要时即被实体化。他们可以通过其他Activities或通过查询或意图服务与用户交互和请求数据。Android的大多数可执行代码将执行写在一个活动的环境中。活动通常对应显示屏:每个活动显示一个屏幕给用户。当它运行的不积极,活动可以结束运行的系统来节省内存。2.Services服务与桌面和服务器操作系统守护进程相似。服务组件在后台运行,直到手机关机。他们一般不公开用户界面。MP3播放器是一个服务的典型例子,需要一直处理等待处理的的文件,甚至当用户已经在使用其他应用程序。即使没有一个用户界面仍然存在,应用程序可能需要实现服务来执行。3.BroadcastandIntentReceivers广播接收机和意图这些服务请求的响应另一个应用程序。一个广播接收机响应一个事件。这些广播可能来自Android本身(如电池低),或从任何在系统上运行的程序。一项活动或服务提供了访问其功能的接口是通过执行一个意图接收器,一段响应数据或其他活动的服务要求的可执行代码。广播接收器会自动地启动应用程序来响应某个到来的Intent,这个特点使它们成为了事件驱动的程序的最佳选择。意图,一个简单的消息传递框架。使用Intent,可以在系统范围内向目标活动或者服务广播消息,以说明希望执行某个动作的意图。之后系统就会确定那些最适合执行动作的目标。4.Contentproviders内容提供程序一个可共享的数据仓库。每一个内容提供器都开放一个唯一公共URI(由基于Android的手机系统助手软件的实现3URI封装)。。例如,当应用程序发出一个通讯录数据的查询,它涉及到一个URI查询的形式:内容://联系方式/人该操作系统查询内容提供者给定的URI,并发送请求到相应的应用程序(如果尚未运行,启动应用程序)。如果有多个内容提供商请求的URI登记,系统会询问用户哪一个是想要的。应用程序不必使用所有的Android组件,但是一个好的应用程序会使用所提供的机制,而不是硬编码重塑功能或引用其他应用程序。URI和意向一起让Android提供了非常灵活的用户环境。应用程序可以很容易地添加,删除和取代意图而URI使其联系在一起工作。[7]Android应用程序是连同一个AndroidManifest.xml文件一起部署到设备的。AndroidManifest.xml包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序需要访问网络如为了下载一个文件,那么manifest文件中必须显式地列出该许可。这种显式声明有助于减少恶意应用程序损害设备的可能性。3.2存储和返回数据Android提供了很多种类的存储机制以及网络服务。在Andriod应用程序中有几种不同读写数据的方法。可以根据需求选择。在Android中,所有的应用程序资源对自身而言是私有的,但是并不是说,其它程序就无法与之共享数据了。在Android中,可以通过提供一个标准的方法来使得其他的应用程序访问这些私有的数据,那就是ContentProvider。除了这一种方法,还有其它的方法也可以使用,例如Prefrences、Files、Databases、Network等。完全可以根据开发人员的需求来作选择。[8]3.3安全模式在Android中,为了使用应用程序更加地安全,Android增加了安全模型来操作资源和数据的特征,这是通过权限设置来决定的。Android是一个多进程系统,在此之中,每个应用程序都在自己的进程中运行。大多数的应用程序之间的安全模式设置和标准的Linux系统相一致,例如给各个应用程序分配不同的UID。[9]基于Android的手机系统助手软件的实现43.4Andriod中的安全架构Android安全结构的一个中心设计思想是,在默认情况下,没有任何应用程序可以对其他的应用程序、其他的用户进行操作。一个应用程序的进程就是一个安全的沙盒,它不会打扰其他的应用程序。它所要请求获得的权限在安装时用户就可以知晓,并且安装之后程序也无法改变自己的权限。[10]3.5AndroidBinder总结AndroidIPC系统的整个架构如上图所示,分为4大块:1.Binder驱动它是IPC系统的核心。它在Serivce提供者与Service使用者之间传递数据2.Service提供者(ServiceProvider)它提供某种服务。它解析从Binder驱动发过来的RPC数据并且执行真正的动作3.Service管理器(ServiceManager)它是一个特殊的Service提供者。它为其它Service提供者提供Service管理服务。4.Service使用者(ServiceUser)它远程调用Service提供者。它生成RPC数据并且发送到Binder驱动。[11]3.6资源和i18n(国际化)Android中也提供了应用程序资源管理系统,这些资源通常包括图像,字符串,以及XML布局文件等等。这些资源在编译期间会以不同形式被编译到应用程序中。例如XML文件会被编译成一个二进制代码,String被压入一个更加有基于Android的手机系统助手软件的实现5效率的存储表格中。通过对不同语种的String资源分别管理,就可以很方便地实现i18n。[12]4.总结Android市场尚在培育和发展中,在政策、厂商、消费者、开发者的共同努力下,围绕着Android的生态圈将逐渐成型并进入良性循环阶段,对它关注得越早,就越有可能在将来抢得先机。基于Android的手机系统助手软件的实现6参考文献[1]郭志宏.Android应用开发详解[M].电子工业出版社.2010.[2]杨丰盛.Android应用开发揭秘[M].机械工业出版社.2010.[3]FrankAbleson.IntroductiontoAndroiddevelopment[J].developerWorks,2009,10(7).[4]余志龙,陈昱勋,郑名杰,陈小凤,郭秩均.GoogleAndroidSDK开发范例大全[M].人民邮电出版社.2009.[5]李宁.Android/OPhone开发完全讲义[M].中国水利水电出版社.2010.[6]EdBurnett,Hello,Android:IntroducingGoogle’sMobileDevelopmentPlatform[J].PRAGMATICBOOKSHELF,2010.7:10-11.[7]RickRogers,JohnLombardo.AndroidApplicationDevelopment[M].O’ReillyMedia,Inc.2009.[8]胡伟.Android系统架构及其驱动研究[J].广州广播电视大学学报.2010,10(4).[9]SteveGuo.Binder[OL].
本文标题:基于android的手机系统助手软件的实现——文献综述
链接地址:https://www.777doc.com/doc-3167761 .html