




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长江大学工程技术学院毕业设计论文题目名称基于ANDROID的养老生活服务小助手设计与实现系部信息系专业班级电子信息工程61101学生姓名指导教师辅导老师时间2014年9月至2015年6月目录任务书开题报告指导教师审查意见评阅教师评语答辩会议记录及成绩评定中文摘要外文摘要1前言12选题背景13方案论证131运行平台132ANDROID平台优势333ANDROID系统架构434ANDROID系统运行库435应用程序536应用程序框架54相关技术分析741ANDROID开发应用组件742ANDROID的生命活动周期95开发技术126系统模块设计与实现1661ANDROID项目工作区概览1762ANDROID项目中主要文件夹及作用1863ANDROID项目分析1964登录窗口模块(编辑框EDITTEXT与按钮BUTTON)2565ANDROID平台下与服务器数据库通信方式3066ANDROID中服务器数据库通信3067ANDROID中的图片加载3668ANDROID界面页面切换4269ANDROID开发中使用JSON进行网络通信497程序测试结果608结论61参考文献62致谢63长江大学工程技术学院毕业设计论文任务书系信息系专业电子信息工程班级电信61101学生姓名指导教师/职称1毕业设计论文题目基于ANDROID的养老生活服务小助手设计与实现2毕业设计论文起止时间2014年10月1日2015年6月1日3毕业设计论文所需资料及原始数据(指导教师选定部分)1杨丰盛ANDROID应用开发揭秘M北京机械工业出版社,20102姚尚朗,靳岩,等ANDROID开发入门与实战M人民邮电出版社2013年6月1日3王世江GOOGLEANDROID开发入门指南M人民邮电出版社2009年11月1日4陈会安作者JAVA和ANDROID开发实战详解M李强改编人民邮电出版社2014年1月1日5纳德尔曼GREGNUDELMANANDROID应用UI设计模式M袁国忠译者人民邮电出版社第1版2013年12月1日4毕业设计论文应完成的主要任务(1)收集关于开发安卓应用的学习资料。(2)熟练掌握JAVA,ANDROID,XML等的相关知识。(3)编写各个模块代码。(4)整合各个模块的代码,与服务器交互数据。(5)查阅文献,提出研究方案,2014年11月1日前完成开题报告。(6)2015年4月1日前完成英文翻译工作,内容在2万个英文印刷字符以上。(7)2015年5月25日前提交毕业设计(论文)初稿,要求排版格式规范,字数在15000字左右。5任务书下达日期2014年10月1日指导教师签字长江大学工程技术学院毕业设计(论文)开题报告题目名称基于ANDROID的养老生活服务小助手设计与实现系部信息系专业班级电信61101班学生姓名指导教师辅导老师开题报告时间2014年10月25日基于ANDROID的养老生活服务小助手设计与实现一、题目来源本题目来自实践项目。二、研究目的和意义试图把他们集中开发成最能贴近生活的APP普及到人群中去,希望人们在使用智能手机及穿戴设备时不忘了关心自己及家人的身体。让生活和科技更完美的结合,获得更优质的体验。受到不断扩大智能手机拥有群体且有当前健康应用程序的开发热潮的影响联想到对于老年群体的更多关注,一个基于能反馈老人或病人身体数据的应用应予被推向市场或日常生活。在智能手机日趋成熟,智能穿戴设备也炙手可热的当代利用一款安卓程序应用来用于监测老年人与病人生活状态及体征是有效及时准确的方法,考虑到智能设备的广泛应用,养老助手程序既能用于医院监测也能用于行动不便的病人或独自在家的老人及时向医院或子女陪护人员传递自己的身体状况,以便救助和治疗。三、阅读的主要参考文献1杨丰盛ANDROID应用开发揭秘M北京机械工业出版社,20102姚尚朗,靳岩,等ANDROID开发入门与实战M人民邮电出版社2013年6月1日3王世江GOOGLEANDROID开发入门指南M人民邮电出版社2009年11月1日4陈会安作者JAVA和ANDROID开发实战详解M李强改编人民邮电出版社2014年1月1日5纳德尔曼GREGNUDELMANANDROID应用UI设计模式M袁国忠译者人民邮电出版社第1版2013年12月1日6塞萨CARLOSSESSA打造高质量ANDROID应用ANDROID开发必知的50个诀窍杨云君译者机械工业出版社第1版2014年4月1日7王国辉,李永强视频学JAVAWEBM北京人民邮电出版社,20108王瑛,张玉花,李祥胜等ORACLE数据库基本教程M北京人民邮电出版社,20089THOMASKYTEORACLEDATABASE9I/10G/11G编程艺术深入数据库体系结构M北京人民邮电出版社,201110斳岩,姚尚朗ANDROID开发入门与实践M北京人民邮电出版社,200911吴善财ANDROID基础开发与实践M北京清华大学出版社,201212黄敏伟ANDROID平台的即时通信系统客户端设计方案D陕西渭南陕西铁路工程事业技术院校,201113SCHILDT,HJAVATHECOMPELETEREFERENCE,J2SE5EDITION,200614MARZIAHKARCHANDROIDFORWORKMBERKELEYAPRESS,201015JOSHUABLOCHEFFECTIVEJAVA,200916WEINDELMAYER,FREDERICKJ美ANEXPERIMENTALSTUDYOFTHESUITABILITYOFJAVAWEBSERVICESFORREALTIMESERVICEORIENTEDARCHITECTURESDSOUTHERNMETHODISTUNIVERSITYCOMPUTERSCIENCEANDENGINEERING2008四、国内外现状和发展趋势ANDROID是一种基于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由GOOGLE公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。ANDROID操作系统最初由ANDYRUBIN开发,主要支持手机。2005年8月由GOOGLE收购注资。2007年11月,GOOGLE与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良ANDROID系统。随后GOOGLE以APACHE开源许可证的授权方式,发布了ANDROID的源代码。第一部ANDROID智能手机发布于2008年10月。ANDROID逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,ANDROID在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,ANDROID占据全球智能手机操作系统市场76的份额,中国市场占有率为90。2013年09月24日谷歌开发的操作系统ANDROID在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。近几年教务系统的网站也在中国普遍发展。但其次系统界面不友好,不够人性化。系统性能差,没有进行充分的优化,尤其在老年群体庞大的中国,将养老健康类型的软件推向市场绝对是有益而无害的。五、主要研究内容及关键问题51主要研究内容本系统使用JDKECLIPSECLASSICADTANDROIDSDK开发技术来开发,以MYECLIPSE作为代码编写的环境工具,使用JSON通信技术实现客户端和数据库之间的数据交换。软件简化病人数据呈现的复杂结构,通过客户端直接访问数据库,通过分析提出条件,获取必要信息,快速准确查找所需信息,更直观显示出来。根据需求分析得到系统的业务情况,并设计出本系统框架、流程及其用例,以面向对象编程的方式,为系统的几个功能模块实现了实例化。现可将系统按照不同的功能进行模块的划分,本系统共分为三个模块,分别是紧急呼救/工作模式模块、辅助功能模块与用户登录模块,并确立了每个模块的具体功能。课题主要研究并实现的内容有如下几方面。1客户端与数据库的通信,根据系统需求以及功能分析进行设计。2界面的编写与实现。52关键问题在ANDROID平台下,连接电脑服务器的MYSQL、POSTGRESQL、ORACLE、SYBASE、MICROSOFTSQLSERVER等数据库管理系统DBMSDATABASEMANAGEMENTSYSTEM,主要有以下两种方法方法1、直接连接在ANDROID工程中引入JDBC驱动,直接连接。JDBC是JAVADATABASECONNECTIVITY的缩写,意思为“JAVA数据库连接”,由一组用JAVA语言编写的类和接口组成,为JAVA层直接操作关系型数据库提供了标准的API。原理很简单,主要是先服务器DBMS发送SQL(结构化查询语言)指令。实现各种数据库的操作。方法2、间接连接在服务器上用PHPDBMS做服务器端,PHP将DBMS中的数据用JSON或者XML进行封装。然后再发封装好的数据返回给ANDROID平台。JSON(JAVASCRIPTOBJECTNOTATION)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,非常适合于服务器与客户端的交互。JSON采用与编程语言无关的文本格式,但是也使用了类C语言的习惯,这些特性使JSON成为理想的数据交换格式。和XML一样,JSON也是基于纯文本的数据格式。由于JSON天生是为JAVASCRIPT准备的,因此,JSON的数据格式非常简单,您可以用JSON传输一个简单的STRING,NUMBER,BOOLEAN,也可以传输一个数组,或者一个复杂的OBJECT对象。注意采用JDBC方法主要问题是安全性不高,而且一旦要访问的数据量过多,容易出问题。另外,ANDROID系统本身有对JSON或者XML直接解析的API,所以建议采用第二种方法,实用性与安全性都提高了。在本文正文中会很详细的提及两种方式的工作方式就使用方法,会具体根据系统的高效准确来具体选择方法。六、完成毕业设计所必须具备的工作条件1JDKJAVADEVELOPMENTKIT。2ECLIPSECLASSIC。3ADT,安卓开发插件。4ANDROIDSDK。七、预期成果客户端能与服务器进行数据交互,实时传送老年人的健康数据身体指标,及时反馈紧急呼叫,及其他辅助功能的工作。八、工作的主要阶段、进度与时间安排第一阶段2014年10月1日2014年10月25日,查阅文献资料,完成开题报告;第二阶段2014年10月26日2014年11月15日,完成概要设计和详细设计,编制软件;第三阶段2014年11月16日2014年12月1日,测试各功能模块以及系统测试;第四阶段2014年12月1日2015年5月25日,撰写论文。九、指导老师审查意见长江大学工程技术学院毕业设计论文指导教师审查意见学生姓名专业班级电信61101毕业设计论文题目基于ANDROID的养老生活服务小助手设计与实现指导教师职称讲师审查日期20156审查参考内容毕业设计论文的研究(设计)内容、方法及结果,难度及工作量,质量和水平,存在的主要问题与不足。学生的学习态度和组织纪律,学生掌握基础和专业知识的情况,解决实际问题的能力。毕业设计论文是否完成规定任务,是否达到了学士学位水平的要求,是否同意参加答辩等。审查意见指导教师签名评定成绩(百分制)_分长江大学工程技术学院毕业设计论文评阅教师评语学生姓名专业班级电信61101毕业设计论文题目基于ANDROID的养老生活服务小助手设计与实现评阅教师职称评阅日期20156评阅参考内容毕业设计论文的研究(设计)内容、方法及结果,难度及工作量,质量和水平,存在的主要问题与不足。学生掌握基础和专业知识的情况,解决实际问题的能力。毕业设计论文是否完成规定任务,是否达到了学士学位水平的要求,是否同意参加答辩等。评语评阅教师签名评定成绩(百分制)_分长江大学工程技术学院毕业设计论文答辩记录及成绩评定学生姓名专业班级电信61101毕业设计论文题目基于ANDROID的养老生活服务小助手设计与实现答辩时间年月日答辩地点一、答辩小组组成答辩小组组长成员二、答辩记录摘要答辩小组提问(分条摘要列举)学生回答情况评判三、答辩小组对学生答辩成绩的评定(百分制)_分毕业设计论文最终成绩评定依据指导教师评分、评阅教师评分、答辩小组评分和学校关于毕业设计论文评分的相关规定成绩百分制_分答辩小组组长签名秘书签名年月日系答辩委员会主任签名系盖章基于ANDROID的养老生活服务小助手设计与实现摘要调查研究显示,智能手机近年来在中国城市普及迅速。中国城市是全球五大智能手机普及率35最高的地区之一。受到不断扩大智能手机拥有群体且有当前健康应用程序的开发热潮的影响联想到对于老年群体的更多关注,一个基于能反馈老人或病人身体数据的应用应予被推向市场或日常生活。在智能手机日趋成熟,智能穿戴设备也炙手可热的当代利用一款安卓程序应用来用于监测老年人与病人生活状态及体征是有效及时准确的方法,考虑到智能设备的广泛应用,养老助手程序既能用于医院监测也能用于行动不便的病人或独自在家的老人及时向医院或子女陪护人员传递自己的身体状况,以便救助和治疗。本文基于ANDROID设计一个集健康,生活,紧急救助的助手软件,将实现以下功能;1、老年人日常健康监测数据反馈2、老年人日常生活辅助3、老年人突发事件紧急呼救基于现存于市场的安卓应用多面向与年轻人,还没有一款面向老年人的智能设备的操作软件。因此本文针对老年人或老年病人的生活日常所需的急救,健康数据的反馈等功能及其辅助来帮助医院及子女实时关注老年人的身体健康。软件的开发将体现软件在智能移动平台下的方便性和准确性。关键词ANDROID;健康;养老辅助;实时数据BASEDONTHEANDROIDSMALLENDOWMENTSERVICELIFEASSISTANTDESIGNANDIMPLEMENTATIONSTUDENTSHAOBOYANG,DEPARTMENTOFINFORMATIONSUPERVISORLIUZHIYANG,DEPARTMENTOFINFORMATIONABSTRACTRESEARCHSHOWSTHATTHESMARTPHONECITYSPREADRAPIDLYINCHINAINRECENTYEARSCHINASCITYISTHEWORLDSTOPFIVESMARTPHONEPENETRATIONRATE35,ONEOFTHEHIGHESTBYEXPANDINGSMARTPHONEWITHGROUPSANDTHEINFLUENCEOFTHECURRENTHEALTHAPPLICATIONDEVELOPMENTBOOMASSOCIATEDWITHMOREATTENTIONFORTHEELDERLY,ANOLDMANORTHEPATIENTSBODYBASEDONCANFEEDBACKDATAAPPLICATIONSHOULDBEPUSHEDTOTHEMARKETORDAILYLIFEEQUIPMENTINTHESMARTPHONEHASBECOMEINCREASINGLYMATURE,SMARTWEARHOTCONTEMPORARYALSOUSEANANDROIDAPPLICATIONSFORMONITORINGTHEELDERLYANDPATIENTSLIFESTATEANDSIGNSISTIMELYANDACCURATEEFFECTIVEMETHOD,CONSIDERINGTHEWIDEAPPLICATIONOFSMARTDEVICES,PENSIONHELPERAPPLICATIONSCANBEUSEDINHOSPITALMONITORINGCANALSOBEUSEDFORDISABLEDPATIENTSOROLDMANALONEATHOMEINATIMELYMANNERTOESCORTSTOTHEHOSPITALORCHILDRENPASSTHEIROWNPHYSICALCONDITION,INORDERTORESCUEANDTREATMENTTHISARTICLEISBASEDONTHEANDROIDDESIGNASETOFHEALTH,LIFE,EMERGENCYASSISTANTSOFTWARE,WILLIMPLEMENTTHEFOLLOWINGFUNCTIONS1、THEELDERLYDAILYHEALTHMONITORINGDATAFEEDBACK2、THEELDERLYDAILYLIFE3、THEELDERLYINCIDENTEMERGENCYCALLBASEDONEXISTINGONTHEMARKETOFANDROIDAPPLICATIONORIENTEDANDMOREYOUNGPEOPLE,NOTONEFORTHEELDERLYOPERATINGSOFTWAREOFINTELLIGENTEQUIPMENTSOTHISARTICLEFORTHEELDERLYORNEEDSOFTHEELDERLYPATIENTSDAILYLIFEFIRSTAID,HEALTHDATAFUNCTIONANDITSAUXILIARYSUCHASFEEDBACKTOHELPHOSPITALSREALTIMEPAYATTENTIONTOTHEELDERLYANDCHILDRENSHEALTHSOFTWAREDEVELOPMENTWILLBEREFLECTEDINTHECONVENIENCEANDACCURACYOFTHEINTELLIGENTMOBILEPLATFORMKEYWORDANDROIDHEALTHELDERLYSUPPORTINGREALTIMEDATA基于ANDROID的养老生活服务小助手设计与实现1前言调查研究显示,智能手机近年来在中国城市普及迅速。中国城市是全球五大智能手机普及率35最高的地区之一。智能手机正在快速改变我们的生活方式。97的中国城市居民已拥有手机,其中35已拥有智能手机。中国城市智能手机用户随时随地都在使用智能手机,其中家里66,旅途中59,乘坐交通工具中52,餐厅38及商场30是使用智能手机最频繁的地方。而ANDROID系统的占有率更是超过了五成,在移动互联时代,数据的流通能让我们能更清楚的了解我们试图获取的信息,正因为如此,ANDROID的开发者们收集到对人们更有益的信息,试图把他们集中开发成最能贴近生活的APP普及到人群中去,希望人们在使用智能手机及穿戴设备时不忘了关心自己及家人的身体。让生活和科技更完美的结合,获得更优质的体验。2选题背景受到不断扩大智能手机拥有群体且有当前健康应用程序的开发热潮的影响联想到对于老年群体的更多关注,一个基于能反馈老人或病人身体数据的应用应予被推向市场或日常生活。在智能手机日趋成熟,智能穿戴设备也炙手可热的当代利用一款安卓程序应用来用于监测老年人与病人生活状态及体征是有效及时准确的方法,考虑到智能设备的广泛应用,养老助手程序既能用于医院监测也能用于行动不便的病人或独自在家的老人及时向医院或子女陪护人员传递自己的身体状况,以便救助和治疗。3方案论证31运行平台311关于ANDROID系统ANDROID一种专为手持式装置所设计的操作系统。ANDROID是一种开放原始码项目,由开放手机联盟OPENHANDSETALLIANCE,OHA所支持及发展。GOOGLE和HTC都是OHA的成员,GOOGLE是第一家使用ANDROID的公司,而第一部ANDROID手机则是由HTC设计及制造。ANDROID一词的本义指“机器人”,当时同时ANDROID也是GOOGLE于07年11月5日宣布的基于LINUX平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。安卓中文“安卓”是由“ANDROID”音译过来的,所以说在中国“安卓”一词直接代表了ANDROID手机操作系统。安卓的所有软件是APK格式的,APK是ANDROIDPACKAGE的缩写,即ANDROID安装包ANAPK。APK是类似SYMBIANSIS或SISX的文件格式。通过将APK文件直接传到ANDROID模拟器或ANDROID手机中执行即可安装。ANDROID)一种专为手持式装置所设计的操作系统。ANDROID是一种开放原始码项目,由开放手机联盟OPENHANDSETALLIANCE,OHA所支持及发展。GOOGLE和HTC都是OHA的成员,GOOGLE是第一家使用ANDROID的公司,而第一部ANDROID手机则是由HTC设计及制造。2008年,在GOOGLEI/O大会上,谷歌提出了ANDROIDHAL架构图,在同年8月18号,ANDROID获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了ANDROID10系统,这也是ANDROID系统最早的版本。2009年4月,谷歌正式推出了ANDROID15这款手机,ANDROID15命名为CUPCAKE(纸杯蛋糕)。该系统与ANDROID10相比有了很大的改进。2009年9月份,谷歌发布了ANDROID16的正式版,并且推出了搭载ANDROID16正式版的手机HTCHERO(G3),ANDROID16也有一个有趣的甜品名称,它被称为DONUT(甜甜圈)。2010年5月份,谷歌正式发布了ANDROID22操作系统。谷歌将ANDROID22操作系统命名为FROYO,翻译完名为冻酸奶。2010年10月份,谷歌宣布ANDROID系统达到了第一个里程碑,即电子市场上获得官方数字认证的ANDROID应用数量已经达到了10万个,ANDROID系统的应用增长非常迅速。在2010年12月,谷歌正式发布了ANDROID23操作系统GINGERBREAD(姜饼)。2011年1月,谷歌称每日的ANDROID设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而ANDROID系统设备的用户总数达到了135亿,ANDROID系统已经成为智能手机领域占有量最高的系统。2011年8月2日,ANDROID手机已占据全球智能机市场48的份额,并在亚太地区市场占据统治地位,终结了SYMBIAN(塞班系统)的霸主地位,跃居全球第一。2011年9月份,谷歌会发布全新的ANDROID40操作系统,这款系统被谷歌命名为ICECREAMSANDWICH(冰激凌三明治)。2012年1月6日,谷歌ANDROIDMARKET已有10万开发者推出超过40万活跃的应用,大多数的应用程序为免费。ANDROIDMARKET应用程序商店目录在新年首周周末突破40万基准,距离突破30万应用仅4个月。在2011年早些时候,ANDROIDMARKET从20万增加到30万应用也花了四个月。32ANDROID平台优势1、开放性在优势方面,ANDROID平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到ANDROID联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于ANDROID的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。2、不受束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从2007年IPHONE上市后,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。3、多样硬件这一点还是与ANDROID平台的开放性相关,由于ANDROID的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚SYMBIAN风格手机一下改用苹果IPHONE,同时还可将SYMBIAN中优秀的软件带到IPHONE上使用、联系人等资料更是可以方便地转移。4、方便开发ANDROID平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给ANDROID难题之一。5、GOOGLE应用在互联网的GOOGLE已经走过10年度历史,从搜索巨人到全面的互联网渗透,GOOGLE服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而ANDROID平台手机将无缝结合这些优秀的GOOGLE服务。33ANDROID系统架构ANDROID的系统架构和其操作系统一样,采用了分层的架构。图1ANDROID系统构架图从架构图1看,ANDROID分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和LINUX内核层。34ANDROID系统运行库ANDROID包含一些C/C库,这些库能被ANDROID系统中不同的组件使用。它们通过ANDROID应用程序框架为开发者提供服务。以下是一些核心库系统C库一个从BSD继承来的标准C系统函数库LIBC,它是专门为基于EMBEDDEDLINUX的设备定制的。媒体库基于PACKETVIDEOOPENCORE该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H264,MP3,AAC,AMR,JPG,PNG。SURFACEMANAGER对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。LIBWEBCORE一个最新的WEB浏览器引擎用,支持ANDROID浏览器和一个可嵌入的WEB视图。35应用程序ANDROID会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。36应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括丰富而又可扩展的视图(VIEWS,可以用来构建应用程序,它包括列表(LISTS,网格(GRIDS,文本框(TEXTBOXES,按钮(BUTTONS,甚至可嵌入的WEB浏览器。内容提供器(CONTENTPROVIDERS使得应用程序可以访问另一个应用程序的数据(如联系人数据库,或者共享它们自己的数据资源管理器(RESOURCEMANAGER提供非代码资源的访问,如本地字符串,图形,和布局文件(LAYOUTFILES。通知管理器(NOTIFICATIONMANAGER使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器(ACTIVITYMANAGER用来管理应用程序生命周期并提供常用的导航回退功能。ANDROID后缀简介APK是安卓应用的后缀,是ANDROIDPACKAGE的缩写,即ANDROID安装包APK。APK是类似SYMBIANSIS或SISX的文件格式。通过将APK文件直接传到ANDROID模拟器或ANDROID手机中执行即可安装。APK文件和SIS一样,把ANDROIDSDK编译的工程打包成一个安装程序文件,格式为APK。APK文件其实是ZIP格式,但后缀名被修改为APK,通过UNZIP解压后,可以看到DEX文件,DEX是DALVIKVMEXECUTES的全称,即ANDROIDDALVIK执行程序,并非JAVAME的字节码而是DALVIK字节码。APK文件结构一个APK文件结构为1METAINF(注JAR文件中常可以看到);2RES注存放资源文件的目录;3ANDROIDMANIFESTXML注程序全局配置文件;4CLASSESDEX(注DALVIK字节码);5RESOURCESARSC注编译后的二进制资源文件。总结下我们发现ANDROID在运行一个程序时首先需要UNZIP,然后类似SYMBIAN那样直接执行安装,和WINDOWSMOBILE中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过DEXDUMP命令可以反编译,但这样做符合发展规律,微软的WINDOWSGADGETS或者说WPF也采用了这种构架方式。在ANDROID平台中DALVIKVM的执行文件被打包为APK格式,最终运行时加载器会解压然后获取编译后ANDROIDMANIFESTXML文件中的PERMISSION分支相关的安全访问,但仍然存在很多安全限制,如果你将APK文件传到/SYSTEM/APP文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在ANDROIDROM中系统的APK文件默认会放入这个文件夹,它们拥有着ROOT权限。ANDROID安全权限ANDROID本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(LINUX用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。LINUX就是这样将应用与应用,应用与系统隔离开。系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。ANDROID安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款ANDROID应用通常会要求如下的权限拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WIFI状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。4相关技术分析41ANDROID开发应用组件ANDROID开发四大组件分别是活动(ACTIVITY用于表现功能。服务(SERVICE后台运行服务,不提供界面呈现。广播接收器(BROADCASTRECEIVER用于接收广播。内容提供商(CONTENTPROVIDER)支持在多个应用中存储和读取数据,相当于数据库。活动ANDROID中,ACTIVITY是所有程序的根本,所有程序的流程都运行在ACTIVITY之中,ACTIVITY可以算是开发者遇到的最频繁,也是ANDROID当中最基本的模块之一。在NDROID的程序当中,ACTIVITY一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么ACTIVITY就相当于一个网页。在ACTIVITY当中可以添加一些BUTTON、CHECKBOX等控件。可以看到ACTIVITY概念和网页的概念相当类似。图2ACTIVITY与组件之间的关系一般一个ANDROID应用是由多个ACTIVITY组成的。这多个ACTIVITY之间可以进行相互跳转,例如,按下一个BUTTON按钮后,可能会跳转到其他的ACTIVITY。和网页跳转稍微有些不一样的是,ACTIVITY之间的跳转有可能返回值,例如,从ACTIVITYA跳转到ACTIVITYB,那么当ACTIVITYB运行结束的时候,有可能会给ACTIVITYA一个返回值。这样做在很多时候是相当方便的。当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,因为ANDROID会把每个应用的开始到当前的每个屏幕保存在堆栈中。服务SERVICE是ANDROID系统中的一种组件,它跟ACTIVITY的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。SERVICE是没有界面的长生命周期的代码。SERVICE是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,打开ANDROID浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的SERVICE进行控制。当然这个播放音乐的SERVICE也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。SERVICE可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他ACTIVITY这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等等,总之服务嘛,总是藏在后头的。开启SERVICE有两种方式(1)CONTEXTSTARTSERVICE()SERVICE会经历ONCREATEONSTART(如果SERVICE还没有运行,则ANDROID先调用ONCREATE()然后调用ONSTART();如果SERVICE已经运行,则只调用ONSTART(),所以一个SERVICE的ONSTART方法可能会重复调用多次);STOPSERVICE的时候直接ONDESTROY,如果是调用者自己直接退出而没有调用STOPSERVICE的话,SERVICE会一直在后台运行。该SERVICE的调用者再启动起来后可以通过STOPSERVICE关闭SERVICE。注意,多次调用CONTEXTSTARTSERVICE()不会嵌套(即使会有相应的ONSTART()方法被调用),所以无论同一个服务被启动了多少次,一旦调用CONTEXTSTOPSERVICE()或者STOPSELF(),他都会被停止。补充说明传递给STARTSERVICE(0的INTENT对象会传递给ONSTART()方法。调用顺序为ONCREATEONSTART(可多次调用ONDESTROY。(2)CONTEXTBINDSERVICE()SERVICE会经历ONCREATE()ONBIND(),ONBIND将返回给客户端一个IBIND接口实例,IBIND允许客户端回调服务的方法,比如得到SERVICE运行的状态或其他操作。这个时候把调用者(CONTEXT,例如ACTIVITY)会和SERVICE绑定在一起,CONTEXT退出了,SREVICE就会调用ONUNBINDONDESTROYED相应退出,所谓绑定在一起就共存亡了。资源CONTENTPROVIDER是ANDROID提供的第三方应用数据的访问方案。在ANDROID中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。ANDORID当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是CONTENTPROVIDER。应用想对外提供的数据,可以通过派生CONTENTPROVIDER类,封装成一枚CONTENTPROVIDER,每个CONTENTPROVIDER都用一个URI作为独立的标识,形如CONTENT/COMXXXXX。所有东西看着像REST的样子,但实际上,它比REST更为灵活。和REST类似,URI也可以有两种类型,一种是带ID的,另一种是列表的,但实现者不需要按照这个模式来做,给ID的URI也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。42ANDROID活动的生命周期ANDROID平台是个手机作业系统。撇掉其他功能不谈,手机的特性,就是应该能随时在未完成目前动作的时候,暂停正在使用的功能,切换到接电话、接收短信模式,而且在接完电话回到应用程序时,还希望能看到一样的内容。现在用户使用智能手机,大多已习惯使用多工的作业系统如WINDOWSMOBILE,可以在用手机听音乐的同时,执行其他多个程序。同时执行多个程序有它的明显好处,但也有它的缺点。每多执行一个应用程序,就会多耗费一些系统内存,而手机里的内存是相当有限的。当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统运行时就会觉得越来越慢,甚至不稳定。为了解决这个问题,ANDROID引入了一个新的机制生命周期。ANDROID应用程序的生命周期是由ANDROID框架进行管理,而不是由应用程序直接控制。通常,每一个应用程序入口一般会是一个活动的ONCREATE方法,都会占据一个进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。一个活动类别除了ONCREATE方法之外,还预先定义了ONPAUSE暂停、ONRESUME继续等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保管状态、恢复状态、传送资料等工作。活动的生命状态ANDROID的虚拟机是使用堆栈管理。主要有四种状态L活动状态活动状态是指用户启动应用程序或活动后,活动运行中的状态。在ANDROID平台上,同一个时刻只会有一个活动处于活动或运行状态。其他的活动都处于未启动、停止或是暂停的状态。2暂停状态暂停状态是指当活动暂时暗下来,退到背景画面的状态。当警告对话框或电话来了时,都会让原来运行的活动退到背景画面。新出现的警告对话框等界面元件盖住了原来的活动画面。活动处在暂停状态时,用户无法与原活动互动。3停止状态停止状态是指有其他活动正在执行,而这个活动己经离开屏幕,不再动作的状态。通过按返回键,可以调出所有处于停止状态的应用程序列表。处于停止状态的活动,还可以通过通知来唤醒。4已回收或未启动状态已回收或未启动状态是指活动尚未被启动、已经被手动终止或己经被系统回收的状态。要手动终止活动,可以在程序中调用FINISH方法。如果是被系统回收,可能是因为内存不足了,所以系统根据内存不足时的回收规则,将处于停止状态的活动所占用的内存回收。图3ANDROID生命活动周期ANDROID活动生命周期图3所示的七个状态又可以归纳成三组L资源分配创建/销毁完整的活动生命周期由创建状态开始,由销毁状态结束。创建时分配资源,销毁时释放资源。2可见与不可见启动/重新启动/停止当活动运行到启动状态时,就可以在屏幕上看到这个活动。相反地,当活动运行到停止状态时,这个活动就会从屏幕上消失。当用户按下返回键回到上一个活动时,会先到重新启动状态,再到一般的启动状态。3用户取得屏幕的控制权继续/暂停当有个警告对话框、短信、电话等信息进入时,原来的活动会进入暂停状态,暂时放弃屏幕的控制权,被中断到背景去,将前景交给优先级高的事件。当这些优先级高的事件处理完后,活动就改进入继续状态,此时又取得屏幕的控制权。活动的运作流程由实际运行来看,我们可以归纳出所有ANDROID应用程序都遵循的运作流程L一般启动启动一个活动的基本流程为ONCREATE一ONSTART一ONRESUME。该流程首先分配资源给这个活动创建状态,然后将活动的内容显示到屏幕上启动状态在一切就绪后,取得屏幕的控制权恢复状态,用户可以开始使用这个程序。2调用另一个活动调用另一个活动的基本流程为ONPAUSEL一ONCREATE2一ONSTART2一0NRESUME2一ONSTOPL。该流程首先冻结原来的活动,再交出屏幕控制权直到活动2完成一般启动流程后,活动1才会被停止。3回到原来活动回到原来活动的基本流程为ONPAUSE2一ONRESTART1一ONSTARTL一ONRESUME1一ONSTOP2一ONDESTROY2。另外按返回键也可以回到原来的活动。4退出结束退出结束的基本流程为ONPAUSE一ONSTOP一ONDESTROY。如果程序中有直接调用FINISH方法来关闭活动的话,系统会跳过先冻结的阶段,直接暂停,停止,然后销毁。5回收后再启动回收后再启动的基本流程为ONCREATE一ONSTART一ONRESUME。如果被回收掉的活动一旦又重新被调用时,会像一般启动一样再次调用活动的ONCREATE方法。当在模拟器上已经执行过多个应用程序,只要按下返回键,就会开启最近一次开启过的活动。所以如果要让再次被创建的活动跟原来开启过的一样,那么在活动之间切换时,就要保存资料即在每次活动运行到暂停或停止状态时先保存资料,然后在创建时将资料读出来。5开发技术搭建开发ANDROID环境第一部分准备工作那么你需要下载以下的东西1JDKJAVADEVELOPMENTKIT。2ECLIPSECLASSIC。3ADT,安卓开发插件。4ANDROIDSDK。第二部分安装与配置一、安装JDK。一路点下一步,这个没什么特殊的东西,这里就不多说了,不过要记得你装哪了,别2秒钟就不记得了。我安装在了CPROGRAMFILESJAVA二、安装ECLIPSE。三、安装SDK如果你下载的是ZIP或者TGZ的包(SDKINSTALLER安装之后的),将它解压到一个安全的路径中,默认的会被命名为ANDROIDSDKWINDOWS,如果你下载的是WINDOWS安装程序EXE文件,运行它之后会检测是否安装了JDK(如果没安装就安装一下),然后安装SDKTOOLS到一个安全的位置(你可以编辑的位置)。本文安装的位置为FANDROIDSDKWINDOWS。四、设置环境变量以上三项都正确,配置成功。五、为ECLIPSE安装ADTPLUGINANDROID为ECLIPSEIDE提供了一个ADT插件,名字叫ANDROIDDEVELOPMENTTOOLSADT,为开发者创建ANDROID应用提供一个强大的完整的开发环境。它集成在ECLIPSE,所以你可以快速的建立新的ANDROID项目、创建应用UI、使用ANDROIDSDKTOOLS调试你的应用。一在线下载安装ADT速度比较慢1、下载ADT插件2、配置ADT插件ADT安装成功之后,就要修改你的ECLIPSE里的ADT参数,指向ANDROIDSDKDIRECTORY。1选择WINDOWPREFERENCES打开PREFERENCES面板2选择左边面板里的ANDROID。你可能会看到一个对话框询问你是否想要发送使用信息给GOOGLE。做出你的选择,然后点PROCEED。3SDKLOCATION在主面板中出现,点击BROWSE,然后找到你下载的SDK路径,点击确定。4点击APPLY,然后就OK。二本地安装ADT如果你还是无法在线安装ADT,那么你可以下载一个ADT压缩文件到你的本机,然后手动安装它,具体如下1下载地址HTTP/DLGOOGLECOM/ANDROID/ADT1800ZIP,注意不要解压。2启动ECLIPSE,然后选择
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- N-Acetylsulfanilamide-d4-4-Acetamidobenzenesulfonamide-d-sub-4-sub-生命科学试剂-MCE
- 禁毒知识师资培训通知课件
- DB61T 584-2013 陕北白绒山羊舍饲饲养管理技术规范
- 三基护理考试试题及答案
- 禁毒知识培训宣传活动课件
- 杨荣武生物化学第十二章酶活性的调节讲课文档
- 《机车总体及走行部》课件 项目三 任务4 一系、二系悬挂装置
- 构成物质的微粒分子讲课文档
- 2025陕西汉中镇巴县村镇建设管理站招聘公益性岗位工作人员7人备考练习题库及答案解析
- 银行按揭房屋买卖合同
- 慢性化脓性中耳炎护理查房
- 园林局城市绿化养护手册
- 法社会学教程(第三版)教学
- 人工智能对会计信息披露的挑战与机遇
- 【人教版】二年级上册《道德与法治》全册教案
- 《应用文写作》中职全套教学课件
- 小学英语开学第一课-课件
- 《塑料门窗工程技术规程》JGJ103-2008
- 高三5月大联考作文“新技术”“新产业”“新质生产力”导写
- 手持电动工具安全培训
- (正式版)JBT 9229-2024 剪叉式升降工作平台
评论
0/150
提交评论