基于安卓android的文本阅读器毕业论文_第1页
基于安卓android的文本阅读器毕业论文_第2页
基于安卓android的文本阅读器毕业论文_第3页
基于安卓android的文本阅读器毕业论文_第4页
基于安卓android的文本阅读器毕业论文_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

目 录摘要1Abstract11 绪论21.1 设计背景和意义21.2 主要工作和方法21.3 本文结构32 相关技术介绍32.1 Android系统32.1.1 Android特点32.1.2 Android的架构分析42.1.3 Android应用的构成和工作机制52.2 Java技术62.3 SQLite数据库72.4 Eclipse介绍73 系统需求分析73.1 功能性需求分析73.1.1 需求分析方法概述73.1.2 功能用例图83.2 可行性分析83.2.1 性能需求分析83.2.2 系统安全需求94 系统设计94.1 系统的设计模式94.2 总体设计94.3 系统的功能设计104.4 系统数据库设计114.5 系统界面设计114.6 系统运行流程114.7 程序设计实现过程125 系统功能实现125.1 系统运行环境搭建125.2 系统功能实现135.2.1 系统数据库的实现135.2.2 系统界面的实现135.2.3 系统入口的实现175.2.4 文档阅读的实现185.2.5 书签管理的实现205.2.6 系统设定的实现216 系统测试226.1 文档阅读功能的测试226.2 书签管理功能的测试236.3 用户设定功能的测试246.4 文本选择功能的测试256.5 测试总结26结束语27参考文献27附录29致 谢43基于Android的文本阅读器摘要:随着科技的日益发展,移动设备变得更加智能化,Google于2007年11月推出的专为移动设备设计的Android系统现在已成为最为流行的智能手机系统。它具有开源性,有助于降低开发成本。因此设计并开发一款基于Android的文本阅读器软件很有意义。本系统在Android平台下设计,运用Eclipse进行开发。论文首先介绍了课题的研究背景、现状和主要研究内容;然后对系统中用到的理论知识和相关技术进行了详细的阐述,包括Android平台的相关理论知识、Android环境的搭建、系统的详细实现方法以及相应的关键代码段等。经过测试,系统可以实现文本阅读器的基本功能。关键词:智能;Android平台;开源;文本阅读器A Text Reader Based on AndroidAbstract: With the increasing development of science and technology, mobile devices become more intelligent. Android system, designed by Google specifically for the mobile device in November 2007, has now become the most popular system of intelligent mobile phone. It is open source, which helps to reduce development costs. Therefore, the design and development of an Android based text reader software is very meaningful. This system is designed on the platform of Android and developed through the application of Eclipse. The thesis introduces the research background, present situation and main research contents firstly; and then presents the detailed interpretation of theoretical knowledge and related techniques that are applied in the system, including the related theoretical knowledge of Android platform, the methods of Android environment construction, system realization and the corresponding key code section. After testing, this system can implement the basic function of the text reader.Key words: Intelligent; Android system; Open source; Text reader1 绪论1.1 设计背景和意义移动计算是随着移动通信、互联网、数据库、分布式计算等技术的发展而兴起的一个多学科交叉、涵盖范围广泛的新兴技术,是计算机技术研究中的热点领域,移动计算技术使得计算机或其它信息智能终端设备能在无线环境下实现数据传输及资源共享,并可将有用、准确、及时的信息提供给任何时间、任何地点的任何客户。这将极大地改变人们的生活方式和工作方式1。 现今在无线通信的基础上的移动计算已经用来扩展计算设备的通信功能,如掌上电脑PDA;或扩展通信设备的计算功能如手机。而智能手机作为移动计算环境终端实体虽然早在多年前出现,但那时的功能主要是本地应用。随着移动互联网3G时代的到来,本地应用已远远无法满足用户的需求。因此,以创新闻名的Google为了进军移动广告市场,在2007年11月5日发布了Android的第一个版本。在开发设计方面,Android的平台上已经预装了一些核心手机应用,包括电子邮件,短信,日历,地图,浏览器,地址本等。这些应用都是使用Java语言编写。开发者也可以使用Java语言在Android平台上(Android模拟器)开发自己的应用程序。核心应用所使用的任何API,Android开发者都可以访问。而随着3G应用和智能手机的不断开发及推广,用户会越来越需要更加个性化、优质化的多媒体数据服务,用户更多地希望能够随时、随地无缝利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。在Android的网上应用商场中也拥有数以万计的应用程序可供用户免费下载使用,极大地方便了用户的工作与生活。开发基于Android的文本阅读器软件满足了用户可以随时随地阅读TXT文档的需求,且在设计过程中也锻炼了自己的编程能力和创新能力。1.2 主要工作和方法本选题的文本阅读器就是开发在Android平台上运行的应用程序。Android是由Linux+Java构成的开源平台,它提供包括SDK、Key Apps、Middleware、Linux Kernel四个部分在内的全套手机软件方案。它开放了基于Linux内核上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。本课题主要完成基于Android的文本阅读器的开发实现,文本阅读器的开发需要搭建Android开发环境(JDK+Eclipse+Android SDK+ADT),实现的功能主要有:实现TXT文档阅读;在阅读时可以对阅读背景色、屏幕亮度、字体大小、字体颜色进行设置;阅读TXT文档的翻页操作;用户阅读时的书签管理功能;短信共享文本,在用户阅读时,可将选择的文本内容通过短信发送给其他用户。完成本选题需要查阅并研究相关期刊和文献,对课题研究中所涉及到的相关内容和技术进行初步了解;深入了解Android平台和Java编程等相关技术;能够架设出系统的基本框架,然后进一步优化设计,完成软件的功能;在实验操作中遇到的问题能够及时的与指导老师进行沟通,通过对问题的分析,巩固知识,优化设计。1.3 本文结构第1部分是绪论,主要说明了本文的研究背景、主要工作和实现方法。第2部分主要是对系统开发环境及开发平台的介绍。第3部分是系统需求分析,阐述了文本阅读器的相关功能和本程序需解决的技术问题以及流程。第4部分是系统设计,介绍了界面的操作方式及主要设计过程,还包括本程序所需要的轻量级数据库的实现。第5部分是系统实现,首先解决了本程序的技术问题,然后介绍了阅读器主类逻辑及其涉及到的若干类,最后介绍文本阅读器具体功能的实现。第6部分是软件测试。最后是对系统开发所做的工作和对系统最终结果的总结。 2 相关技术介绍2.1 Android系统Android是Google于2007年11月05日宣布的基于Linux平台的开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分2。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。全球为数众多的移动电话用户正在使用各种基于Android的电话。谷歌的目标是让移动通讯不依赖于设备甚至平台,通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。2.1.1 Android特点Android具有以下特点:(1)应用程序框架支持组件的重用与替换。这在之前的手机操作系统当中是很难想象的。这就意味着我们可以把系统中不喜欢的应用程序替换掉,安装我们自己喜欢的应用程序。例如,打电话应用程序、文件管理器等3。(2)Dalvik虚拟机专门为移动设备做了优化。Android应用程序将由Java编写、编译类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多3。(3)内嵌浏览器:集成了基于开源WebKit引擎的浏览器4。(4)优化的图形:强大的自定义二维图形库。基于OpenGL ES 1.0标准的3D图形功能,在移动3D开发中有着至关重要的地位。(5)SQLite数据库:SQLite提供结构化的数据存储。它是一款轻型免费且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等2。(6)多媒体支持:支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。Open Core是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。(7)GSM技术:(依赖硬件)Global System for Mobile Communications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El是让地球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球2。(8)支持蓝牙Bluetooth,EDGE,3G和WiFi技术;也支持照相机,GPS,指南针和加速度仪等传感器硬件。(9)丰富的开发环境:包括模拟机、调试工具、内存运行检测,以及为Eclipse IDE所写的插件。2.1.2 Android的架构分析Android架构是由Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的5,如图2-1所示。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在Dalvik VM上运行的。图2-1 Android系统架构6Android系统架构6:(1)Linux内核:Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。(2)中间件层:C/C+函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等。(3)应用程序框架:提供Android平台基本的管理功能和组件重用机制。(4)应用程序:提供一系列的核心应用程序,包括电子邮件客户端、浏览器、通讯录和日历等。2.1.3 Android应用的构成和工作机制对于一个Android应用程序来说,是由Activity、Intent Receiver、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。1.活动(Activity)组件Activity是Android的核心类,该类的全名是android.app.Activity。Activity相当于C/S程序中的窗体或Web程序的页面,是构成应用程序中最重要的构造块,在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面6。(1)活动生命周期活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台7。Activity的状态转换如图2-2所示。图2-2 Activity状态变换路径图7Activity有三个关键循环8,如下:活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroy()结束。在onCreate()中进行所有初始化,在onDestroy()时进行清理工作,释放资源。活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。在这段时间内活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换8。(2)活动之间的转换Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定component属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。2.广播接受者(Broadcast Receiver)组件Broadcast Receiver的唯一功能就是接收广播消息,以及对广播消息做出响应。有很多时候,广播消息是由系统发出的,例如,时区的变化、电池的电量不足、收到短信等。除此之外,应用程序还可以发送广播消息,例如,通知其他的程序数据已经下载完毕,并且这些数据已经可以使用了。一个应用程序可以有多个广播接收者。广播接收者与服务一样,都没有用户接口,但在广播接收者中可以启动一个Activity来响应广播消息,例如,通过显示一个Activity对用户进行提醒。当然,也可以采用其他的方法或几种方法的组合来提醒用户,例如,闪屏、震动、响铃、播放音乐等6。3.服务(Service)组件Service是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。系统客户端扩展功能的音乐播放就是采用Service来进行设计和开发的,使用户可以边聊天边听音乐。4.内容提供者(Content Providers)组件6Content Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专注于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。2.2 Java技术Java是由Sun公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称,Java平台由Java虚拟机和Java应用编程接口构成,由于Java的跨平台性,更多的计算机游戏和应用程序采用Java语言进行开发。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景9。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言10。2.3 SQLite数据库Android存储方案的核心之一是用数据库存储相关数据。在Android系统中使用了SQLite数据库11。SQLite是一款轻型的,遵守ACID的关联式数据库管理系统,它的设计目的主要是用于嵌入式设备,使用时占用的资源非常少。它支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,如Tcl、C#、PHP、Java等。SQLite虽然是轻量级的,但在执行某些简单的SQL语句时甚至比MySQL和Postgresql还快。它具有零配置、可储存在单一磁盘文件中、数据库文件可以在不同字节顺序的机器间自由的共享、简单轻松的API、开源、独立等特性12。在开发中还可使用有大量的可视化功能的SQLite数据库管理工具。2.4 Eclipse介绍Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台13。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台14。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。在本系统的开发需要用到Eclipse SDK软件开发包。它是Eclipse Platform、JDT和PDE所生产的组件合并,这些部分在一起提供了一个具有丰富特性的开发环境,由Eclipse项目生产的工具和来自其他开放源代码的第三方软件组合而成。3 系统需求分析3.1 功能性需求分析3.1.1 需求分析方法概述需求分析是系统开发的基石,影响着整个系统开发过程。明确系统开发的需求,是系统开发开发成功的基础。在系统开发前,本人对当前有关本课题的国内外市场以及现有成果进行了详细的调查和分析,使得系统的需求在实现基本功能的前提下又加入了相应的个性化功能,因此具有一定的竞争力和实用价值。本系统采用用例驱动的分析方法进行需求分析。UML(统一建模语言,Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程15。用例建模是UML建模的一部分,也是UML里最基础的部分。用例建模的最主要功能就是用来表达系统的功能性需求或行为。用例建模可分为用例图和用例描述。用况模型由用况图组成,用况图展示了执行者、用况以及它们之间的关系。一个用况模型可以由若干幅用况图组成,一幅用况图包含的模型元素有参与者(Actor)、用例(Use Case)、系统边界以及表示它们间的不同关系,如关联、扩展、包含、泛化等,用画图的方法来完成16。3.1.2 功能用例图采用用例驱动方法分析需求,首先识别出系统的参与者。本系统的参与者也就是本阅读软件的用户,用户可以进行文档阅读、阅读背景色设定、字体颜色设定、字体大小设定、阅读文档的翻页操作、对文档的添加书签操作、去往书签操作、清除书签操作、以及对文本的短信共享。用例图如图3-1所示:图3-1 功能用例模型3.2 可行性分析3.2.1 性能需求分析手机软件要有良好的用户体验,良好的用户体验体现在以下几个方面:(1)运行时内存使用不能超过64M虽然现在的手机硬件越来越强大,智能手机的内存可达到1024M,但Android还是限制了单个应用程序内存使用的大小。所以本系统运行时内存使用限制在不超过64M。(2)界面友好用户界面要简洁直观,设计合理,方便用户操作,让用户使用起来比较舒服,并且UI视觉效果要好。(3)无缝性一个常见的无缝问题就是一个应用的后台进程(如Service或Broadcast receiver)对某事件作出响应而弹出对话框,这看起来仿佛并无大碍,特别是当你在模拟器上单独地构建和测试你的应用时。然而,当你的应用在真正的设备上运行,后台线程显示对话框时,你的应用当时可能没有获得用户焦点。这就会出现你的应用会在活动的应用后面显示对话框,或者从当前应用中获得焦点并显示对话框的情况,而无论当时用户正在做什么(如正在打电话等)。那样的行为可能对你的应用或用户不起作用。为了避免这些问题,你的应用应该利用适当的系统资源Notification类,来通知用户。利用通知,你的应用可以通过在状态条上显示一个图标来通知用户事件已经发生,而非获得焦点和打断用户。3.2.2 系统安全需求Android操作系统具有权限分离的特征,每个应用都有唯一的身份标识。同一系统的不同部分也有不同的身份。因此在Android安全体系结构设计中在默认的情况下没有任何应用程序可以执行对其他应用程序、操作系统或对用户有损害的操作。应用程序在独立的沙盒中运行,若没有获得权限,就无法对其他应用程序进行操作。4 系统设计4.1 系统的设计模式为了使本设计中的Android文本阅读器具有更加强大的移植性和更好的可扩展性,系统的设计采取了广泛使用的MVC(即模型、控制器、视图)设计模式。软件设计时把应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,将应用分成三层:模型层、视图层、控制层。同一模型可以轻易地在不同Android平台,不同UI中得以实现,而反过来模型的改变也可以做到视图不变。系统的开发人员还可以通过自身的优势进行分组开发。4.2 总体设计根据系统所采用的MVC设计模式,可确定基于Android的文本阅读器的总体设计结构,如图4-1所示:图4-1系统总体设计结构图4.3 系统的功能设计本系统是基于Android的文本阅读器软件,为了使用户方便快捷的操作本系统从而达到良好的用户体验,本系统需要实现以下功能:(1)TXT文档阅读用户可以根据需求选择打开存储在SD卡中的TXT文档进行阅读。(2)系统设定在阅读TXT文档时,用户可以根据自己的喜好,通过阅读设定功能将阅读的TXT文档的字体大小、颜色、阅读背景色以及屏幕亮度进行设置,达到更舒心的阅读体验。(3)TXT文档翻页操作在本系统中阅读可以有三种方式,给用户提供更多选择。第一,用户可以通过手动手机键盘上下按键,进行阅读;第二,用户可以选择阅读界面的上下翻页按钮进行翻阅。第三,用户可选择阅读界面的滚屏按钮,进入自动滚屏阅读。(4)书签功能在用户进行阅读时,有时无法将文档一次看完,退出系统时想要记录阅读位置,具有书签功能的阅读器就能帮助用户解决这一问题。本系统的书签功能可以让用户进行添加书签、清除书签操作,能记录上一次的阅读位置,让用户更方便的进行阅读。(5)文本选择手机用户之间的交互非常频繁,所以在本系统中提供了用户间的交互功能。用户可以通过文本选择模式,将已选择的文本通过短信方式发送给其他用户,进行信息共享。 4.4 系统数据库设计系统利用Android平台自带的轻量级SQLite数据库在本地存储系统的相关信息。SQLite 是一个开源的轻量级的嵌入式关系型数据库,它不但能够减少应用程序管理数据的开销,而且SQLite支持跨平台,操作简单,能够使用很多语言直接创建数据库。因此它非常适用于手机等嵌入式终端。使用时应用程序将其嵌入到自身中,它们的进程空间是共用的,并不单独开辟一个进程。从表面上看,它和一个完整的RDBMS(Relational Database Management System)并不像,然而在SQLite进程内部,它是非常完整的,而且含有数据库引擎。使用嵌入型数据库的一个优点是程序内部不用配置网络。使用SQLite的权限只依靠文件系统,登陆帐户的概念不存在,因为它的客户端和服务器端运行在同一进程空间中20。本系统基于实现书签管理功能,需要将书签信息存储到数据库中,设计了书签信息表。具体描述如表4-1所示:表4-1 书签信息表字段名称字段类型字段描述_idInt(11)书签位置(主键)marknameVarchar(30)书签名称booknameVarchar(30)文档名称4.5 系统界面设计在本系统中主要设计了系统主界面,文档阅读界面,书签管理界面和系统设定界面,具体设计如下:(1)主界面:包括三个按钮分别为打开、设定、退出。(2)文档阅读界面:在该界面中显示阅读文本,上一页、下一页和自动滚屏按钮。(3)书签管理界面:包括添加书签、去往书签、清除书签按钮和书签下拉菜单。(4)系统设定界面:包括文字颜色设置、背景颜色设置、字体大小、屏幕亮度。4.6 系统运行流程本系统在Eclipse中开发,在手机模拟器中运行程序后用户进入主界面,选择打开按钮,可以看到文件列表,选择TXT文档进行阅读。在阅读界面,可以通过上一页、下一页按钮手动翻页阅读,也可以选择自动滚屏阅读;当用户在阅读TXT文本文档时,长按手机屏幕可以选择文本选择模式,在此模式下可以对文本进行选择,并通过调用系统的短信服务将选择的文本通过短信发送出去;用户单击menu按钮,选择书签菜单,会转到书签管理界面,在此界面里可以对书签进行添加、清除等操作。单击主界面的设定按钮,可以进入用户设定界面,可以对阅读的文本文档的字体大小、颜色、背景色等进行设置,单击menu按钮,对设置进行保存并返回系统主界面。系统运行的顺序图如图4-2所示:图4-2 系统运行顺序图4.7 程序设计实现过程第一步 创建主界面,设置主界面的按钮,对阅读文本文档进行实现。第二步 创建阅读界面,对阅读界面进行设计与实现。第三步 创建书签、搜索相关界面,对书签、搜索功能进行实现。第四步 创建设定界面,并对其进行设计和实现。5 系统功能实现5.1 系统运行环境搭建(1)安装JDK和Eclipse开发工具。下载最新的JDK版本按照提示过程,逐步完成安装。安装完毕需要配置JDK的系统环境变量。右击桌面上的“我的电脑”,从弹出的快捷菜单中选择“属性”命令,在随后打开的对话框中单击“高级”标签,单击“环境变量”按钮,打开“环境变量”对话框,在“系统变量”区中单击“新建”按钮,在“新建系统变量”对话框的“变量名”文本框中输入classpath,在“变量值”文本框中输入文件安装路径即可17。Eclipse下载后直接解压即可运行。(2)安装Android SDK。下载Android SDK最新版本,Android SDK是在线安装。在安装之前,要保证有稳定而快速的Internet链接。安装成功后,可以看到Android SDK根目录结构18。(3)安装Eclipse插件ADT在Eclipse中,单击【Help】【Install New Software】菜单项,显示安装对话框,然后单击右侧的【Add】按钮,按要求安装。安装完ADT后,还需要设置一下Android SDK的安装目录。(4)设置Android SDK的安装目录。单击【Window】【Preference】菜单项。在弹出的对话框中选中左侧的【Android】节点。在右侧的【SDK Location】文本框中输入Android SDK的安装目录19。5.2 系统功能实现5.2.1 系统数据库的实现Android项目中提供了多个操作数据库的类。android.database.sqlite.SQLiteDatabase是操作数据库的核心类之一。使用SQLiteDatabase可以打开数据库,也可以对数据库进行操作。同时,为了数据库升级的需要以及使用更方便,可使用SQLiteOpenHelper的子类来完成创建、打开数据库及各种数据库的操作。在本系统中,创建了BookMarkDBHelper类继承自SQLiteOpenHelper类来完成数据库的操作。具体代码如下:public class BookMarkDBHelper extends SQLiteOpenHelper /*创建表*/ db.execSQL(CREATE TABLE IF NOT EXISTS + TB_NAME + ( + POSITION + INTEGER PRIMARY KEY, + MARK_NAME + VARCHAR, + BOOK_NAME + VARCHAR);5.2.2 系统界面的实现在Android系统开发中经常使用XML布局文件对视图进行定义。所有的XML布局文件必须保存在reslayout目录中。由于ADT会根据每一个XML布局文件名在R类中生成一个变量,因此,XML布局文件名(不包含扩展名)必须符合Java的命名规则。(1)主界面:在Eclipse中创建Android项目会默认生成布局文件main.xml,在该文件中指定程序中显示的组件。其中,定义为XML的根节点,、对应系统主界面的各个视图组件。main.xml部分代码如下: 布局效果如图5-1所示:图5-1 主界面布局(2)文档阅读界面:用户单击上、下一页按钮,可以翻页阅读;用户单击自动滚屏按钮,可以进行自动滚屏阅读;用户使用手机键的上下按键,可以手动滚动阅读;用户长按屏幕可进入文本选择模式;用户使用手机menu键,可选择书签功能。对应的布局文件为readbook.xml。主要代码如下: 布局效果图如图5-2所示:图5-2 阅读界面布局(3)书签管理界面:用户单击menu键,选择书签,进入书签管理界面,在此界面用户可以添加书签,对书签进行命名;用户可以选择其添加的书签,转到书签所记录的阅读位置;用户还可以选择清除书签,将所添加的书签进行清除。对应的布局文件为bookmark.xml。部分代码如下: 布局效果图如图5-3所示:图5-3 书签管理布局(4)用户设定界面:在主界面,单击设定按钮,进入用户设定界面,在该界面,用户可以对阅读界面的背景颜色、字体颜色、字体大小和屏幕亮度进行设置。对应的布局文件为setting.xml。部分代码如下: 布局效果图如图5-4所示:图5-4 用户设定布局5.2.3 系统入口的实现(1)主Activity:建立Android项目时,与main.xml一样也是默认生成了主Activity类,它是Android应用程序的主程序文件,其中,一个Activity是应用中的一个单一的屏幕,它继承自Activity类11。同时在该文件中可完成对主界面按钮的事件处理。在MainActivity.java使用了main.xml布局文件。在onCreate方法中使用了setContentView方法指定布局文件的资源ID。使用findViewById方法获得对应的视图对象。具体代码如下:public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); btnOpen = (Button)this.findViewById(R.id.main_btn_open); /*获取打开按钮*/ btnSetting = (Button)this.findViewById(R.id.main_btn_setting); /*获取设定按钮*/ btnExit = (Button)this.findViewById(R.id.main_btn_exit); /*获取退出按钮*/通过switch语句判断用户操作,通过OnclickListener监听按钮事件。部分代码如下:oclClick = new OnClickListener() public void onClick(View v) switch (v.getId() /* 打开文件*/ case R.id.main_btn_open: startActivityForResult(i, REQUST_CODE_OPEN_FILE);break; case R.id.main_btn_setting: startActivity(i); break; /*用户设置*/*用户退出*/ case R.id.main_btn_exit: MainActivity.this.finish();break;5.2.4 文档阅读的实现(1)打开文件功能,实现了打开TXT文本阅读,显示虚拟SD卡中的文件列表,用户可以选择要阅读的TXT文档。该功能的核心代码如下:OpenFileActivity.java public void onCreate(Bundle savedInstanceState) /*设置点到ListView项时的监听函数*/ListView.OnItemClickListener itemClick = new ListView.OnItemClickListener() if (itemType = FOLDER) /*是文件夹*/if (s.equals(.)mPath = mCurrentDirectory.getParent(); else mPath = mCurrentDirectory.getPath() + / + s + /; else /*是文件*/OpenFileActivity.this.finish();FileListAdapter.java public View getView(int position, View convertView, ViewGroup parent)

温馨提示

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

评论

0/150

提交评论