基于android平台的uc浏览器开发与实现_第1页
基于android平台的uc浏览器开发与实现_第2页
基于android平台的uc浏览器开发与实现_第3页
基于android平台的uc浏览器开发与实现_第4页
基于android平台的uc浏览器开发与实现_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

基于ANDROID的浏览器的软件的设计与开发摘要随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机能够随时随地地查询互联网所提供的服务,一种高效的方法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网络以及互联网访问相关资源信息。因此,智能手机应用软件及其需要的服务将有广阔的发展前景。浏览器作为PC端和移动端的流量重要入口,已经成为国内各互联网公司必争领域,本课题为其设计一个基于ANDROID平台的网页浏览器软件,为用户提供方便快捷的页面浏览体验,本论文首先介绍系统的开发背景和意义,接着详细介绍系统设计以及实现的过程,最后介绍了系统测试和本软件的测试用例以及总结了本次毕业设计整个过程。关键词ANDROID手机SQLITE浏览器RESEARCHANDDESIGNBASEDONANDROIDWEBBROWSERABSTRACTWITHTHERAPIDPROLIFERATIONOFSMARTPHONES,SMARTPHONEOPERATINGSYSTEMMARKETBURGEONEDINORDERTOMAKESMARTPHONESCANCHECKTHEINTERNETANYTIME,ANYWHERESERVICEPROVIDED,ANEFFICIENTMETHODISTOEXPANDTHEAPPLICATIONSYSTEMFUNCTIONSTOTHEMOBILETERMINAL,ALLOWINGTHEPHONETOACCESSINFORMATIONVIATHEMOBILENETWORKRESOURCESANDTHEINTERNETTHEREFORE,SMARTPHONEAPPLICATIONSANDSERVICESTHEYNEEDTOHAVEBROADPROSPECTSFORDEVELOPMENTPCANDBROWSERASANIMPORTANTTRAFFICMOVINGSIDEENTRANCE,HASBECOMETHEDOMESTICINTERNETCOMPANIESWILLCOMPETEINTHEFIELD,THESUBJECTOFANANDROIDBASEDPLATFORMFORTHEDESIGNOFWEBBROWSERSOFTWARE,TOPROVIDEUSERSWITHCONVENIENTPAGEBROWSINGEXPERIENCETHISPAPERINTRODUCESTHEBACKGROUNDANDSIGNIFICANCEOFTHEDEVELOPMENTOFTHESYSTEM,FOLLOWEDBYDETAILEDSYSTEMDESIGNANDIMPLEMENTATIONPROCESS,ANDFINALLYINTRODUCEDTHESYSTEMTESTINGANDTESTTHISSOFTWAREANDSUMMARIZESTHEWHOLEPROCESSOFTHISGRADUATIONPROJECTKEYWORDSANDROIDPHONESQLITEBROWSER目录摘要IRESEARCHANDDESIGNBASEDONANDROIDWEBBROWSERIIABSTRACTII前言11绪论211本课题研究背景和意义212课题研究现状213本论文的组织结构32关键技术介绍521什么是ANDROID522ANDROID系统架构简介5211应用程序APPLICATIONS6222应用程序框架APPLICATIONFRAMEWORK6233ANDROID运行时RUNTIME6234系统库LIBRARIES6235LINUX723SQLITE数据库73网页浏览器分析831软件分析概述832网页浏览器分析833系统需求分析94网页浏览器详细设计1141系统设计原则1142系统流程设计1143文件结构设计135网页浏览器实现1551开发环境搭建1552欢迎界面实现1753浏览器主界面实现1954浏览界面模块实现2155下载模块实现2356浏览历史记录286网页浏览器测试3161软件测试3162软件测试的目的3263测试用例与总结3264程序调试3465程序的测试34651测试的重要性及目的34652测试的步骤35653测试的主要内容3566系统的特点和优点3767系统存在的不足和改进方案377总结及展望3971总结3972展望40参考文献41致谢42英文翻译43原文43译文51前言随着移动平台的崛起,越来越多的传统PC软件被移植到移动平台,比如IPAD,IPHONE,ANDROID等智能终端设备,在这些平台中,ANDROID占领着最大的市场份额,所以为ANDROID用户开发满足日常使用的软件成为了现在的一大热门。在现在移动平台爆发的时代,传统的PC软件没有办法满足用户了,如果说PC的软件只能在固定的地点使用,那么现在的移动平台软件就是能够无时无刻地使用,想使用它,只需要掏出自己的手机就可以立即使用,随时随地得到最新的资讯,不再被传统PC禁锢在办公室或家中,那些必须有电源的地方了。本设计与传统的PC软件有很大的优势,与现在的ANDROID中其他软件相比,也具有一定的优势。现在ANDROID软件使用风格可谓是千变万化,有很多工具软件无法满足用户的日常需要,还有很多软件由于使用风格不一,使得很多用户无法适应,把一些使用率很高的日常软件的风格统一,并且把它们的功能集中在一个软件平台中,就能使上述问题得以解决,不仅使使用风格得到了统一,也使得用户得到一站式的日常工具使用体验,并且可以使这些软件中的功能得到互补,相互共享资源,为本来硬件条件就不是很好的手机提供一个能够轻松运行的软件。本软件的优势体现1随时随地记录使用,不受地点、移动网络限制;2统一ANDROID平台软件的设计和使用风格;3操作方便快捷、系统相应速度快;4数据永久性保存,随时可以翻阅查看。1绪论11本课题研究背景和意义智能手机SMARTPHONE是指“像个人电脑一样具有独立的操作系统可以由用户自行安装软件、游戏等第三方服务商提供的程序通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称”。目前,全球多数手机厂商都有智能手机产品,而韩国三星、芬兰诺基亚、美国苹果、加拿大RIM、黑莓、美国摩托罗拉、中国台湾宏达HTC都是智能机中的佼佼者1。智能手机具有五大特点1、具备了无线接入互联网的能力,即要有GSM的支持网络下的GPRS或者是CDMA网络支持下的CDMA1X或3G网络。2人性化,可以根据个人需要扩展机器的功能。3、它是具有开放性的操作系统,还可以安装非常多的应用程序使得智能手机的功能可以得到无限的扩展。4、具有PDA功能,其中包括个人信息管理、日程记事、任务安排、多媒体应用、浏览网页等。5扩展性能强,第三方软件支持多2。ANDROID是一种以LINUX为基础的开放源码操作系统主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。ANDROID操作系统最初由ANDYRUBIN开发,最初主要支持手机。2005年由GOOGLE收购注资并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。ANDROID的主要竞争对手是苹果公司的IOS以及RIM的BLACKBERRYOS。2011年第一季度,ANDROID在全球的市场份额首次超过塞班系统,跃居全球第一。2014年2月数据,ANDROID占据全球智能手机操作系统市场785的份额,中国市场占有率为9043。12课题研究现状ANDROID是GOOGLE开发的基于LINUX平台的开源手机操作系统。它包括操作系统、用户界面和应用程序移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。GOOGLE与开放手机联盟合作开发了ANDROID,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和TMOBILE在内的30多家技术和无线应用的领军企业组成。GOOGLE通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。作为谷歌企业战略的重要组成部分,ANDROID将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于ANDROID的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,ANDROID将补充,而不会替代谷歌长期以来奉行的移动发展战略通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。近两年来由于ANDROID操作系统具有良好的开放性和平台开的便捷性等特点,采用ANDROID操作系统的手机越来越受到人们的青睐。同时ANDROID操作系统在智能手机领域中所扮演的角色也越来越重要。考虑到ANDROID广阔的市场前景,本文将ANDROID操作系统作为课题的研究对象。13本论文的组织结构本论文共分七章第1章绪论,这一章主要是对本次毕业设计所开发的系统进行问题的定义,通过问题的定义明白需要做些什么,并且对开发内容简单的介绍了一下;同时本章还对课题的研究背景与研究意义进行分析,对开发本系统的可行性分析还有对论文各章内容的简要介绍。第2章系统理论知识,对涉及到的理论知识和用到的开发工具做相关阐述。第3章系统分析,主要介绍了本系统需要实现的功能模块和本系统的数据库设计、页面的详细设计等。第4章系统设计,主要介绍了本系统的整个设计过程、设计思路以及设计中应该注意的问题。第5章系统实现,主要介绍了本设计的实现环境和实现,详细分析了系统各个核心模块的实现过程、实现方法和实现结果。第6章系统测试与分析,详细介绍了软件测试在整个软件开发环节的重要性和必要性,也分析了软件测试的各种目的,周给出了本系统的测试过程与结论最后总结、致谢、参考文献。2关键技术介绍21什么是ANDROIDANDROID是首个基于LINUX平台的开源手机操作系统,该平台由操作系统中间件,用户界面和应用软件组成号称是首个为移动终端打造的真正开放和完整的软件。ANDROID一词的本义指“机器人”,2003年美国有一家以ANDROID为名的小公司成立,开发手机平台。GOOGLE收购ANDROID之后,于07年11月5日发布了开源的ANDROID平台一款包括操作系统(基于LINUX内核)、中间件和关键应用的手机平台,并组建了开放手机联盟OPENHANDSETALLIANCE,包括GOOGLE、中国移动、TMOBILE、宏达、高通、摩托罗拉等领军企业。2008年9月22日,美国运营商TMOBILEUSA在纽约正式发布第一款GOOGLE手机TMOBILEG1。该款手机为宏达电制造,是世界上第一部使用ANDROID操作系统的手机。22ANDROID系统架构简介从软件分层的角度来看,ANDROID平台由应用程序,应用程序框架,ANDROID运行时,库以及LINUX内核共5部分构成。如图21所示。图21整体结构211应用程序APPLICATIONSANDROID平台默认包含了一系列核心应用程序,包括电子邮件、短信、日历、地图、浏览器、联系人管理程序等,这些程序都以JAVA程序语言编写,你也可以用自己便携的应用程序来替换ANDROID提供的应用程序,这个替换的机制实际是由应用程序框架来保证的。如图22所示。图22应用层222应用程序框架APPLICATIONFRAMEWORK应用程序框架是我们进行ANDROID开发的基础应用程序框架层包含了视图系统,内容提供器,窗口管理器,活动管理器,通知管理器,位置管理器,资源管理器,电话管理器和包管理器9大部分。如图23所示。图23中间件层233ANDROID运行时RUNTIMEANDROID虽然采取JAVA程序语言来编写应用程序,但不使用J2ME执行JAVA程序,而是用ANDROID自有的ANDROID运行时(RUNTIME)ANDROID运行时包括核心库和DALVIK虚拟机两部分。如图24所示。图24核心库,虚拟机234系统库LIBRARIES应用程序框架是贴近于应用程序的软件组件服务,而更底层则是ANDROID的函数库,这一部分是应用程序框架的支撑,其架构如图25所示。图25系统库235LINUXANDROID平台是开放,采用LINUX内核则是ANDROID平台开放性的基础。ANDROID平台中的操作系统采用了LINUX26版的内核,它包括了显示驱动、摄像头驱动、FLASH内存驱动、BINDER(IPC)驱动、键盘驱动、WIFI驱动、AUDIO驱动以及电源管理部分。LINUX内核层为我们在软件层和硬件层建立了一个抽象层,使得应用程序开发人员无需关心硬件细节。对于手机的开发商而言,如果想要ANDROID平台运行到自己的硬件平台上就必须通过对LINUX层进行修改,通常要做的工作就是为自己的硬件便携驱动程序。23SQLITE数据库ANDROID采用SQLITE这个轻量级数据库工具来管理数据SQLITE,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持WINDOWS/LINUX/UNIX等等主流的操作系统,同时能够跟很多程序语言相结合,比如TCL、C、PHP、JAVA等,还有ODBC接口,同样比起MYSQL、POSTGRESQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLITE第一个ALPHA版本诞生于2000年5月。至今已经有12个年头,SQLITE也迎来了一个版本SQLITE3已经发布。SQLITE实现了多数的SQL92标准,包括事务,就是代表原子性、一致性、隔离性和持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。多个进程或线程可以同时访问同一个数据而没有问题。可以同时平行读取同一个数据库。但同一时间只能有一个进程或线程进行数据写入;否则会写入失败并得到一个错误信息(或者会自动重试一段时间,而这重试时间的长短是可以设置的)。程序设计者还提供了一个叫做SQLITE3的独立程序用来查询和管理SQLITE数据库文件。SQLITE的用户可以把这个程序当作如何写SQLITE应用程序的示例。3网页浏览器分析本章首先介绍了基于ANDROID的网页浏览器的可行性,确立了开发基础,直接详细阐述了系统各个模块的详细需求分析,接着分析了系统的研究路线和系统的流程设计。31软件分析概述系统分析是在总体规划的指导下,对某个或若干个子系统进行深入仔细地调查研究,确定新系统逻辑功能的过程。这一阶段的主要任务是由系统分析员了解每个业务流程,工作流程,广大用户的需求,运用系统开发理论、开发方法和开发技术设计出一个计算机化的信息系统。例如本软件网页浏览器,首先我们把系统分成主界面、页面浏览模块、历史记录模块和下载模块四大模块。在系统分析中存在很多困难,为了克服困难,做好分析工作,在进行系统分析时应遵循系统分析的原则,这样才能保证分析工作能够顺利进行,系统分析的原则包括逻辑设计与物理设计分开的原则、面向用户的原则和结构化分析的原则。通过实际调查并与相关用户交流后,分析基于ANDROID网页浏览器系统的具体的要求,确定本系统的逻辑功能,以满足用户的各项要求,完成相应的各项功能,提高浏览器的实用水平。在近期目标完成后,该系统应该有很强的扩充性,便于在此基础上进行扩充式开发,为以后的发展及扩充打好基础。该系统采用以抽象和分解为手段,并且采用结构化分析方法进行系统分析,根据实际调查研究,对系统进行自顶向下的逐层分解,逐步细分,逐步求精,建立新系统的逻辑模型,这个逻辑模型将尽可能避免使用计算机术语,让其尽可能的简单化、通俗化,便于设计者和浏览者的沟通与交流经验。结构化分析方法的基本思想是该系统采用结构化分析方法,以抽象和分解为手段,对系统进行自顶向下的逐层分解,逐步细分,逐步求精,从而达到易于理解的目的。32网页浏览器分析浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL指定,文件格式通常为HTML,并由MIME在HTTP协议中指明。随着移动终端和3G智能手机的普及,移动浏览器的发展也变得突飞猛进。未来手机浏览器的蓝图将是具有高速上网性能的强劲内核,保证手机上网的速度和体验;应用开发者们在手机浏览器所搭建的开放平台之上开发丰富应用,用户可以从应用中心中随意的安装和卸载,实现手机浏览器个性化,在不牺牲手机浏览器性能的同时,增强手机浏览器的功能,让手机浏览器成为真正的上网入口和应用承载平台。由此本设计完成一个基于ANDROID平台的移动端网页浏览器也就具有非常大的实际意义和实用价值。33系统需求分析本系统提供了数据浏览器、浏览器数据发送等等功能,通过调查并分析,确认系统要完成以下功能1网址智能补全浏览器地址栏支持网址自动补全功能,减少用户输入,提高用户操作体验。2浏览器浏览模块作为系统核心模块,浏览器浏览模块支持各种网页地址浏览,支持后退、前进以及刷新操作3历史记录与导航浏览器记录用户浏览历史,支持用户浏览历史的查询与删除操作,同时主界提供采用网站入口例如百度、腾讯网等入口4下载模块本浏览器支持文件下载,独立下载模块界面整个系统的整体功能框架如图31所示。图31系统功能框架图4网页浏览器详细设计41系统设计原则浏览器软件设计是确定系统如何建立的过程。良好的软件系统来源于良好的系统设计。系统设计应该提供完整、准确、规范的系统设计文档。在系统设计中,首先应该注意的是设计的统一和准确。设计统一即将系统视为一个有机整体,要求设计具有统一的设计规范和标准。设计准确即设计描述应该力求避免模糊或二义性。此外,在进行系统设计过程中,还应该遵循的主要原则如下。1、适用性原则系统总的目的是保证系统功能目标的实现,即满足客户的需求,是所有应用软件最基本的原则。在满足系统需求的前提下,应该从系统用户角度考虑,使设计的系统操作简单化,易用化。应该以降低系统的成本为目标,避免一味追求技术上的先进而不考察应用效益。没有市场和应用前景的软件项目开发是失败的。而浏览器作为移动端重要入口,其市场价格是非常可观的2、可靠性安全性原则可靠性和安全性是系统重要的需求之一,也是系统设计质量的重要指标。网络科研管理系统工作在网络环境中,对于现在大量存在于网络的病毒、黑客攻击等安全威胁,应该具有一定的防御能力,对于网络带宽和访问量等外界运行环境的变化,应该具有较强的适应能力。只有安全可靠的系统才能发挥其应有的功能。3、可扩展性原则系统的设计应该提供可扩展能力,以满足未来科研工作需求的发展和变化。主要可以采用分布式设计、系统结构模块化设计等技术手段,把系统设计为多个功能相对独立的模块,降低系统的祸合度,提高系统的可扩展性。希望通过ANDROID和地图技术的支持,设计出一个基于ANDROID的网页浏览器系统,设计过程中希望能够从效能、逻辑和稳定性等多方面进行综合考虑,力求最后产品界面能够一目了然,让用户容易上手并且不容易出错。42系统流程设计在设计和开发系统过程中,采用了一些相对比较成熟、安全性较高、运行比较稳定的技术。这些技术贯穿了整个系统的设计与开发过程,是设计和实现各个模块的基础技术,只有运用先进的设计模式和开发技术,才能保证开发工作顺利地进行,才能保证系统设计的合理性和灵活性,才能保证各个功能模块的稳定性。本系统的设计初衷是用户进入系统后,可以看到各种常用的网站导航模块,整个系统的流程图如图41所示。图41系统流程图43文件结构设计在程序开发阶段,首先确定“即ANDROID的网页浏览器”的工程名称为BROWSERAPP,根据程序模块设计的内容,建立BROWSERAPP项目,BROWSERAPP项目,的文件结构如图42所示图42工程结构图为了使代码文件结构更加清晰,BROWSERAPP工程设置了多个命名空间,分别保存了用户界面、数据适配器、常用类库和实体多个包,源代码的名称以及说明如表33所示表41系统代码结构包名称文件名说明COMMMBROWSERAPPACTIVITYSPLASHACTIVITYJAVA闪屏界面视图COMMMBROWSERAPPACTIVITYHOMEACTIVITYJAVA系统主界面视图COMMMBROWSERAPPACTIVITYWEBSITEACTIVITYJAVA网页浏览界面视图COMMMBROWSERAPPACTIVITYHISTORYLISTACTIVITYJAVA浏览历史界面ANDROID的资源文件保存在/RES的子目录中。其中、/RES/ANIM目录中保存的是产生动画效果的XML文件,/RES/DRAWABLE/目录中保存的是图像文件,/RES/VALUES目录中保存的是用来自定义字符串和颜色的文件,/RES/XML目录中保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表34表42资源文件名称及用途资源目录文件名说明BTN_BLUE_SELECTORXMLDRAWABLEBTN_WHITE_SELECTORXML按钮资源文件ACTIVITY_HOMEXML主界面布局文件ACTIVITY_WEBSITEXML页面浏览界面布局文件LAYOUTSTYLESXML样式资源文件COLORSXML颜色资源文件VALUESSTRINGSXML字符串资源文件5网页浏览器实现本章介绍本系统的各个模块的设计和实现。首先在ECLIPSE中配置好ADT和ANDROIDSDK等开发环境,然后新建一个ANDROID项目,项目名为HAIRSTYLE,然后在ANDROID项目中的ANDROIDMANIFESTXML文件中配置本软件需要使用的权限。51开发环境搭建任何事物要运行,都要有它的环境,ANDROID也有它的环境才能够运行,下面介绍ANDROID的开发环境配置。搭建开发环境需要的软件1操作系统WINDOWXP或LINUX2软件包ANDROIDSDKSOFTWAREDEVELOPMENTKITJAVADEVELOPMENTKIT、ADTANDROIDDEVELOOPMENTTOOL)3IDE环境ECLIPSEIDEADTECLIPSE33以上4JDKJAVARUNTIMEENVIRONMENT虚拟机、JDKJAVADEVELOPMENTKIT安装步骤如下第一步安装JAVA虚拟机SUNJAVA6JDK版本。第二步安装ECLIPSE35工具,到官网HTTP/WWWECLIPSEORG/DOWNLOADS/,选择版本下载后进行安装。(如图51)ECLIPSE工具的版本如图51所示图51ECLIPSE工具的版本图第三步安装ANDROIDSDK首先要下载SDK,可以在这个网址下载HTTP/DEVELOPERANDROIDCOM/SDK,选择相应的系统进行安装。SDK下载的地址图如图52所示图52SDK下载的地址图第四步安装ANDROIDADT插件。运行ECLIPSE,选择HELPINSTALLNEWSOFTWARE选择ADD,将会弹出一个【ADDSITE】对话框。【ADDSITE】对话框如图53图53【ADDSITE】对话框图点击OK,选择要安装的软件,占NEXT,然后选择接受协议,直到安装成功,重启ECLIPSE软件,设置ANDROIDSDKHOME,WINDOWREFRENCE。设置ANDROIDSDKHOME界面如图54所示图54设置ANDROIDSDKHOME界面图在SDKLOCATION中输入SDKTOOLS路DANDROIDSOFTWAREANDROIDSDKWINDOWS点击OK,这样ANDROID环境就已经搭建成功了。52欢迎界面实现一般的手机客户端软件启动时都会通过加载一个欢迎界面,该界面主要用来描述本软件的一些相关信息,例如软件名称等。本网页浏览器启动时也通过一个ACTIVITY来加载一个欢迎界面,用户进入该界面后停留一秒钟软件即会自动跳转进入到新闻客户端的主界面里。实现核心代码PUBLICCLASSSPLASHACTIVITYEXTENDSBASEACTIVITYPRIVATEFINALLONGM_DWSPLASHTIME2000PRIVATEBOOLEANM_BPAUSEDFALSEPRIVATEBOOLEANM_BSPLASHACTIVETRUEOVERRIDEPUBLICVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATEIMAGEVIEWIMAGEVIEWNEWIMAGEVIEWTHISIMAGEVIEWSETSCALETYPESCALETYPECENTER_CROPIMAGEVIEWSETIMAGERESOURCERDRAWABLESPLASHSETCONTENTVIEWIMAGEVIEWTHREADTHREADNEWTHREADNEWRUNNABLEOVERRIDEPUBLICVOIDRUNTRYLONGMS0WHILEM_BSPLASHACTIVEFORINTI0IMAPNEWHASHMAPMAPPUT“ITEMIMAGE“,ITEMIMAGESIMAPPUT“ITEMTEXT“,MENUTEXTILSTIMAGEITEMADDMAPSIMPLEADAPTERSAIMAGEITEMSNEWSIMPLEADAPTERTHIS,LSTIMAGEITEM,RLAYOUTGRIDVIEW_ITEM_DETAILMENU,NEWSTRING“ITEMIMAGE“,“ITEMTEXT“,NEWINTRIDITEMIMAGE,RIDITEMTEXTGRDSETADAPTERSAIMAGEITEMSGRDSETSELECTORNEWCOLORDRAWABLECOLORTRANSPARENTGRDSETONITEMCLICKLISTENERNEWITEMCLICKLISTENERLISTVIEW1LISTVIEWFINDVIEWBYIDRIDLISTVIEW1LISTVIEW1SETONITEMCLICKLISTENERNEWONITEMCLICKLISTENEROVERRIDEPUBLICVOIDONITEMCLICKADAPTERVIEWPARENT,VIEWVIEW,INTPOSITION,LONGIDINTENTNEWINTENTHOMEACTIVITYTHIS,WEBSITEACTIVITYCLASSINTENTPUTEXTRA“URL“,LISTGETPOSITIONGETURLSTARTACTIVITYINTENTLISTVIEW1SETONITEMLONGCLICKLISTENERNEWONITEMLONGCLICKLISTENEROVERRIDEPUBLICBOOLEANONITEMLONGCLICKADAPTERVIEWPARENT,VIEWVIEW,INTPOSITION,LONGIDSHOWCONTACTDIALOGPOSITIONRETURNTRUE,具体的实现效果如图56所示图56浏览器模块界面54浏览界面模块实现用户可以在浏览器软件界面输入网页地址后点击“进入”按钮进入到浏览器浏览界面。进入后软件会根据用户输入的网站来请求相关的网页数据,然后显示在界面上。同时本浏览器也支持搜索功能,当系统检测到用户输入的不是一个网网址而是关键字时,系统会自动调用百度搜索引擎搜索相关结果并显示在界面上,非常智能使用。同时浏览界面的下方包括了后退、前进和刷新等功能按钮,用户可以点击后退按钮后退一个页面,也可以点击刷新按钮重新加载一个页面。同时也可以回到主界面。实现核心代码PRIVATEVOIDFINDVIEWBTNGOBUTTONFINDVIEWBYIDRIDBTNGOBTNGOSETTEXT“浏览“BTNGOSETONCLICKLISTENERTHISETADDRESSAUTOCOMPLETETEXTVIEWFINDVIEWBYIDRIDETADDRESSWEBVIEW1WEBVIEWFINDVIEWBYIDRIDWEBVIEW1WEBSETTINGSWEBSETTINGSWEBVIEW1GETSETTINGSWEBSETTINGSSETJAVASCRIPTENABLEDTRUEWEBSETTINGSSETDEFAULTFONTSIZE18WEBSETTINGSSETLOADWITHOVERVIEWMODETRUEWEBVIEW1SETWEBVIEWCLIENTNEWTHEWEBVIEWCLIENTWEBVIEW1SETWEBCHROMECLIENTNEWTHEWEBCHROMECLIENTWEBVIEW1SETDOWNLOADLISTENERNEWMYWEBVIEWDOWNLOADLISTENERETADDRESSSETTEXTURLIVLEFTIMAGEVIEWFINDVIEWBYIDRIDIVLEFTIVRIGHTIMAGEVIEWFINDVIEWBYIDRIDIVRIGHTIVHOMEIMAGEVIEWFINDVIEWBYIDRIDIVHOMEIVREFRESHIMAGEVIEWFINDVIEWBYIDRIDIVREFRESHIVLEFTSETONCLICKLISTENERTHISIVRIGHTSETONCLICKLISTENERTHISIVHOMESETONCLICKLISTENERTHISIVREFRESHSETONCLICKLISTENERTHISIVRIGHTSETIMAGERESOURCERDRAWABLERIGHT2具体的实现效果如图57所示图57浏览界面55下载模块实现本浏览器内置了文件下载功能,用户在页面上点击一个下载地址的时候浏览器会自动启动下载界面,并通过HTTP协议下载用于请求的文件地址。WEBVIEW已经内置了下载,我们只需要实现其DOWNLOADLISTENER接口即可,通过实现该接口监听系统的下载行为,然后在事件触发后跳转进入到我们自己设计的界面完成下载操作。实现核心代码PACKAGECOMMMBROWSERAPPACTIVITYIMPORTJAVAIOFILEOUTPUTSTREAMIMPORTJAVAIOINPUTSTREAMIMPORTJAVAMATHBIGDECIMALIMPORTJAVANETURLIMPORTJAVANETURLCONNECTIONIMPORTANDROIDOSBUNDLEIMPORTANDROIDOSHANDLERIMPORTANDROIDOSMESSAGEIMPORTANDROIDVIEWVIEWIMPORTANDROIDVIEWVIEWONCLICKLISTENERIMPORTANDROIDWIDGETBUTTONIMPORTANDROIDWIDGETLINEARLAYOUTIMPORTANDROIDWIDGETPROGRESSBARIMPORTANDROIDWIDGETTEXTVIEWIMPORTCOMMIEBOUTILSBASEACTIVITYIMPORTCOMMIEBOUTILSFILEUTILSIMPORTCOMMIEBOUTILSHARDWAREHELPERPUBLICCLASSDOWNLOADACTIVITYEXTENDSBASEACTIVITYPRIVATESTRINGFILEPATHPRIVATESTATICFINALINTDOWNLOAD_PREPARE0PRIVATESTATICFINALINTDOWNLOAD_WORK1PRIVATESTATICFINALINTDOWNLOAD_OK2PRIVATESTATICFINALINTDOWNLOAD_ERROR3PRIVATESTATICFINALINTDOWNLOAD_CANCEL4PRIVATEBOOLEANISDOWNLOADINGFALSEPRIVATEINTAPKFILESIZE0PRIVATEINTALREADYDOWNLOADSIZE0PRIVATESTRINGURLPRIVATESTRINGFILENAMEPRIVATEPROGRESSBARPROGRESSBAR1PRIVATEBIGDECIMALBIGDECIMALPRIVATEBUTTONBTNCANCELPRIVATETEXTVIEWTVAPKTOTALSIZEPRIVATETEXTVIEWTVALREADYDOWNLOADSIZEPRIVATELINEARLAYOUTLLOVERRIDEPUBLICVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATETHISSETCONTENTVIEWRLAYOUTACTIVITY_DOWNLOADURLGETINTENTGETSTRINGEXTRA“URL“THISFINDVIEWTHISSETLISTENERTHISINITPRIVATEVOIDFINDVIEWTEXTVIEWTVTOPTITLECENTERTEXTVIEWFINDVIEWBYIDRIDTVTOPTITLECENTERTVTOPTITLECENTERSETTEXT“文件下载“PROGRESSBAR1PROGRESSBARFINDVIEWBYIDRIDPROGRESSBAR1TVAPKTOTALSIZETEXTVIEWFINDVIEWBYIDRIDTVAPKTOTALSIZETVALREADYDOWNLOADSIZETEXTVIEWFINDVIEWBYIDRIDTVALREADYDOWNLOADSIZEBTNCANCELBUTTONFINDVIEWBYIDRIDBTNCANCELLLLINEARLAYOUTFINDVIEWBYIDRIDLLLINEARLAYOUTLAYOUTPARAMSLPARAMSLINEARLAYOUTLAYOUTPARAMSLLGETLAYOUTPARAMSLPARAMSWIDTHHARDWAREHELPERGETDISPLAYSIZETHIS040LLSETLAYOUTPARAMSLPARAMSPRIVATEVOIDSETLISTENERBTNCANCELSETONCLICKLISTENERNEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWVISDOWNLOADINGFALSEFINISHPRIVATEVOIDINITFILEPATHFILEUTILSGETSDCARDROOTPATHFILENAMEURLSUBSTRINGURLLASTINDEXOF“/“1FILEPATHFILEPATHFILENAMETHREADTHREADNEWTHREADNEWRUNNABLEOVERRIDEPUBLICVOIDRUNDOWNLOADFILEURL,FILEPATHTHREADSTARTPRIVATEFINALHANDLERHANDLERNEWHANDLEROVERRIDEPUBLICVOIDHANDLEMESSAGEMESSAGEMSGSWITCHMSGWHATCASEDOWNLOAD_PREPAREALREADYDOWNLOADSIZE0TOASTUTILSHOW“开始下载“BIGDECIMALNEWBIGDECIMALAPKFILESIZE10/1024/1024TVAPKTOTALSIZESETTEXT“/“BIGDECIMALSETSCALE2,BIGDECIMALROUND_HALF_UPTOSTRING“M“PROGRESSBAR1SETMAXAPKFILESIZE/1024BREAKCASEDOWNLOAD_WORKPROGRESSBAR1SETPROGRESSALREADYDOWNLOADSIZE/1024BIGDECIMALNEWBIGDECIMALALREADYDOWNLOADSIZE10/1024/1024TVALREADYDOWNLOADSIZESETTEXTBIGDECIMALSETSCALE2,BIGDECIMALROUND_HALF_UPTOSTRINGBREAKCASEDOWNLOAD_OKISDOWNLOADINGFALSEPROGRESSBAR1SETPROGRESS0TVALREADYDOWNLOADSIZESETTEXT“0“TOASTUTILSHOW“已成功下载到SD卡“FINISHBREAKCASEDOWNLOAD_CANCELTOASTUTILSHOW“下载被取消“PROGRESSBAR1SETPROGRESS0TVALREADYDOWNLOADSIZESETTEXT“0“BREAK/PARAMWHAT/PRIVATEVOIDSENDMESSAGEINTWHATMESSAGEMNEWMESSAGEMWHATWHATHANDLERSENDMESSAGEM/PARAM文件网络地址PARAMSD卡存放位置/PRIVATEVOIDDOWNLOADFILESTRINGURL,STRINGFILEPATHSTRYURLUNEWURLURLURLCONNECTIONCONNUOPENCONNECTIONINPUTSTREAMISCONNGETINPUTSTREAMAPKFILESIZECONNGETCONTENTLENGTH/文件总大小IFAPKFILESIZELISTNULLPRIVATEFINALCONTEXTCONTEXTPRIVATELAYOUTINFLATERINFATERNULLPUBLICHISTORYADAPTERCONTEXTCONTEXT,LISTLISTTHISINFATERLAYOUTINFLATERFROMCONTEXTTHISLISTLISTTHISCONTEXTCONTEXTOVERRIDEPUBLICINTGETCOUNTRETURNLISTSIZEOVERRIDEPUBLICOBJECTGETITEMINTPOSITIONRETURNNULLOVERRIDEPUBLICLONGGETITEMIDINTPOSITIONRETURN0OVERRIDEPUBLICVIEWGETVIEWFINALINTPOSITION,VIEWCONVERTVIEW,VIEWGROUPPARENTVIEWHOLDERHOLDERNULLIFCONVERTVIEWNULLHOLDERNEWVIEWHOLDERCONVERTVIEWINFATERINFLATERLAYOUTLISTVIEW_ITEM_COMMON,NULLHOLDERTEXTVIEW1TEXTVIEWCONVERTVIEWFINDVIEWBYIDRIDTEXTVIEW1HOLDERTEXTVIEW2TEXTVIEWCONVERTVIEWFINDVIEWBYIDRIDTEXTVIEW2HOLDERTEXTVIEW1SETTEXTSIZE16HOLDERTEXTVIEW2SETTEXTSIZE14CONVERTVIEWSETTAGHOLDERELSEHOLDERVIEWHOLDERCONVERTVIEWGETTAGIFLISTGETPOSITIONGETURLLENGTH30HOLDERTEXTVIEW1SETTEXTLISTGETPOSITIONGETURLSUBSTRING0,29“ELSEHOLDERTEXTVIEW1SETTEXTLISTGETPOSITIONGETURLIFLISTGETPOSITIONGETTITLENULLIFLISTGETPOSITIONGETTITLELENGTH30HOLDERTEXTVIEW2SETTEXTLISTGETPOSITIONGETTITLESUBSTRING0,29“ELSEHOLDERTEXTVIEW2SETTEXTLISTGETPOSITIONGETTITLEHOLDERTEXTVIEW2SETVISIBILITYVIEWVISIBLEELSEHOLDERTEXTVIEW2SETVISIBILITYVIEWGONERETURNCONVERTVIEWCLASSVIEWHOLDERPRIVATETEXTVIEWTEXTVIEW1PRIVATETEXTVIEWTEXTVIEW26网页浏览器测试61软件测试软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括1认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感2以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定3测试工作枯燥无味,不能引起人们的兴趣4测试工作是艰苦而细致的工作5对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。62软件测试的目的如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。在谈到软件测试时,许多人都引用GRENFORDJMYERS在THEARTOFSOFTWARETESTING一书中的观点1软件测试是为了发现错误而执行程序的过程2测试是为了证明程序有错,而不是证明程序无错误3一个好的测试用例是在于它能发现至今未发现的错误4一个成功的测试是发现了至今未发现的错误的测试。这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错

温馨提示

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

评论

0/150

提交评论