基于安卓与服务端交互的手机助手软件_第1页
基于安卓与服务端交互的手机助手软件_第2页
基于安卓与服务端交互的手机助手软件_第3页
基于安卓与服务端交互的手机助手软件_第4页
基于安卓与服务端交互的手机助手软件_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计毕设名称基于安卓与服务端交互的手机助手软件实验项目毕业设计2015年4月24日毕业设计(论文)任务书毕业设计(论文)题目基于ANDROID与服务端交互的手机助手软件毕业设计(论文)要求及原始数据(资料)1综述国内外对于移动客户端设计相关技术;2深入了解APP的UI的设计的相关技术;3熟练掌握手机管家要实现的六大功能和设计思路;4熟练掌握编写代码的能力和对代码健壮性的掌控;5分析手机管家APP中的关键技术与编写语言的精髓;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力;毕业设计(论文)主要内容1综述手机UI设计及如何调用ANDROID中的系统类;2了解移动手机管家的数据库存储的相关技术;3熟悉手机管家客户端以及ANDROID的开发环境;4设计并实现对手机电池的管理并界面化;5深入对手机用户和系统软件的分析;6熟练掌握手机管家开发及其训练编写程序的能力;7设计并实现基于ANDROID的移动客户端手机管家的设计。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。主要参考文献(资料)1李刚疯狂ANDROID讲义电子工业出版社,2013312莱特曼,王东明ANDROIDUI设计响应式用户界面与设计模式机械工业出版社,20131013柳峰微信平台应用开发,机械工业出版社,2014114美埃克尔JAVA编程思想,2007615WRICHANDSTEVENS,范建华TCP/IP详解卷1,20076严蔚敏,吴伟民数据结构,20117美弗里曼(FREEMANE)HEADFIRST设计模式2007918特南鲍姆,韦瑟罗尔计算机网络,20129THOMASHCORMEN,CHARLESELEISERSONRONALD,CLIHORDSTEIN算法导论,201310李兴华JAVA开发实战经典清华大学出版社2009专业班级软件1108班学生李杰要求设计(论文)工作起止日期2015年3月23日2015年7月3日指导教师签字日期2015年3月23日教研室主任审查签字日期系主任批准签字日期摘要伴随智能手机的不断普及,移动互联网的快速发展,伴随着3G时代的到来,智能手机的广泛应用,安卓成为活跃用户量最大的移动终端操作系统,并且安卓操作系统是开放源代码的,所以每个人都可以开发出一个安卓应用,导致安卓的应用数不胜数。由于安卓的开源,所以安卓的应用程序更是多不胜数,那么对于手机软件的管理需求自然而然的产生了。本论文详细的阐述了手机管家的开发流程,包括软件管理、进程管理(手机加速)、闹钟管理、电池管理、照相机、通讯录这六大功能模块。整体项目充分运用了ANDROID的四大组件,是对安卓知识点的进行了综合应用,本项目是通过XML文件对页面进行布局,后台使用JAVA代码实现每一个业务逻辑流程,完成页面中的每一个需求。本系统采用安卓作为开发平台,使用安卓开发工具作为开发环境,后台使用SQLITE数据库进行数据的存储和传输,来实现手机管家中的通讯录模块的的数据存储。关键词手机管家,安卓开发平台,MVC框架,SQLITE数据库ABSTRACTWITHTHEGROWINGPOPULARITYOFSMARTPHONESANDTHERAPIDDEVELOPMENTOFMOBILEINTERNET,WITHTHEEXTENSIVEAPPLICATIONOFTHE3GERA,SMARTPHONES,ANDROIDBECAMETHELARGESTACTIVEUSERSOFMOBILEOPERATINGSYSTEMS,ANDTHEANDROIDOPERATINGSYSTEMISOPENSOURCE,SOEVERYONECANDEVELOPANANDROIDAPPLICATION,RESULTINGINNUMEROUSANDROIDAPPLICATIONSBECAUSEANDROIDISOPENSOURCE,LEADINGEVERYONECANDEVELOPANDROIDTERMINALSOFTWAREFORDIY,ANDSOMEDEVELOPERSTODEVELOPSOMEILLEGALCODEINTHEAPPLICATION,TOSTEALTHEUSERSPRIVACY,MAKINGPHONESECURITYPROBLEMSHAVEBECOMEINCREASINGLYAPPARENT,ANDTHEPHONESECURITYPROBLEMSHASCAUSEDMANYPEOPLESCONCERNTHISPAPEREXPOUNDSTHEDEVELOPMENTPROCESSOFMOBILEPHONEHOUSEKEEPER,INCLUDINGSOFTWAREMANAGEMENT,PROCESSMANAGEMENTMOBILEACCELERATION,ALARMCLOCK,BATTERYMANAGEMENT,CAMERA,CONTACTSTHESIXMAJORFUNCTIONALMODULESTHEOVERALLPROJECT,MAKEFULLUSEOFTHEFOURCOMPONENTSOFTHEANDROIDISTHEANDROIDHASCARRIEDONTHECOMPREHENSIVEAPPLICATIONOFKNOWLEDGEPOINTS,THISPROJECTISTHROUGHTHEXMLFILETOLAYOUTOFTHEPAGE,THEBACKGROUNDUSINGJAVACODEFOREACHBUSINESSLOGICPROCESS,COMPLETEEACHREQUIREMENTOFTHEPAGETHISSYSTEMUSESTHEANDROIDASADEVELOPMENTPLATFORM,USINGTHEANDROIDDEVELOPMENTTOOLSASADEVELOPMENTENVIRONMENT,THEBACKGROUNDUSINGTHESQLITEDATABASEFORDATASTORAGEANDTRANSMISSION,TOACHIEVEMOBILEBUTLERINTHECONTACTSMODULEOFDATASTORAGEKEYWORDSMOBILEPHONEBUTLER,ANDROIDDEVELOPMENTPLATFORM,THEMVCFRAMEWORK,SQLITEDATABASE目录1绪论511选题背景512系统开发环境513本章小结52需求分析621可行性分析622项目需求分析7222项目的目录空间结构8223项目代码的组织结构823本章小结83相关技术简介1031JAVA技术综述1032ANDROID技术1033SQLITE数据库1234本章小结134项目设计1541项目设计目标及原则1542项目的模块1543程序的设计与实现1543本章小结335数据库设计3451数据库设计过程描述3452数据库物理结构设计3453数据库的实施3654本章小结366项目的测试3761软件测试的概念3762测试收获38参考文献40致谢411绪论11选题背景ANDROID移动终端操作系统由谷歌公司于2007年11月05日推出,ANDROID操作系统是建立于LINUX操作系统之上,该平台有操作系统、中间件、用户界面和应用软件层组成。ANDROID操作系统最初由ANDYRUBIN开发,主要支持手机。根据全球著名调查机构GARTNER提供的数据,安卓系统在只能手机市场发占有率达到了一半以上。随着科技的发展,移动互联网已成为当下的趋势,而拥有ANDROID平台的终端设备已达到75的占有率。这都要归根于其平台的开放性,显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,软件的开发的需求量也逐年增加。12系统开发环境操作系统WINDOWS7开发平台ANDROID开发环境ANDROIDDEVELOPMENTTOOLS开发语言JAVA数据库SQLITE、ORACLE13本章小结本章主要介绍了该项目的开发背景和本项目的特点,以及对市面上一些商业安全软件的一些模块进行小小的优化,针对用户的需求,简要阐述了该项目所要实现的基本功能和目标,并介绍了该项目的支持平台、开发环境、开发语言以及所要使用的后台数据库。2需求分析21可行性分析随着ANDROID用户的不断增长,手机管家在各个应用下载榜上都名列前茅,国内有很多成功的案例,如360手机管家,腾讯手机管家等。而手机管家这个项目乍一看不知道如何下手,并且其组织关系有很大的复杂性,但仔细分析后,发现它所用到的知识点基本上ANDROID核心的知识点,比如ANDROID的四大组件、自定义UI布局还有对一些系统API的综合运用。并且由于ANDROID的开源,我还可以借鉴一下市面上的手机管家的素材和UI布局,所有说如果我们能详细了解项目的开发流程并且熟悉ANDROID核心的知识点,开发出这个项目并不存在太大的技术问题。这个项目开发难度不是太大,并且通过开发工具可以导出一个APK文件,直接可以安装到用户的移动终端上,系统部署对软硬件要求不高,用户操作简单,使用比较方便,几乎不需要对用户进行专业培训就可使用本软件,不必要花费那么多的时间,也就是说最重要的是就是提高了效率,而又保证了各项数据的准确性,适应了当前的发展形式。通过将近几天的可行性分析和对市场需求的调查,发现对手机管家的需求还是蛮大的,通过技术和经济上的分析,开发出一款手机管家是切实可行的,这就为我们后来的准备工作有了一个良好的开端。好的开头是成功的一半,这会是后期开发的动力之所在。22项目需求分析手机管家是针对当下形势需求而开发的,ANDROID系统的火爆和开源,使得对ANDROID平台下的应用程序需求量极大。而本次项目开发是针对这一结果而开发的,本项目预计实现6个大的功能模块,最主要的有软件管理、进程管理(手机加速)、闹钟管理、电池管理、照相机、通讯录等常用的功能。软件管理模块是通过LISTVIEW展现出用户的所有安装的软件,其中有用户软件和系统软件之分,用户可以对安装的应用程序进行卸载、查看详情。进程管理是通过ACTIVITYMANAGER来拿到用户手机正在运行的进程,用户可以杀死任意一个进程,也可以全选杀死多个进程来释放手机的内存,节省控件。闹钟管理师通过调用系统类,实现时间设置,并提示。电池管理,可以查看手机电量、温度、电压、使用情况等,并界面化动态显示手机是否属于充电状态,以及自动判断手机的电池的安全状态。照相机模块,给ANDROID的配置文件中加入调用系统照相机的权限,实现拍照的功能。通讯录,在这个模块中大量运用了SQLITE数据库,实现联系人的增、删、改、查,并长按来选择联系人,实现拨打电话和发短信。所有的功能模块都是运行于ANDROID平台之上的,各个模块之间的耦合度比较低,都能独立运行在模拟器或者用户的移动终端上,方便用户的操作,能够实现用户的日常需求。221项目的具体功能分析整体项目对ANDROID知识点进行了综合应用,用到的技术有ACTIVITY,SERVICE,BROADCAST,CONTENTPROVIDER,NOTIFICATION,SQLITE数据库,自定义TITLE,自定义控件等,本项目所实现的功能如下软件管理系统软件和本地软件,可以显示软件的详细信息,卸载应用程序。并显示出程序的个数。系统软件是系统本身自带的软件,本地软件是用户自己通过网络下载的应用程序。进程管理显示当前系统运行的进程信息,显示系统内存信息,可以杀死某个进程,批量杀死进程,使手机处于健康状态。这个模块中还有系统监测功能,包括基本信息(型号、系统版本、手机串号、运营商、网络类型、是否ROOT)、CPUCPU型号、CPU核数、CUP最大最小频率、内存(剩余内存、手机内存总量、SD卡内存)、分辨率(屏幕分辨率、像素密度、多点触控)、像素(摄像头像素、相片最大尺寸、闪光灯)、WIFI(WIFI连接地址、状态、速度、MAC地址、蓝牙状态)。闹钟管理调用系统类,实现时间设置,并设有开启闹钟和关闭闹钟功能,方便用户操作,在闹钟管理模块调用了系统CLOCK,ANDROID优美的的UI确实是各种语言中无法媲美的。电池管理用界面形象显示当前电池电量,电池监控中包括当前电量、电池状态、电池温度(超过26度字是红色)、电池电压、电池使用状态。另外也实现了电池维护,这个界面中动态显示是否属于充电状态,并根据电量可以判断属于快速充电等待中、循环充电中、涓流充电中状态,自动亮起灯。照相机ANDROID的配置文件中加入调用系统照相机的权限,实现拍照的功能,让用户时刻可以记录当时的场景,并拍成照片存入手机内存中。通讯录通过灵活运用SQLITE数据库,实现了拨号、发短信、添加新联系人、删除联系人、查找联系人、查看联系人详细信息、自动导入手机通讯录中所有的联系人等功能。222项目的目录空间结构在创建了本次的设计的项目后,会在项目的根目录下发现一些文件和子目录,以下是对这些目录的简要说明ANDROIDMANIFESTXML是一个XML文件,用于描述将被构建的应用程序,以及应用程序中包含哪些组件(ACTIVITY、SERVICE等等)。ASSETS/文件夹,用于存放需要打包到应用程序中的静态文件,以便部署到设备中。BIN/文件夹,用于存放编译后的应用程序。GEN/文件夹,ANDROID构建工具存放它们生成的源代码的地方。LIBS/文件夹,用于存放应用程序用到的第三方JAR包。SRC/文件夹,用于存放应用程序的JAVA源代码。RES/文件夹,用于存放应用程序的资源(如图标、GUI布局等),将被打包到编译后JAVA中。223项目代码的组织结构程序代码的组织结构大体上有两种第一种按照业务逻辑组织代码,这样业务与业务之间的关联度比较小。第二种按照代码的类型组织包结构。在这里,我们采用第二种代码的组织结构进行手机管家的开发,其代码的组织方式如下COMKLTANHOMEBOSSXING,这个包放我们开发程序的主界面、以及登录界面;COMKLTANHOMEBOSSXINGBATTERY,这个包放我们开发程序的电池管理模块;COMKLTANHOMEBOSSXINGCLOCK,这个包放我们开发程序的闹钟管理模块;COMKLTANHOMEBOSSXINGPHONE,这个包放我们开发程序的照相机管理模块;COMKLTANHOMEBOSSXINGSOFT,这个包放我们开发程序的软件管理模块;COMKLTANHOMEBOSSXINGSPEED,这个包放我们开发程序的进程管理模块;COMKLTANHOMEBOSSXINGTELEPHONE,这个包放我们开发程序的通讯录管理模块;23本章小结本章主要介绍了该项目开发的需求分析,以及开发此项目的的可行性分析,另外对项目要实现的功能模块、开发模式的简介和包的组织结构进行了详细的介绍。这样,就显得我们开发的源代码的组织比较有章法,而不会那么的乱。通过本章的介绍,使我对此项目有了进一步的了解,对项目的各个部分的功能有了深刻的认识。对于不同的模块,所实现的功能也有了清晰的认识。此外,具体各个模块的功能设计也进行了详细的介绍,只有熟悉了模块本身的需求和页面布局,才能更好地完成功能界面的设计。总之,经过本章的介绍,为以后自己进行界面设计打下了坚实的基础,头脑中也有一个基本完整的构思和大体的布局,而不再是不知所措的感觉了。3相关技术简介31JAVA技术综述JAVA技术简介JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SUNMICROSYSTEMS公司于1995年5月推出的JAVA程序设计语言和JAVA平台(即JAVAEE,JAVAME,JAVASE)的总称。JAVA自面世后就非常流行,发展迅速,对C语言形成了有力冲击。JAVA技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,JAVA更具备了显著优势和广阔前景。JAVA是由四个方面组成的,包括JAVA编程语言、JAVA文件格式、JAVA虚拟机(JVM)、JAVA应用程序接口(JAVAAPI)。简言之JAVA编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。JAVA是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。JAVA技术的特点JAVA编程语言的风格十分接近C语言、C语言。JAVA是一个纯粹的面向对象的程序设计语言,它继承了C语言面向对象技术的核心。JAVA舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(OPERATOROVERLOADING)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在JAVA15版本中,JAVA又引入了泛型编程(GENERICPROGRAMMING)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。JAVA不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(BYTECODE),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了JAVA程序的性能。32ANDROID技术1)ANDROID技术的简介ANDROID是一种基于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由GOOGLE公司和开放手机联盟领导及开发。ANDROID是第一个内置支持JAVA的操作系统,ANDROID应用程序使用JAVA语言编写。ANDROID开发水平的高低很大程度上取决于JAVA语言核心能力是否扎实。另外一方面,3G应用往往会和企业级应用相互结合。配合真实的企业级项目,不但可以深入掌握基于ANDROID平台的智能手机开发技术,更重要的是还系统掌握了智能移动终端与JAVAEE服务器端相结合的诸多领域商业的应用。项目开发环境为ADT(ANDROIDDEVELOPMENTTOOLS),是一个定制版的ECLIPSE,专门用于开发ANDROID项目,里面集成了ANDROIDVIRTUALDEVICES,对于JAVA基础较扎实的人很容易上手。2)ANDROID的四大组件ANDROID开发四大组件分别是活动(ACTIVITY用于表现功能。服务(SERVICE后台运行服务,不提供界面呈现。广播接收器(BROADCASTRECEIVER用于接收广播。内容提供商(CONTENTPROVIDER)支持在多个应用中存储和读取数据,相当于数据库。活动(ACTIVITY)ANDROID中,ACTIVITY是所有程序的根本,所有程序的流程都运行在ACTIVITY之中,ACTIVITY可以算是开发者遇到的最频繁,也是ANDROID当中最基本的模块之一。一般一个ANDROID应用是由多个ACTIVITY组成的。这多个ACTIVITY之间可以进行相互跳转。服务(SERVICE)SERVICE是ANDROID系统中的一种组件,它跟ACTIVITY的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。SERVICE是没有界面的长生命周期的代码。广播接收者在ANDROID中,BROADCAST是一种广泛运用的在应用程序之间传输信息的机制。而BROADCASTRECEIVER是对发送出来的BROADCAST进行过滤接受并响应的一类组件。可以使用BROADCASTRECEIVER来让应用对一个外部的事件做出响应。内容提供者CONTENTPROVIDER是ANDROID提供的第三方应用数据的访问方案。3)ANDROID平台的优势与劣势ANDROID平台有五大优势特色。开放性在优势方面,ANDROID平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到ANDROID联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于ANDROID的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从IPHONE上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。丰富的硬件选择这一点还是与ANDROID平台的开放性相关,由于ANDROID的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。不受任何限制的开发商ANDROID平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给ANDROID难题之一。无缝结合的GOOGLE应用如今叱咤互联网的GOOGLE已经走过10年度历史。从搜索巨人到全面的互联网渗透,GOOGLE服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而ANDROID平台手机将无缝结合这些优秀的GOOGLE服务。但是事物往往都有两面性,ANDROID平台还有其相应的劣势。版本过多,升级过快由于ANDROID的开放式特点,所以很多的厂商推出了定制的界面,如HTCSENSE、MOTOBLUR、三星TOUCHWIZ等等,这提供给客户丰富选择的同时,也造成版本过多,升级较慢的特点,因为GOOGLE的升级速度很快,而厂商要推出新固件需要经过深度的研发,就造成升级滞后的问题。用户体验不一致由于ANDROID在不同的厂商,不同的配置下均有机型,所以造成有些机型运行ANDROID系统流畅,有些则是缓慢卡顿等问题,就如愤怒的小鸟的开发商就表示,这款人气游戏在很多的ANDROID机型上运行得不是很理想,不过就像我们用的PC也有的好有的坏一样,这倒是不必太多顾虑这个问题。33SQLITE数据库SQLITE数据库简介SQLITE,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持WINDOWS/LINUX/UNIX等等主流的操作系统,同时能够跟很多程序语言相结合,比如TCL、C、PHP、JAVA等,还有ODBC接口,同样比起MYSQL、POSTGRESQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLITE操作简单,能够使用很多语言直接创建数据库,而不象ACCESS一样需要OFFICE的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLITE。SQLITE是一个非常流行的嵌入式数据库,它的SQL界面非常简洁,内存占用少,速度快。此外,它是公开的,所以每个人都可以使用。许多公司(如ADOBE、苹果公司、GOOGLE、SUN和SYMBIAN)和开源项目(如MOZILLA、PHP和PYTHON)都在产品中使用了SQLITE。对于ANDROID,SQLITE已经“融入”到ANDROID运行时,因此所有ANDROID应用程序都可以创建SQLITE数据库。由于SQLITE使用SQL界面,对于有基于其他SQL数据库使用经验的用户而言,它的使用非常简单直接。但是,它的本机API不是JDBC,而JDBC对于手机等内存有限的设备来说开销太大。对于程序员来说,学习SQLITE就相当于学习一个新的API,它很容易上手。SQLITE数据库的优缺点优点SQLITE是一个轻量级、跨平台的关系型数据库。SQLITE的另外一个特点是绿色它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦,还有跨平台性和可移植性。SQLITE操作简单,能够使用很多语言直接创建数据库,而不象ACCESS一样需要OFFICE的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLITE。缺点SQLITE在并发(包括多进程和多线程)读写方面的性能一直不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错,并且SQL标准支持的不全。34本章小结本章主要对开发此项目的所用到的开发工具、支持的平台和所用的数据库进行简要的介绍。另外,详细的解释了ANDROID下的四大组件以及各自的职能,并对这些组件之间的关系和连接进行详细的说明。最后,还提到了ANDROID下的数据库的使用以及该数据库的优缺点。总之,通过这一小节让我了解到开发一个ANDROID下的项目所必须的环境和平台,以及要使用的工具和后台的数据库,只有对这些工具进行熟悉的掌握和学习并加以熟练的运用,只有这样,才可以开发出适合用户需求的应用程序。加深了对项目开发的理解,并不仅仅是代码的编写,而是整个开发流程的控制。4项目设计41项目设计目标及原则本次项目的设计就是要开发一个手机助手软件,它属于一个系统级别的软件,可以帮助更加方便、简洁的去操作手机,尤其是对手机软件的管理、进程管理、电池管理、闹钟、照相机、通信录等。本项目致力于设计一个松耦合的功能,降低模块之间的联系,以便后期的维护与再设计。系统设计的原则如下所示。模块化模块化设计不仅减低了模块之间的耦合性,使得系统容易修改,而且推动了系统各个部分的并行开发,从而提高了软件的设计效率。模块独立性模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他模块的功能是无关的。模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结构。42项目的模块主界面图该系统的总体的一个结构图有主界面以及主界面上的一些模块构成,主界面为ACTIVITY,在主界面上有软件管家、进程管理、电池管理等模块,总体结构图如图41所示。图41总体模块结构图43程序的设计与实现应用程序系统框架代码实现开发环境ECLIPSE。各模块实现高内聚,低耦合,方便后期软件的拓展和维护。采用面向对象的编程思想,使用ANDROID中的ACTIVITY、SERVISE、BROADCASTRECEIVE、CONTENTPROVIDER四大组件和INTENT意图,用到SQLITE、ORACLE数据库来保存信息。软件管理模块下面只列出一些伪代码GRIDVIEWADAPTERGRIDADAPTERNEWGRIDVIEWADAPTERGRIDVIEWGRIDVIEWNULLINTLAYOUTCLICK0控制层CONTROLLERUI层返回数据模型层MODEL传入数据各种监听显示菜单各种页面数据库共享文件执行操作返回结果用户动作触发IM_SYSSETBACKGROUNDRESOURCERDRAWABLEBTN_BGIM_USERSETBACKGROUNDRESOURCERDRAWABLETOP_BGLISTCLEARLISTMANAGERGETAPPINFOTEXTSETTEXT“系统程序个数为“LISTSIZEIFLAYOUTCLICK20ADAPTERNOTIFYDATASETCHANGEDELSEGRIDADAPTERNOTIFYDATASETCHANGEDIM_SYSSETBACKGROUNDRESOURCERDRAWABLETOP_BGIM_USERSETBACKGROUNDRESOURCERDRAWABLEBTN_BGLISTCLEARLISTMANAGERGETUSERINFOTEXTSETTEXT“用户程序个数为“LISTSIZEIFLAYOUTCLICK20ADAPTERNOTIFYDATASETCHANGEDELSEGRIDADAPTERNOTIFYDATASETCHANGEDBREAKIFCONVERTVIEWNULLCONVERTVIEWGETLAYOUTINFLATERINFLATERLAYOUTAPP_ITEM,NULLHOLDERNEWVIEWHOLDERCONVERTVIEWCONVERTVIEWSETTAGHOLDERELSEHOLDERVIEWHOLDERCONVERTVIEWGETTAGHOLDERICONSETIMAGEDRAWABLELISTGETPOSITIONGETAPPICONHOLDERLABELSETTEXTLISTGETPOSITIONGETAPPLABLEHOLDERPKNSETTEXTLISTGETPOSITIONGETPACKAGENAMERETURNCONVERTVIEWIFALLPACKAGEINFOGETIAPPLICATIONINFOFLAGS手机加速模块THISCONTEXTCONTEXTACTIVITYMANAGERACTIVITYMANAGERCONTEXTGETSYSTEMSERVICECONTEXTACTIVITY_SERVICEPACKAGEMANAGERCONTEXTGETPACKAGEMANAGERALLPACKAGEINFOPACKAGEMANAGERGETINSTALLEDPACKAGESPACKAGEMANAGERGET_ACTIVITIES|PACKAGEMANAGERGET_UNINSTALLED_PACKAGESLISTSYSPACKAGENEWARRAYLISTFORINTI0IUSERPACKAGENEWARRAYLISTFORINTI0ILISTNEWARRAYLISTLISTPACKAGELISTGETSYSPACKAGEAPPINFOAPPNULLFORINTI0ILISTNEWARRAYLISTLISTPACKAGELISTGETUSERPACKAGEAPPINFOAPPNULLFORINTI0I0HASHMAPMAP1NEWHASHMAPMAP1PUT“NAME“,“显示所有“MAP1PUT“IMAGE“,RDRAWABLESHOWALLINFOADDMAP1HASHMAPMAP2NEWHASHMAPMAP2PUT“NAME“,“删除所有“MAP2PUT“IMAGE“,RDRAWABLEMENU_DELETE1INFOADDMAP2HASHMAPMAP3NEWHASHMAPMAP3PUT“NAME“,“后退“MAP3PUT“IMAGE“,RDRAWABLEMENU_RETURNINFOADDMAP3CURRENTIMAGEPOSITIONPOSITIONISSETBACKGROUNDRESOURCEIMAGESPOSITIONIMAGESLENGTHIMAGE_IDIMAGESCURRENTIMAGEPOSITIONIMAGESLENGTHIMAGEVIEWIVNEWIMAGEVIEWCONTEXTIVSETIMAGERESOURCEIMAGESPOSITIONIMAGESLENGTHIVSETADJUSTVIEWBOUNDSTRUEIVSETLAYOUTPARAMSNEWGALLERYLAYOUTPARAMS80,80IVSETPADDING15,10,15,10RETURNIVIMAGESWITCHERISNEWIMAGESWITCHERADDNEWTHISISSETLAYOUTPARAMSNEWIMAGESWITCHERLAYOUTPARAMS80,80RETURNISOPENCONTENTRESOLVERRESOLVERCONTEXTGETCONTENTRESOLVERURIURIURIPARSE“CONTENT/COMANDROIDCONTACTS/RAW_CONTACTS“ARRAYLISTOPERATIONSNEWARRAYLISTCONTENTPROVIDEROPERATIONOP1CONTENTPROVIDEROPERATIONNEWINSERTURIWITHVALUE“ACCOUNT_NAME“,NULLBUILDOPERATIONSADDOP1URIURIPARSE“CONTENT/COMANDROIDCONTACTS/DATA“CONTENTPROVIDEROPERATIONOP2CONTENTPROVIDEROPERATIONNEWINSERTURIWITHVALUEBACKREFERENCE“RAW_CONTACT_ID“,0WITHVALUE“MIMETYPE“,“VNDANDROIDCURSORITEM/NAME“WITHVALUE“DATA2“,USERGETNAMEBUILDOPERATIONSADDOP2CONTENTPROVIDEROPERATIONOP3CONTENTPROVIDEROPERATIONNEWINSERTURIWITHVALUEBACKREFERENCE“RAW_CONTACT_ID“,0WITHVALUE“MIMETYPE“,“VNDANDROIDCURSORITEM/PHONE_V2“WITHVALUE“DATA1“,USERGETMOBILEPHONEWITHVALUE“DATA2“,“2“BUILDOPERATIONSADDOP3TRYRESOLVERAPPLYBATCH“COMANDROIDCONTACTS“,OPERATIONSCATCHEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACECONTENTVALUESVALUES1NEWCONTENTVALUESVALUES1CLEARVALUES1PUT“TOUXIANG“,USERGETTOUXIANGVALUES1PUT“NAME“,USERGETNAMEVALUES1PUT“MOBILEPHONE“,USERGETMOBILEPHONEVALUES1PUT“OFFICEPHONE“,USERGETOFFICEPHONEVALUES1PUT“FAMILYPHONE“,USERGETFAMILYPHONEVALUES1PUT“POSITION“,USERGETPOSITIONVALUES1PUT“COMPANY“,USERGETCOMPANYVALUES1PUT“ADDRESS“,USERGETADDRESSVALUES1PUT“ZIPCODE“,USERGETZIPCODEVALUES1PUT“EMAIL“,USERGETEMAILVALUES1PUT“OTHERCONTACT“,USERGETOTHERCONTACTVALUES1PUT“REMARK“,USERGETREMARKDBINSERT“USER“,NULL,VALUES1CLOSE登陆注册模块SOCKETNEWSOCKETIP,PORTLOGITAG,“客户端连接服务器成功“LOGITAG,“CLIENTSOCKET“SOCKETSTATERUNNINGDISNEWDATAINPUTSTREAMNEWBUFFEREDINPUTSTREAMSOCKETGETINPUTSTREAMDOSNEWDATAOUTPUTSTREAMNEWBUFFEREDOUTPUTSTREAMSOCKETGETOUTPUTSTREAMDOSWRITEINTCOMKLTANHOMEBOSSXINGNETCONFIGREQUEST_REGISTDOSWRITEUTFNAMEDOSWRITEUTFPWDDOSFLUSHRETURNTRUELOGITAG,“LOGINNAME“NAME“,PWD“PWDDOSWRITEINTCONFIGREQUEST_LOGINLOGITAG,“LOGIN1“DOSWRITEUTFNAMELOGITAG,“LOGIN2“DOSWRITEUTFPWDLOGITAG,“LOGIN3“DOSFLUSHLOGITAG,“向服务器端发送登录请求“CATCHIOEXCEPTIONELOGITAG,“向服务器端发送登录请求失败“EPRINTSTACKTRACELOGITAG,“HANDLOGIN得到登录请求结果“TRYIFDISREADBOOLEANTRUE/登陆成功LOGITAG,“登陆成功“LOGITAG,“HANDLOGIN得到登录成功的结果“BASEACTIVITYSENDEMPTYMESSAGECONFIGLOGIN_SUCCESSLOGITAG,“有木有“RETURNTRUECLASSFORNAMEDRIVERCONNDRIVERMANAGERGETCONNECTIONURL,“BRIUP“,“BRIUP“SQLCONNCREATESTATEMENTSYSTEMOUTPRINTLN“HANDLOGIN处理登录请求“STRINGNAMEDISREADUTFSTRINGPWDDISREADUTFSYSTEMOUTPRINTLN“HANDLOGINNAME“NAME“PWD“PWDUSERUSERDBUTILLOGINNAME,PWDIFUSERNULLSYSTEMOUTPRINTLNNAME“登录“DOSWRITEINTCONFIGRESULT_LOGINDOSWRITEBOOLEANTRUE/DOSWRITEUTFUSERGETNAMEDOSWRITEUTFUSERGETPWD/DOSFLUSH/MAPPUTNAME,SOCKETSYSTEMOUTPRINTLN“用户“NAME“登录成功“ELSEDOSWRITEINTCONFIGRESULT_LOGINDOSWRITEBOOLEANFALSEDOSFLUSHSYSTEMOUTPRINTLN“用户“NAME“登录失败“BOOLEANREGISTRESULTDBUTILREGISTNAME,PWDIFREGISTRESULTTRUE/获取最大的ID然后即为刚注册用户的ID/INTIDDBUTILGETMAXID/SYSTEMOUTPRINTLN“HANDREGIST新用户ID“IDDOSWRITEINTCONFIGRESULT_REGIST/注册成功DOSWRITEBOOLEANTRUESYSTEMOUTPRINTLN“用户成功注册到数据库“ELSE/注册失败DOSWRITEINTCONFIGRESULT_REGISTDOSWRITEBOOLEANFALSESYSTEMOUTPRINTLN“用户失败注册到数据库“DOSFLUSH43本章小结本章主要介绍了该系统的设计,系统所要实现的目标,系统结构的设计原则,降低模块之间的耦合性,使模型与控制器和视图相分离,很容易改变应用程序的数据层和业务规则。通过需求分析后,使得系统的功能显得更清晰。总之,该章对各个功能模块的逻辑流程都有了详细的设计,对以后的数据库设计和详细代码设计打下了基础,是程序的继续开发成为了可能。5数据库设计51数据库设计过程描述基于安卓与服务端交互的手机助手软件,我的这个项目,数据库涉及到两个,一个是ANDROID客户端的SQLITE数据库,另一个是在PC端服务器上的ORACLE数据库,这两个数据库存储的内容不同,在ORACLE存储的是从ANDROID客户端注册用户、密码等数据信息,以及实现ANDROID客户端登陆时,在服务器上的ORACLE数据库上查询操作,而ANDROID上SQLITE数据库主要是存储通讯录模块中的联系人信息,这个是写在本地数据库中的。52数据库物理结构设计数据库最终要存储在物理设备上。对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,称为数据库物理结构设计。设计人员必须深入了解给定的DBMS的功能,DBMS通过的环境和工具、硬件环境,特别是存储设备的特征。另一方面也要了解应用环境的具体要求,如各种应用的数据量、处理频率和响应时间等。本系统物理设计采用SQLITE数据库进行数据的存数,以下是本系统数据库设计的字段情况。逻辑结构设计的任务数据库逻辑设计的任务是将概念模型转换成特定的DBMS所支持的数据模型的过程。从ER图所表示的概念模型可以转换成任何一种具体的DBMS所支持的数据模型,这里只介绍ER图如何向关系模型进行转换,一般的逻辑结构设计分为一下三步,如图57所示。初始关系模式设计关系模式规范化模式评价是否改进以DBMS语法描述模式改进概念结构设计物理设计否是图57关系数据库的逻辑结构设计逻辑结构设计的模式概念设计中得到的ER图由实体、属性和联系组成的,而关系数据库逻辑设计的结果是一组关系模式的集合。所以将ER图转换成关系模型实际上就是将实体、属性和联系转换成关系模式。转换要遵循以下原则。一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。一个联系转换成一个关系模式,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。该关系的键有三种情况如果联系为11,则每个实体的键都是关系的候选键;如果联系为1M,则N端实体的键是关系的键;如来联系为NM,则各实体键的组合是关系的键。通讯录表表USER中包含下面12个字段(TOUXIANG,NAME,MOBILEPHONE,OFFICEPHONE,FAMILYPHONE,POSITION,COMPANY,ADDRESS,ZIPCODE,EMAIL,OTHERCONTACT,REMARK)。具体设计如下表51所示表51USER数据表INDEXNAMETYPENOTNULL1TOUXIANGINTEGERYES2NAMEVARCHAR20YES4MOBILEPHONEVARCHAR20YES5OFFICEPHONEVARCHAR20YES6FAMILYPHONEVARCHAR20YES7POSITIONVARCHAR20YES8COMPANYVARCHAR20YES9ZIPCODEVARCHAR20YES10EMAILVARCHAR20YES11OTHERCONTACTVARCHAR20YES12REMARKVARCHAR20YES用户信息表表USER_ID,该表是存放在服务器上的ORACLE数据库中,主要包含下面2个字段(USER_NAME,PWD),其具体设计如表52所示。表52用户信息表NAMETYPESIZENOTNULLUSER_NAMEVARCHAR2020YESPWDVARCHAR2020YES53数据库的实施数据库实施是指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。数据库的实施主要包括建立实际数据库结构、装入数据、应用程序编码与调试、数据库试运行和整理文档。执行代码控制数据库的增、删、改、查,具体添加数据并查询出结果,通过代码的方式往数据库中装入数据,并读取出来显示到界面上,观察显示的数据和装入到数据库中的数据是否一致,来测试数据库是否能完美运行。测试结果是在数据库方面没有大的问题,能够进行正常的增、删、改、查,这样数据库设计也算是告一段落了。54本章小结本章主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论