基于Android的中医信息处理系统.doc

上传人:精*** 文档编号:839374 上传时间:2023-09-08 格式:DOC 页数:90 大小:2.94MB
下载 相关 举报
基于Android的中医信息处理系统.doc_第1页
第1页 / 共90页
基于Android的中医信息处理系统.doc_第2页
第2页 / 共90页
基于Android的中医信息处理系统.doc_第3页
第3页 / 共90页
基于Android的中医信息处理系统.doc_第4页
第4页 / 共90页
基于Android的中医信息处理系统.doc_第5页
第5页 / 共90页
点击查看更多>>
资源描述

1、南通大学毕业设计(论文)摘 要随着智能手机与移动互联网的迅速发展,Android系统应运而生,为我们的学习与生活带来了极大的便利;同时,近年来中医受到越来越广泛的关注,韩国“中医”申遗,更引发了民间弘扬中医高潮。通过对目前已有的医疗系统进行调研,开发出以Android平台为用户终端的中医信息处理系统,并按模块化设计思想将系统划分为两个子系统Android客户端子系统和服务器端子系统。主要工作体现在下面几个方面:1. 详细阐述了该系统实现有关功能的相关技术、设计思想以及系统架构。2. 详细地分析了Android子系统采用目前最流行的Android开发技术,通过Android终端与后台计算机系统进

2、行数据交换,从而实现系统的用户注册、检测身体状况、查看历史记录、查看小贴士等功能。3. 分析了服务器端运用的Web开发技术实现了中医注册与登录、在线诊断、查看反馈等功能。对如何实现系统功能做了详尽阐述,给出了数据库详细设计以及系统的核心代码、测试用例。关键词:移动互联网,Android,中医,软件工程ABSTRACT With the rapid development of intelligent mobile phone and Mobile Internet, Android system emerge as the times require, which has brought gr

3、eat convenience to our study and life; At the same time, in recent years, Chinese Medicine has attracted more and more attention, whats more, Koreas application of cultural heritage for traditional triggered civil climax of carrying forward Chinese Medicine. According to the research on current medi

4、cal system, Chinese Medicine information processing system developed for the user terminal in Android platform, and based on the idea of modular design, the system is divided into two subsystems - Android client system and server terminal system. The main work is reflected in the following aspects:

5、1. Describes in detail the system regarding the function of the related technology, design idea and the system architecture. 2. A detailed analysis of the Android system used at present the most popular Android development technology, through the background data exchange between the Android terminal

6、 and the computer system, thus realizing the functions of user registration, testing physical conditions, looking at the historical record, seeing Tips and so on. 3. Analysis of the server by using Web development technology to realize the functions of Chinese doctors registration, login, on-line di

7、agnosis, view feedback and so on. On how to realize the system function elaborate, gives the detailed design of the database and the core code, test case of the system.Key words: Mobile Internet,Android,Chinese Medicine,Software Engineering目 录摘 要IABSTRACTII目 录III1绪论11.1当前中医理论现状与发展趋势11.2研究本课题的意义11.3本

8、文所做的工作22实现技术32.1Java技术的特点32.1.1Java的起源32.1.2Java语言的优势32.2Android技术概论52.2.1Android平台52.2.2当前Android流行原因62.2.3axis2技术简介72.3Java Web技术介绍102.3.1Java框架技术102.3.2SSH框架介绍112.3.3前台技术介绍152.4开发方法的选择162.4.1增量过程模型162.4.2快速应用过程模型172.5开发环境介绍192.5.1简介MyEclipse192.5.2MySQL数据库192.5.3Tomcat简介202.5.4WI-FI的建立213系统需求分析22

9、3.1可行性研究223.1.1技术可行性分析223.1.2经济可行性分析223.1.3运行可行性分析223.2系统设计目标与规格说明233.2.1系统概貌233.2.2功能需求233.2.3性能需求243.2.4运行需求253.2.5扩充需求253.3系统用例分析263.3.1系统基本用例263.3.2系统业务逻辑描述284系统总体设计294.1系统结构设计294.1.1系统总体布局方案294.1.2代码结构设计304.2子系统划分304.2.1Android客户端子系统304.2.2浏览器端子系统374.3数据库设计414.3.1数据字典414.3.2数据库概念设计444.3.3数据库逻辑设

10、计465系统详细设计与实现485.1Android客户端功能模块设计485.1.1*.xml文件的部分配置485.1.2客户端连接数据库模块525.1.3登录界面模块535.1.4注册界面模块545.1.5查找信息功能模块555.1.6拍照功能模块585.2Web端功能模块设计615.2.1医生注册子模块625.2.2医生登录子模块675.2.3查看用户子模块685.2.4今日诊断子模块705.2.5历史记录子模块746系统的单元测试756.1Android客户端测试756.1.1注册用户测试756.1.2登录验证测试756.1.3选择医生测试766.1.4拍照测试776.1.5提交信息测试7

