基于android手机平台的吃豆人游戏设计与开发.doc
毕业设计(论文)开题报告(含文献综述、外文翻译)题 目 基于android手机平台的吃豆人游戏设计与开发 姓 名 学 号 二一年 十二 月 二十五 日毕业设计(论文)开 题 报 告(包括选题的意义、可行性分析、研究的内容、研究方法、拟解决的关键问题、预期结果、研究进度计划等)1. 选题的背景和意义1.1 选题的背景目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone以及当下正在逐步兴起的Android。目前为止国内已经有很多Android系统的用户。截止2010年第二季度Android系统的国内市场占有率已经过10%,在西欧以及北美智能手机市场占有率也在20%左右。可见Android系统正在崛起之中。但是对于Android系统的应用和开发在国内仍然属于起步和探索阶段。急需要大量的相关技术和人员的投入。下面首先介绍一下Android系统。Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由(Open Handset Alliance)开发。它采用了软件堆层(Software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux核心工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程式的一部分。在学院和老师的支持和帮助下,我所在的手机开放实验室在2009年底就开始对Android系统进行深入细致的研究。在国内Android相关领域属于较早研究的一批,经过老师和同学一年多的努力,在这个方面也积累了一定的知识和技能。所以希望通过这篇论文的研究,展示我这一年多来学习与实践的成果,希望给本科四年的学习交上一份圆满的答卷。1.2 国内外研究现状1.2.1 国内外手机系统现状目前国外各软硬件厂商已经推出过多款手机操作系统。下面简单介绍一下现主流手机操作系统。 现阶段使用较广泛大家也相对熟悉的手机操作系统是由诺基亚公司主导推出的Symbian 操作系统。Symbian是为手机而设计的操作系统,它是一个实时性,多任务的纯32位嵌入式的操作系统,具有低能耗,内存占用较少等特点。现在流行的Symbian系统有以下四个版本,分别为S40、S60(第二版)、S60(第三版)、S60(第五版)。S60(第五版)为触摸屏手机版本。iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。iOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。系统操作占用大概240MB的存储器空间Windows Mobile 系列操作系统是从微软计算机的Windows操作系统演化而来的。Windows Mobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件配置(如内存、储存卡容量等)上也比采用其它操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。PalmOS属于Palm公司开发,是一种32位的嵌入式操作系统,是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小。现在多用Paml公司生产的手机上。该系统允许用户在其基础上编写和修改相关软件,使支持的应用程序更加丰富多彩。Palm系统与其他手机系统相比在其它方面也还存在一些不足,如Palm操作系统本身不具有录音、MP3播放功能等,但是可以通过加入第三方软件或硬件设备来实现。相对国外手机系统百花齐放的局面,国内手机操作系统则处于刚起步的阶段。目前国内还没有自主研发并商品化的手机操作系统。当然近些年来国内企业和我国政府在这方也投入了大量的人力和物力。同时也取得了一定成果。在2009年8月,由中国移动所主导开发OPhone平台面世。OPhone平台采用开源的Linux作为系统内核,借鉴并兼容Android平台,集成灵活高效的Java应用框架,充分借鉴当下主流手机操作系统所具有的良好用户体验,提供了一套完整的电话解决方案和各类移动数据业务解决方案。1.2.2 国内外手机应用现状随着3G在中国的全面启动,它所带来的巨大机遇和新生力量,大规模的网络建设正不断深入展开。但不可否认的是我国在通信领域中相比许多发达国家仍然存在着不小的差距,就在国人还在为EDGE这种传输速度仅能达到384KB/秒的2.75G过渡技术而欣喜的时候,国外早已开始试行HSDPA这种3.5G技术,传输速度更可达到惊人的数兆每秒,而基于其上所开发的延伸功能更是数不胜数,所以国内外手机应用也存在的较大的差异。但国内外对手机应用的需求方向是大致相似的,主要集中在信息服务,娱乐,学习这些方面。目前国内外手机应用服务方向主要有基于地理位置的信息服务(Location Based Service LBS)它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。例如手机定位,导航服务。近年来十分热门的网络社交服务(Social Networking Services)也已进入到手机客户端领域。例如国内有名的社交网站人人网已经针对Iphone,android,塞班等手机平台推出了手机客户端。国外最大的社交Fackbook也已经传出正在进行针对手机的产品的研发。Twiter,Myspace等国外知名社交类网站都已经推出手机版。国内淘宝网旗下口碑网在今年也已经推出针对多个手机平台的客户端程序。MSN,QQ等即时通信类的应用也已经在各个主流手机平台推出。 手机办公类软件在手机上也正日趋完善,在手机上编辑查看各类文档已经实现,在android平台上的QuickOffice就是这样的软件。在Google Market(一个谷歌针对android系统用户所开发的应用商场)上已经有过万的企业应用办公套件。手机娱乐游戏类应用,该类应用作为传统类手机应用,在各个平台上发展已近相对完善,手机上对各种流媒体的播放也已完美的支持。各类传统PC游戏厂商进入手机领域。1.3 发展趋势随着3G应用的不断开发推广,用户会越来越需要更加个性化、优质化的多媒体数据服务,用户希望能够随时、随地无缝利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。根据观察,在不久的将来,移动手机终端将会在以下若干方面具有新的发展。首先,提供智能提醒服务,手机能够与用户实现密切配合,并监控用户的个性化设置(保持在本地或者云端),当重要时间点或关键事物需要用户注意时,手机会向用户发出“提醒”服务,服务包括日程提醒、交通状况、最佳行车路线、最佳泊位、优惠活动、实时新闻、体育赛事、天气情况、股市行情、好友活动、亲友生日等。其次,提供虚拟现实体验,手机可以借助传感器、周边设备了解到您的身边环境,并根据收集到的信息,智能的为您提供有用的信息,如在网络世界养的宠物,可以借助音频设备表达叫声,借助马达和位置传感器等传递其跳、跃等行为信息;也可以在用户购物时,提供相关的同类产品价格参考,提醒用户附近的那个卖场更物美价廉;根据实际场景,为用户及时提供正在操控的产品的使用方法提醒。接着,发挥物联网的优势,借助无处不在的传感器,可以感知并分享到周围世界的海量信息,这些信息将在“云端”得到整合,帮助用户及时、准确的获得气息信息、交通路况。另外借助物联网,用户间可以方便、快速的分享资源,协助和交互。如进行端到端的多人游戏、照片分享、书籍分享、音乐分享等。然后,作为经济工具,在交通或者信息不发达的情况下,帮助用户找到最佳的市场,获得有价值的帮助信息,帮助用户从事的经济活动的收益率。最后,更加智能、安全的设备,随着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策那些内容可以浏览、下载或分享。在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付、在线贸易等。 2研究的基本内容根据近一年来的学习Android平台游戏动画的经验,结合现在已有技术,基于游戏动画设计的基本原理。设计一个基于Android平台的吃豆人的游戏应用。主要包含游戏的关卡切换,游戏动画的实现,基于图形的碰撞检测,游戏数据在手机系统和网络上存储和人工智能的实现。2.1 基本框架首先基于Android平台特性,把本应用主要划分为五大模块分别为:程序控制界面、数据持久化模块,网络数据传输模块,游戏逻辑模块,游戏音效模块。程序体系结构如下图所示:图2.1 吃豆人程序体系结构图本程序主要通过程序控制界面和用户进行交互, 用户通过该界面上的相应选项进行游戏,控制怪物进行游戏,提交游戏积分,存储游戏积分,播放游戏音乐等各项功能。程序控制界面同时也负责各模块间数据的传输。游戏逻辑模块主要功能是负责游戏画面的绘制,游戏中敌对怪物人工智能的实现,以及用户输入的控制的响应(如键盘,导航键和屏幕输入)。下图是游戏逻辑块的体系结构,游戏逻辑模块主要分为人工智能、游戏绘图引擎和人机交互控制。图2.2吃豆人程序体系结构图数据持久化模块主要负责游戏中所产生的内存数据,转化成可存储的XML数据。该模块包含XML数据结构定义、XML生成和XML数据解析。具体结构如下图所示:图2.3吃豆人程序体数据持久化图网络数据传输模块主要功能为提交用户游戏评分至网络服务器中。游戏音效模块提供游戏音乐的播放和关闭的功能,其向主控制界面暴露开启和关闭音乐的接口。2.2 研究的重点和难点重点(1)基于Android游戏动画的实现(2)游戏地图的数据结构的生成。(3)游戏动画中的碰撞检测问题。(4)Android系统网络通信协议以及数据交互方法。(5)Android系统数据存储方式。(6)人机交互界面的友好性。难点 (1)多线程程序编写的安全性问题。(2)Android 系统的Dalvik虚拟机垃圾回收问题的处理。(3)基本Android吃豆人应用的人工智能算法的实现。(4)游戏中多线程通信的问题。2.3 拟解决的关键问题关于android游戏动画的实现上,实现一个相对简单高效的游戏引擎,或者从其他手机平台移植相对较为成熟的游戏动画引擎。了解Android 系统的Dalvik虚拟机工作机制,解决由于虚拟机系统在垃圾回收时所造成的占用系统资源较大的问题。解决游戏人工智能的解决方案,查找A*,遗传算法等算法在本应用中实现的可能性。3研究的方法及措施利用网络查阅国内外相关资料,利用数据库资源浏览大量的期刊与文献,进行分析与研究。深入国内外android系统开发者社区,与一线开发者进行交流,获取更多信息与技术。 应用拟采用Java实现,模块化结构,独立开发各个功能模块,尽量降低各模块之间的耦合,在各个功能模块实现的基础上构建灵活方便的UI界面。 4预期研究成果完成毕业论文和毕业设计以及毕业答辩。开发游戏能发布到国内外公共android应用平台上,例如移动的MM市场和谷歌的电子市场。为本应用申请软件著作权。5研究工作进度计划2010年第7学期 第6-9周 查阅文献和外文翻译 第10-12周 撰写文献综述第12-15周 撰写开题报告,完成开题报告答辩第15-19周 程序设计与开发2011年第8学期 第1-7周 程序设计与开发第9-10周 撰写毕业论文第11周 修改论文第12周 论文答辩毕业设计(论文)文 献 综 述(包括国内外现状、研究方向、进展情况、存在问题、参考依据等)Android手机系统及应用研究现状1. 国内外研究现状目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone以及当下正在逐步兴起的Android。目前为止国内已经有很多Android系统的用户。截止2010年第二季度Android系统的国内市场占有率已经过10%,在西欧以及北美智能手机市场占有率也在20%左右。可见Android系统正在崛起之中。但是对于Android系统的应用和开发在国内属于起步和探索阶段。现阶段虽然已经有较多人关注,但任然急需要大量的相关技术和人员的投入。 1.1 国内外手机系统现状目前国外各软硬件厂商已经推出过多款手机操作系统。下面简单介绍一下现主流手机操作系统。 现阶段使用较广泛大家也相对熟悉的手机操作系统是由诺基亚公司主导推出的Symbian 操作系统。Symbian是为手机而设计的操作系统,它是一个实时性,多任务的纯32位嵌入式的操作系统,具有低能耗,内存占用较少等特点。现在流行的Symbian系统有以下四个版本,分别为S40、S60(第二版)、S60(第三版)、S60(第五版)。S60(第五版)为触摸屏手机版本。Android系统是Google于2007年11月5日宣布的推出的基于Linux平台的开源手机操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。不存在任何以往阻碍移动产业创新的专有权障碍。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。iOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。系统操作占用大概240MB的存储器空间Windows Mobile 系列操作系统是从微软计算机的Windows操作系统演化而来的。Windows Mobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件配置(如内存、储存卡容量等)上也比采用其它操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。PalmOS属于Palm公司开发,是一种32位的嵌入式操作系统,是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小。现在多用Paml公司生产的手机上。该系统允许用户在其基础上编写和修改相关软件,使支持的应用程序更加丰富多彩。Palm系统与其他手机系统相比在其它方面也还存在一些不足,如Palm操作系统本身不具有录音、MP3播放功能等,但是可以通过加入第三方软件或硬件设备来实现。相对国外手机系统百花齐放的局面,国内手机操作系统则处于刚起步的阶段。目前国内还没有自主研发并商品化的手机操作系统。当然近些年来国内企业和我国政府在这方也投入了大量的人力和物力。同时也取得了一定成果。在2009年8月,由中国移动所主导开发OPhone平台面世。OPhone平台采用开源的Linux作为系统内核,借鉴并兼容Android平台,集成灵活高效的Java应用框架,充分借鉴当下主流手机操作系统所具有的良好用户体验,提供了一套完整的电话解决方案和各类移动数据业务解决方案。1.2 国内外手机应用现状随着3G在中国的全面启动,它所带来的巨大机遇和新生力量,大规模的网络建设正不断深入展开。但不可否认的是我国在通信领域中相比许多发达国家仍然存在着不小的差距,就在国人还在为EDGE这种传输速度仅能达到384KB/秒的2.75G过渡技术而欣喜的时候,国外早已开始试行HSDPA这种3.5G技术,传输速度更可达到惊人的数兆每秒,而基于其上所开发的延伸功能更是数不胜数,所以国内外手机应用也存在的较大的差异。但国内外对手机应用的需求方向是大致相似的,主要集中在信息服务,娱乐,学习这些方面。目前国内外手机应用服务方向主要有基于地理位置的信息服务(Location Based Service LBS)它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。例如手机定位,导航服务。近年来十分热门的网络社交服务(Social Networking Services)也已进入到手机客户端领域。例如国内有名的社交网站人人网已经针对Iphone,android,塞班等手机平台推出了手机客户端。国外最大的社交Fackbook也已经传出正在进行针对手机的产品的研发。Twiter,Myspace等国外知名社交类网站都已经推出手机版。国内淘宝网旗下口碑网在今年也已经推出针对多个手机平台的客户端程序。MSN,QQ等即时通信类的应用也已经在各个主流手机平台推出。 手机办公类软件在手机上也正日趋完善,在手机上编辑查看各类文档已经实现,在android平台上的QuickOffice就是这样的软件。在Google Market(一个谷歌针对android系统用户所开发的应用商场)上已经有过万的企业应用办公套件。手机娱乐游戏类应用,该类应用作为传统类手机应用,在各个平台上发展已近相对完善,手机上对各种流媒体的播放也已完美的支持。各类传统PC游戏厂商进入手机领域。2研究方向2.1 Android系统架构研究Android平台是一组面向移动设备的软件包,它包含了一个操作系统、中间件和关键应用程序。Android是一组面向移动设备的软件包(目前不仅限于移动手机领域,Android也已经进入其他嵌入式领域,如汽车中控台,MP3/MP4等),包含了一个操作系统,中间件和关键应用程序。Android SDK 的预览版提供了必需的开发工具和应用程序接口,基于这些,我们就可以使用Java编程语言在Android平台上开发应用程序了。Android系统架构基本分为应用(Applications),应用框架(Application Frameworks),库函数(Libraries),运行时环境(Android Runtime),Linux 内核(Linux Kernel)。下方图表显示了Android操作系统的主要组件。图1.1 Android系统架构图1.应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2.应用程序框架 开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。 3.系统运行库 Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。4.Android运行时 每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的“dx” 工具转化成“.dex”格式由虚拟机执行。 Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。 5.Linux 内核 Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。2.2 Android应用开发研究Android系统开发采用JAVA语言,使用由Google Android SDK和Eclipse IED进行应用程序的开发。在Android开发中Eclipse IDE 和用于 Eclipse 的 Android Developer Tools 插件是至关重要的开发工具。Android 应用程序是用 Java 语言编写的,但是是在 Dalvik VM(非 Java 虚拟机)中编译和执行的。在 Eclipse 中用 Java 语言编程非常简单;Eclipse 提供一个丰富的 Java 环境,包括上下文敏感帮助和代码提示。Java 代码通过编译后,Android Developer Tools 可确保适当地将它打包,包括 AndroidManifest.xml 文件。在Android SDK 附带 Android Emulator,是一个运行在PC端的手机模拟器,开发者可以使用这个模拟器来运行自己编写的应用程序。 3进展情况如今android系统已经不单在手机上,它也开始进入其他嵌入式领域。2009年11月份由我国某企业研发的首款基于Android的系统的车载系统面世,现在已经安装在汽车上。现在我们也可以买到很多基于Android系统的MP3,MP4产品。近日TCL也推出国内首款Android系统的电视。相信在不久的未来我们也将看到更多领域有Android系统的身影。单击此处添加论文正文错误!未找到引用源。4 存在问题 由于Android系统的开源性,Android平台已经难以阻挡的走上了版本界面分化的道路,尤其是2009年到2010年,在一年多的时间里。首先从Android平台本身的进化来看,短短的一年多时间,已经经历了6次重要的版本更新,这样频繁的更新版本,无论是用户、OEM商、开发者或者终端销售者,都必须付出更多的成本,相比之下,苹果iPhone OS就显得要稳定许多。对于开发Android而言版本的分裂是一个难以解决的问题,由于低版本不能在高版本中正确的运行,所以在编写正确程序在其他的版本的机器上就不能正确的运行,而且这一个问题也难以解决。正如HTML在不同浏览器中不能被正确解析,Android系统也正面临着相似的困境。现在我们所采取的方法是在编程时,在不影响应用功能的情况下,应把系统版本降低到1.5左右。以求让更多的用户能完整的使用到应用程序。参考文献(含开题报告和文献综述) 1GONG Lei,ZHOU Cong.Development and Research of Mobile Termination Application Based on AndroidJ. Computer And Modernization. 2008.82Shane ConderAndroid Wireless Application DevelopmentM. Addison-Wesley.20103Enck,W., Ongtang,M.,McDaniel,P. Understanding Android SecurityJ. Security & Privacy, IEEE.2009,7(1),P50-57 4Sandeep Kumar. Location Based Services using AndroidC. Internet Multimedia Services Architecture and Applications (IMSAA), 2009 IEEE International Conference. P1-55刘昌平,范明钰. Android手机的轻量级访问控制J.计算机应用研究,2010,76Enck,W., Ongtang,M.,McDaniel,P. Understanding Android SecurityJ. Security & Privacy, IEEE.2009,7(1),P50-577 杨丰盛Android应用开发揭秘M. 北京:机械工业出版社, 20108 余志龙,陈昱勋,郑名杰Android SDK开发范例大全M. 北京:人民邮电出版社, 20109 张运芳Android 创赢路线与产品开发实战M. 北京:电子工业出版社, 201010 罗伟Android平台的即时通讯系统的研究与实现D硕士学位论文. 湖南师范大学,200811 Frank AblesonIntroduction to Android developmentEB/OL12 胡伟 Android系统架构及其驱动研究J 广州广播电视大学学报,2008.813 李苑基于Android移动平台的警务查询系统D硕士学位论文. 南昌大学,200914 郑建,贺超Android和Chrome的发展与未来J 移动通信 ,2010.315 张鹏中国企业为什么青睐androidJ 通信世界 2010.3毕业设计(论文)译文及原稿译文题目 深入理解安致系统的安全性 原稿题目 Understanding Android Security 原稿出处 Security & Privacy, IEEE.2009,7 深入理解安致系统的安全性 单击此处添加译文正文错误!未找到引用源。下一代开放操作系统的主流将不会在桌面上,但是将会出现在我们每天携带的手机上。这些开放性的环境将会带领这些新的应用可能集成这些已经存在的在线服务,当然随着日以具增的数据与服务在手机上的支持,手机上的安全缺陷也越发明显。下一代操作系统本质在于是否提供一个完整综合的安全平台。由开放手机联盟(open Handset Alliance 谷歌领导)所开发的android 系统是一个被广泛看好的一个手机开源系统,该系统提供一个基本的操作系统,一个中间件应用层,一个java开发工具和一个系统应用收集器(collection of system applications )。尽管android SDK自2007年就发布了,但是第一部android 手机却在2008年10月才诞生。自从这时起谷歌开起了自己的时代,T-Mobile的G1的制造商台湾 HTC估算G1的发货量在2008年底已经超过100万部。据业内人士预期该G1手机的销量将会在2009年继续保持。不久的将来其他许多手机供应商要计划支持这个系统。一个围绕android庞大的开发者社区已经建立,同时很多新的产品和应用已经可以在android上使用。一个Android的主要卖点是它使开发人员无缝把在线服务扩展到手机。这方面最明显的例子是谷歌的紧密集成Gmail,日历和联系人Web应用程序通过该系统。用户只需提供一个android用户名和密码,其手机自动同步与谷歌的服务。其他厂商正在迅速适应自己的现有的即时通讯,社交网络和游戏服务。Android和许多企业寻找新途径来整合他们的自己已有的业务到android上。传统的台式机和服务器的操作系统一直在努力进行安全功能的集成。这些个人和商业应用在单一平台的很出色,然而这一块业务一个手机平台上像android上不是很有用。它给了许多研究人员希望。Android没有停在为其他平台体用应用支持:应用的执行依赖于顶层JAVA中间件,这个中间件运行在嵌入式Linux 内核之上。所以开发人员要把他们的应用部署到Android必须使用其自定义的用户界面环境。此外,android系统应用限制各应用相互调用API协作,并且对方为自己的用户应用进行身份验证。尽管这些应用有一定的安全特性,我们一些有经验的开发人员开发android应用人士透露,设计安全应用程序并不总是直线前进的。Android使用一个简单的许可标签分配模式限制访问的资源,但其他应用程序的原因必要性和便利,其设计师们增加了困惑对这个系统。本文试图对Android的安全的复杂性进行讲解,并注意一些可能的发展缺陷以及应用程序的安全。我们通过尝试得出一些经验教训,希望对未来的安全有用。Android Application Android应用程序框架对开发者来说是一个强制架构。它没有一个main()函数功能或单一入口点执行,相反,开发人员必须在设计方面的应用组件。我们开发的应用对android的sdk的帮助的APIExample Application。 我们开发了一个描述如何创建android的应用。有兴趣的读者可以去我们的站点下载让我们考虑一个基于位置的社交网络应用,其中手机用户可以通过本应用发现他们的朋友们位置。我们进行功能拆分,分成两个应用程序:一个用于跟踪查看朋友和常看他们。如图1所示,FriendTracker应用包括跟踪的组件specifc朋友的位置(例如,通过一个Web服务),储存地理坐标,并分享这些合作统筹与其他应用程序。然后用户使用友情查看器应用程序来检索地理坐标和储存在地图上查看朋友。这两个应用程序包含的多个组件包括展示自己任务,他们组件是由他们组件类型所决定的。 。一个Android 开发者选择从根据不同的组件类型组件的目的决定 (如与一个用户或存储数据接口)。图1。例如Android应用程序。FriendTracker和FriendViewer应用由多个不同类型的组件,每个提供一个不同的组功能。Activity提供一个用户界面,Service执行后台处理,Content提供存储,Broadcast receiver接收机其他应用程序的信息。 Component Types android系通定义了4种组件类型。 Activity 组件定义应用程序的用户界面。通常,应用程序开发者定义每一个活动“画面。”Activity可以自己开始,也可能通过传递和返回值。在一时间只有一个键盘的系统Activity可以进行处理,在这个时候所有其他的Activity都会被暂停。Service组件执行后台处理。当一个活动需要进行一些操作,在用户界面消失以后(如下载一个文件或播放音乐),它通常采取此种动作特殊设计的服务。开发人员还可以在系统启动使用特殊的守护进程,Service通常定义一个远程过程调用(RPC),其他系统组件可以用来传送接口命令和检索数据,以及注册一个回调函数。Content组件存储和共享数据 用关系数据库接口。每个Content供应者都有一个关联的“权限”来形容它的内容包含。其他组件使用时作为一个handle执行SQL查询(如的SELECT,INSERT或DELETE内容。虽然Content供应者通常存储把数值放在数据库记录中,数据检索是实现特殊的例子,文件也同时通过内容提供商共享接口。Broadcast receiver该组件作为为从邮件信箱发送信息给他应用程序。通常,广播消息的应用程序代码隐含的目的地。因此,广播接收器订阅这些目的地接收发送给它的消息。应用程序代码也可以解决明确广播接收机包括命名空间分配。图1显示了FriendTracker和FriendViewer应用所包含的不同的组件类型。开发者组件使用一个主要定义文件(也用于定义权限,稍后介绍)。上有一个应用程序的组件的数量没有限制定义每种类型,但作为习惯,一组件应具有相同的名称该应用程序。通常情况下,这是作为在FriendViewer activity中进行注册。这一动作通常指示主activity作为该系统应用程序启动器用于启动用户界面;然而,如果需要启动特定的activity,开发者需要者在选择配置manifest 信息来实现这一个功能。在在FriendTracker应用,例如,FriendTrackerControl活动被标记为主用户界面的启动点。在这种情况下,我们保留名称“FriendTracker”为服务执行的核心组成部分的应用程序逻辑。在FriendTracker应用包含四种类型的组件。在FriendTracker服务搜寻调查外部服务并发现好友的位置。在我们的示例代码中,位置是我们随机生成的,但直接通过网络连接组件接口的服务。该FriendProvider Content 提供保持最新的朋友地理坐标,FriendTrackerControl活动用于启动和用户界面停止跟踪好友功能,该系统一旦启动 BootReceiver通知从广播系统启动。该FriendViewer应用主要是显示有关好友的位置的信息。每个启动的FriendViewer将会列出了所有的朋友和他们的地理坐标,FriendMap显示他们在地图上的位置。FriendReceiver将会等待接收附近的手机发送的消息这个消息来一个所指定的朋友。尽管我们可以在这些组件内放置在FriendTracker应用,但是我们仍然创建了一个单独的应用程序来展示跨应用的沟通。此外,通