11、76.1.6获取历史记录测试786.1.7删除历史记录测试786.1.8修改历史记录测试796.1.9获取医生建议测试796.1.10根据医生建议提交反馈测试806.1.11获取生活常识测试806.2Web端单元测试806.2.1医生注册测试806.2.2医生登录测试816.2.3功能测试827总结与展望84参考文献85致 谢86861 绪论1.1 当前中医理论现状与发展趋势中医药现代化是国家中长期科技发展规划中具有战略意义的研究课题, 其目标之一就是要逐步建立现代化中医药科学技术研究方法体系, 包括构建现代中医药 辨证论治 创新体系和临床常用智能化、信息化诊疗技术。其中的一个重要方面就是现代

12、中医诊断的信息化,中医信息处理系统的构建适应医学的发展趋势。随着网络的普及、网速的提升、远程教育的开展和电脑的家庭化,信息技术的飞速发展,预计2-3年的时间,远程医疗将是病人的首选, 中医信息处理系统将将占据医学资源的重要的一席之地。目前, 在铁路、电力、勘测、教育、物流等很多领域, 都已经出现了专用的行业掌上电脑, 但是在中医临床与研究领域,至今还没见到相关报道。可以预见, 随着信息技术的发展和中医行业的与时俱进, 中医诊疗信息系统将朝着智能化、小型化、网络化、海量存储的方向迈进, 中医药这门古老的学科一定能焕发出新的夺目光芒, 为保护全人类的身体健康、提高人类的生存质量作出更大贡献。1.2

13、 研究本课题的意义随着技术的发展,中医信息化的趋势越来越明显。然而计算机技术在中医领域的应用还不够深入和广泛,现有的各种中医诊疗信息系统还存在种种局限, 主要表现在如下几个方面: 1.成本较高, 难以普及。由于现有的各种中医诊疗信息系统大多基于X86体系结构的PC兼容机, 若要推广应用, 须为每位就诊用户配备PC台式机或笔记本电脑,成本较高,不利于成果的普及和推广,而且大多数功能不是必需的, 造成较大浪费。2.操作不便。台式机或笔记本电脑一般依靠键盘实现文字输入,没有手写输入功能, 且操作时须借助桌椅, 难以实现站立或行走时操作,这对于用户而言很不方便。由于以上不足,广大寻求中医理疗养生的用户

14、迫切需要一种体积小、容量大、耗电省、成本低、操作方便的信息处理工具来弥补这些不足。而Android平台上的程序以其小巧的体型、强劲的性能,无疑是解决上述问题的首选方案。信息处理平台能最大程度上的收集诊断信息,平台能将所有数据存储到中心数据库,单凭个人或单个机构的力量是难以完成的,凡参与者都有采集数据的义务和免费享受资源的权利。因此,需要有一个平台提供资源汇集交流的场所,协调各中医药院校、研究所和其他有关机构,及时有效的进行数据网络传输。平台可以改善医患关系。用户可以在Android手机客户端注册后使用系统,根据需要自由的选择实名认证的医师,在跟踪采集到中医信息提交后,可以获得医师给出的诊断结果

15、、建议措施和药物处方。从而实现了利用最少的投入与最便捷的方式获得与去医院同样的的资源,从一定意义上说有利于缓解医疗资源紧张问题。中医诊断有无损、便廉、有效等优势,可大幅减少个人采集的误差,而且病人的电子病例可以很好的保存和利用。1.3 本文所做的工作 1.查阅了相关书籍及资料,深入了解Java语法、Web编程、Android开发、数据库Mysql以及jQuery等技术。为开发该系统做了技术性的准备。 2.对中医信息处理系统进行了需求分析和系统分析,分析了面向对象的系统开发方法,完成了基于Android的中医信息处理系统的体系结构设计。 3.根据前面对中医信息处理系统的分析和体系结构设计,以及对

16、系统开发技术和工具的研究完成初期准备,进行了系统界面前台设计及一部分代码的编写。1) 应用Mysql5.0作为数据库,基于Windows平台、Android平台和Internet Explore 6.0初步实现了中医信息处理系统实例。2) 中期进行了业务功能的修改和完善,并完成了项目的测试。对中医信息处理系统的各个功能模块进行介绍,并以截图的方式,展现给用户,以便用户能很好的了解本系统。3) 最后根据所做系统及过程中收集的资料,完成毕业论文。2 实现技术1122.1 Java技术的特点2.1.1 Java的起源Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Micro

17、systems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同

18、时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2.1.2 Java语言的优势1.简单与C+等语言相比较,语法上Java是简单的。Java提供了垃圾回收机制。以往C+的开发中,最容易出错误的地方便是内存管理,申请的内存用完以后必须释放,否则可使用的内存资源越来越少,直至耗尽系统资源而造成死机。而Java系统中,你可以任意申请内存,Java系统会在适当的时候自动释放无用的内存资源。这个机制叫做“垃圾回收”,节约了许多调试错误的时间。 2.跨平台“一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。随着Linux的持续增长以

19、及Mac OS X完全支持Java技术,跨平台的特性变得越来越有分量。由于Java跨平台,Java API自然也是平台统一的。对程序员而言,没有比统一的API函数能够让他们更欣慰的了。我们拿Java API与C+的类库相比便可以知道它的可贵之处。3.在学术界获得了强有力的支持由于免费、跨平台、Java语言本身技术先进,在高校中,Java 已经成为许多学科研究、课程和计算的首选语言,用Java做上机作业,一般都是鼓励的。据我所知,北大、清华许多院系的研究生入学考试都可以用Java语言答题。实际上,用Java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,可以把注意力集中在算法等核心部分,

20、从而获得更高分数。4.企业应用的成熟平台Java技术的企业应用旨在提升企业竞争力,所以Java技术受到了企业的欣赏,市场份额是同类技术中最大的。同时,Java开放标准,所以供应商众多。市面上有许多的应用服务器、工具与构件可以选择,从高端的BEA WebLogic、IBM WebSphere等商业软件,到Tomcat、JBoss等开源的免费工具,一应俱全。5.开源组织或者非盈利机构的支持Java世界中,开源组织与非盈利机构发挥到了极致,许多出色的工具都出自它们之手。比如JUnit、Cactus、Tomcat、Struts、JBoss、 Eclipse、ANT、Xerces、Hibernate、A

21、xis、AspectJ等等,许多工具还会出现在我们的咖啡馆中,扮演重要的角色。6.无线应用这是Java技术目前最活跃的另一个领域,旨在提供更多、更方便的个性化服务的Java手机应用。未来几年内,势必将出现移动通讯运营商和移动设备应用软件的巨大商机和激烈竞争,并且该趋势很可能与电子政务、电子商务等其他发展相互影响。Java在手机市场的专有性和Java本身的开放性和标准性,使得越来越多的企业加入了Java阵营。7.开放的Java社团JCP(Java Community Process)是一个让Java出名的功臣。JCP创造了一个开放型论坛,让同好在此交换意见,探索、定义新的平台,群策群力。Java

22、欢迎竞争,因为只有这样才能最大限度地提高领域内的技术,这点与对手微软.Net技术大相径庭。在Java的舞台上有很多演员,任何人都可以参与到JCP的过程中去,挑战自己的影响力。从而,你可以发现Java世界中新的名词层出不穷,远远走在规范之前。而在微软.Net技术的舞台上,你只能看到一个演员,那就是微软自己。 8.免费Sun在Java上的收益不大,远远比不过垄断Java应用服务器技术的IBM和BEA公司,似乎有替别人做嫁衣之嫌。对此,Sun董事长、总裁兼首席执行官Scott McNealy是这样解释的:“Sun并没有用Java赚钱,这就像使用英语不用上税一样,Sun并不通过Java本身来盈利,而是

23、把Java应用到了业务中。”2.2 Android技术概论2.2.1 Android平台 1.系统架构Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在Android中,开发者可以使用Jav

24、a作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha

25、、dojo、mobl、PhoneGap等等都已经支持Android开发。而在Android系统底层方面,Android使用C/C+作为开发语言。2.应用程序(部分)早期的Android应用程序开发,通常通过Android SDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。例如开发者可以通过Android NDK(Android Native开发包)使用C语言或者C+语言来作为编程语言开发应用程序。同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的Visual Basic语言。此外,谷歌公司还推出了

26、Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。3.Java开发方面Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。 Android结构其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗(Windows),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序

27、叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(Stopped),甚至被系统清除(Kill)。View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget

28、。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册

29、View.OnClickListener。另外还有BitMap等同于J2ME的Image。4.C/C+开发方面早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了Android NDK,NDK允许开发者使用C/C+作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C+在Android开发中的希望。但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UI API,当前版

30、本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。2.2.2 当前Android流行原因 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。 2011年11月谷歌对Android Market上的应用程序进行了大清理,据统计,此次共清理了约18万个应用程序,包括流氓应用、病毒软件、侵犯版权、低质量和滥竽充数的各种程序,谷歌将这一系列应用删除后,使得

31、Android市场中的优质应用程序总数到31.5万。 2011年11月20日,谷歌宣布启动了Android Market应用审核、取缔、清扫行为,定期对电子市场上存在的不合格、低质量、违法恶意的应用程序进行清理。2.2.3 axis2技术简介 Axis2是下一代 Apache Axis。Axis2 虽然由 Axis 1.x 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构。Axis2 基于新的体系结构进行了全新编写,而且没有采用 Axis 1.x 的常用代码。支持开发 Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 We

32、b 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。Apache Axis2 是Axis的后续版本,是新一代的SOAP引擎。其主要特点有:1. 采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。2. 支持不同的消息交换模式。目前Axis2支持三种模式:In-Only、Robust-In和In-Out。In-Only消息交换模式只有SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式

33、总是存在SOAP请求和应答。3. 提供阻塞和非阻塞客户端 API。4. 支持内置的 Web服务寻址 (WS-Addressing) 。5. 灵活的数据绑定,可以选择直接使用 AXIOM,使用与原来的 Axis 相似的简单数据绑定方,或使用 XMLBeans、JiBX 或 JAXB 2.0 等专用数据绑定框架。6. 新的部署模型,支持热部署。7. 支持HTTP,SMTP,JMS,TCP传输协议。8. 支持REST (Representational State Transfer)。2.2.4 Android组件介绍Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(

34、Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。1. Activity Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Butt

35、on、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。 一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。 当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通

36、过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,应为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。2. ServiceService 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲播放并

37、没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。开启service有两种方式:(1) Context.startService():Service会经历onCreate - onStart(如果Service还没

38、有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次 );stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。 注意,多次调用Context.startservice()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Conte

39、xt.stopService()或者stopSelf(),他都会被停止。补充说明:传递给startService()的Intent对象会传递给onStart()方法。调用顺序为:onCreate - onStart(可多次调用) - onDestroy。(2) Context.bindService():Service会经历onCreate() - onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context

40、退出了,Srevice就会调用onUnbind - onDestroyed相应退出,所谓绑定在一起就共存亡了 。 3. BroadcastReceiver在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastR

41、eceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcast

42、s广播给其他应用程序。注册BroadcastReceiver有两种方式:(1)在AndroidManifest.xml进行注册。这种方法有一个特点即使你的应用程序已经关闭了,但这个BroadcastReceiver依然会接受广播出来的对象,也就是说无论你这个应用程序时开还是关都属于活动状态都可以接受到广播的事件;(2)在代码中注册广播。第一种俗称静态注册,第二种俗称动态注册,这两种注册BroadcastReceiver的区别:动态注册较静态注册灵活。实验证明:当静态注册一个BroadcastReceiver时,不论应用程序是启动与否。都可以接受对应的广播。动态注册的时候,如果不执行unregi

43、sterReceiver();方法取消注册,跟静态是一样的。但是如果执行该方法,当执行过以后,就不能接受广播了。4. Content ProviderContent Provider 是Android提供的第三方应用数据的访问方案。在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的。Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生ContentProvider类, 封装成一枚Content Provider,

44、每个Content Provider都用一个uri作为独立的标识,形如:content:/com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST 更为灵活。和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给你id的uri你也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。另外,Content Provider不和REST一样只有uri可用,还可以接受Projection,Selection,OrderBy等参数,这样,就可以像数据库那样进行投影,选择和排序。查询到的结果,以Cursor(参见:re

45、ference/android/database/Cursor.html )的形式进行返回,调用者可以移动Cursor来访问各列的数据。Content Provider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。Content Provider内部,常用数据库来实现,Android提供了强大的Sqlite支持,但很多时候,你也可以封装文件或其他混合的数据。在Android中,ContentResolver是用来发起Content Provider的定位和访问的。不过它仅提供了同步访问的Content Pro

46、vider的接口。但通常,Content Provider需要访问的可能是数据库等大数据源,效率上不足够快,会导致调用线程的拥塞。因此Android提供了一个AsyncQueryHandler(参见:reference/android/content/AsyncQueryHandler.html),帮助进行异步访问Content Provider。在各大组件中,Service和Content Provider都是那种需要持续访问的。Service如果是一个耗时的场景,往往会提供异步访问的接口,而Content Provider不论效率如何,都提供的是约定的同步访问接口。2.3 Java Web

47、技术介绍java框架跟建筑中的框架式结构是一样的。当然是在遵守框架的协议上开发业务。好的框架都是松耦合的,易配置的。常用的有struts、spring、hibernate、JBoss、ANT等。2.3.1 Java框架技术框架,即framework.其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。因为软件系统发展到今天已经很复杂了,特别是服务

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922