登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于Android的电子书阅读器APP设计毕业论文

 2021-11-17 23:37:50  

论文总字数:18942字

摘 要

当下移动设备和互联网的快速发展,使得手机从传统的简单通话工具逐渐升级为我们每个人沟通世界的便捷窗口。同时,碎片化的电子阅读正在取代纸质阅读成为“新宠儿”。很多人将之视为国民阅读生态的困境,但这无法掩盖电子阅读本身的极大优势,一是阅读方便,图书来源及其广袤丰富;二是便携化的操作,你可以随时随地对其中内容进行批注和标记。因此,需要设计并开发一款交互友好,专注于核心阅读业务的安卓电子阅读器。

本项目移动端采用实现自绘引擎的跨平台移动框架Flutter,一次开发就可以同时进行iOS和Android平台的打包,并且开发过程还支持热重载,可以随时看到界面的展示结果。其中,图书订阅和下载相关信息的持久化存储采用非关系型数据库。图片缓存组件,应用信息和用户信息保存使用相关组件。后台使用Spring Boot框架并封装REST风格接口,使用JWT进行权限验证,并对用户密码进行了加密存储。

开发过程中,借助多机和网络环境,成功进行了该应用的功能测试和用户测试。该单体应用继承简约风格,实现了电子阅读的核心业务,为下一步业务升级和应对高并发场景提供可靠依据。

关键词:Android;电子阅读;Spring Boot

Abstract

With the rapid development of mobile devices and the Internet, mobile phones have been gradually upgraded from traditional simple communication tools to a convenient window for everyone to communicate with the world. Meanwhile, fragmented e-reading is replacing paper reading as the "new darling". Many people regard it as the dilemma of national reading ecology, but this cannot cover up the great advantages of e-reading itself. First, it is convenient to read and the source of books is vast and abundant. The second portable operation is that you can annotate and mark the contents anytime and anywhere. Therefore, we need to design and develop an interactive and friendly android e-reader that focuses on the core reading business.

The mobile terminal of this project uses the cross-platform framework Flutter, which realizes the self-drawing engine. After just one development, the packaging of iOS and Android platforms can be carried out at the same time, and the hot loading is also supported in the development process. The results of the interface can be seen at any time. Among them, the non-relational database is used for the persistent storage of book subscription and downloading related information. Image caching components, application information and user information are saved using related components. The backend uses the Spring Boot framework and encapsulates the restful interface. We also used JWT for authorization verification and encrypted storage of user passwords.

In the process of development, the function test and user test of the application were successfully carried out with the help of multi-machine and network environment. The application inherits the minimalist style, realizes the core business of e-reading, and provides the basis for the next business upgrade and coping with high concurrency scenarios.

Key Words: Android; Electronic reading; Spring Boot

目 录

第1章 绪论 1

1.1研究的背景及意义 1

1.2国内外研究现状 1

1.3研究内容及组织安排 2

第2章 相关理论及关键技术 3

2.1 Android 3

2.2 Flutter 4

2.3 Spring Boot 5

2.3.1 Spring 5

2.3.2 Spring Boot 5

第3章 电子阅读器需求分析 7

3.1系统顶层需求结构 7

3.2功能模块需求分析 7

第4章 系统总体设计 11

4.1开发技术简介 11

4.2系统架构 11

4.2.1 系统的逻辑架构 11

4.2.2 系统的物理架构 11

4.3系统功能图 12

4.4系统流程图 13

4.5数据库设计 14

4.5.1 E-R图设计 14

4.5.2 关系表设计 15

第5章 系统详细设计与实现 17

5.1登录功能模块的实现 17

5.1.1 工具类简介与代码实现 17

5.1.2 登录界面展示 18

5.1.3 登录界面流程分析 19

5.2权限控制功能的实现 19

5.2.1 代码实现 20

5.3增删改查的代码实现 20

5.3.1 图书实体类的设计 20

5.3.2 LomBok介绍 20

5.3.3 Dao层实现 21

5.4云同步和本地持久化实现 21

5.4.1 思路和代码展现 21

第6章 系统测试 23

6.1接口测试 23

6.2兼容性测试 25

6.3性能测试 28

第7章 总结与展望 32

7.1总结 32

7.2 展望 32

第1章 绪论

1.1研究的背景及意义

从1993年IBM Simon诞生起,智能手机开始活跃于手机市场。如今,借助于骁龙,麒麟等优秀处理器,智能手机早已不仅仅是简单的通讯工具,它承载着人们学习,娱乐和工作的各个方面。并且强大的互动移动设备早已颠覆了我们的工作和娱乐方式。最畅销的手机游戏《愤怒的小鸟》9就是最好的例子,它展示了互动对如今打造一款成功的移动应用的重要性[1]。而借助于这个平台,电子阅读代替传统的纸质阅读开始成为一种不可逆转的趋势。

我们熟知的传统纸质阅读资源,最好的方式是个人去图书馆借阅或者购买收藏,这样在占据大量生活空间的同时,携带和翻阅也极不方便。尤其现下是一个信息极速膨胀,人员流动日益频繁的时代,我们迫切需要书籍也开始“流动”,提供随取随用的服务。使用电子阅读器应用正是为解决这一需求的有效手段。我们可以简单地进行文字搜索检索自己喜欢的图书,不必去特定楼层寻找众多书柜中有着唯一编码的书籍。一键点击下载,我们再不必为携带问题烦恼,也可以随时删除这些文本文件,解放手机内存。从内容获取的便捷性来讲,有很多免费或公益平台提供大量免费的优质电子图书资源[2]

手机阅读器的核心业务是方便人们的阅读,但同样作为一款电子产品,它有时代所赋予它的科技美感,也可以基于现有的成就做出更多地创新,例如书单分享,书籍评论和批注分享,迎来真正的全民阅读时代。

1.2国内外研究现状

从广义上来说,电子书是指集文字、图像、声音、影像等要素于一体,并需要借助特定设备来阅读、传输的数字出版物[3]。狭义上讲,电子图书只是一种呈现信息的方式的改变,诸多公司推出的阅读器只是它的载体。后来索尼公司曾开发出Bookman这款产品企图引领电子阅读时代,但该产品无论在屏幕规格和电池容量都表现不佳,很快便销声匿迹。在1995年10月,美国Soft Book和Nov. Media公司分别推出Soft Book和Rocket Book产品。它们分别提供了8MB和32MB的空间,这些内存足够存放五千和三万两千的页面信息,通过与附近的计算机直接相连,这些产品可以快速从网络上获取任何想要的图书和期刊资源。时间迈入二十一世纪,盖茨的团队在这个世纪初就正式发布软件Microsoft Reader,其中Clear Type技术使得文字的显示效果完全如现实世界中的字体一般。与此同时,国内众多公司也推出了诸如“掌上书屋”等内地产品。阅读器不仅使得阅读更加方便,最重要的是它使图书资源变得可移动和易存储,此后,随着各种硬件设备的迅猛发展和软件领域的突破,电子书呈现的形式开始走向多样化,功能也越来越丰富。

目前广受好评的电子书阅读器有微信读书和网易蜗牛读书,这两款产品都是在保证绝对优质的图书资源的基础上提供友好的交互操作。作为金米奖的热门产品,网易读书采用具有简约风格的界面,提供书单和图书交流社区,使得越来越多热爱读书的用户加入这个大家庭。同样,这些主流阅读器提供书签,书籍检索乃至添加批语和评论这些多样化的操作。MUUI系统默认提供的电子书阅读器覆盖了多种格式的文件,包括TXT,PDF等,并且阅读器还提供多种阅读模式,用户体验翻页效果十分流畅。

电子书阅读迎合了如今碎片化阅读的时代潮流,人们可以在任何相对安逸的环境下汲取自己所需的知识,并且符合当下绿色发展,低碳环保的理念。然而,碎片化的阅读终究是为解决人们日渐碎片化的时间和空间困境而产生的一种方式,它只能是提供一种辅助阅读的功能。因此,纸质书仍然是现代喜爱读书的各位朋友的不二选择,而电子书是对于已经到来的碎片化阅读的一种补充,二者并不相冲突[4]。受限于如今的阅读器多媒体性能,电子书应用发展在多样化发展的同时同样有诸多潜力可以挖掘[5]

1.3研究内容及组织安排

本文主要对电子书阅读器的需求和设计进行分析,通过确定各模块的主要功能,对阅读器工作的各个环节进行了详细的设计与编码工作,并最终成功实现该电子书应用。论文内容主要分为7个部分,安排结果如下图:

第一章, 主要介绍课题的研究背景和现实意义,并且了解国内外对于该技术的研究历史及现状,最后是研究内容和组织安排。

第二章, 着重介绍电子书阅读器设计的相关理论和相关技术框架,对Android,Flutter以及Spring Boot的组成和机制,以及跨平台优势和面向对象的Dart语言进行说明。

第三章, 进行电子书阅读应用的需求分析,明确内部各模块主要功能,构建UML用例图。

第四章, 进行阅读器的总体设计工作。

第五章, 在总体设计的基础上开展详细设计与编码工作,此过程中对于开发环境搭建,主要业务逻辑代码实现加以阐述。

第六章, 进行接口和功能测试。

第七章, 总结和反思整个项目的开发流程,在此基础上展望未来。

第2章 相关理论及关键技术

2.1 Android

谷歌公司最早在2008年面向移动端市场设计并开发出安卓系统,随着业务领域的不断扩大,安卓的工作范围也慢慢触及到了电视,汽车等热门行业。如今,Android已经是全世界出货量最高的操作系统。

图2.1 Android系统架构图

由上图可知,Android架构层面可以用四层来概括,用户通过手机浏览器,手机应用市场下载到的应用,包括手机出厂自带的产品都属于应用层这一范畴。移动开发者开发原生应用,Web和混合开发的产品也都是在这一层面运行,交给用户操作。应用框架层是各种库和接口的管理者和提供者,开发者进行开发工作,系统应用的核心功能都要使用框架层中的API,比如View系统。更进一步,开发者不仅能够利用这些API开发自己的应用,在这个过程中开发出的新的模块也可以进行开源化的操作,即所有的应用程序都可以使用自己的功能。这种程序级别的复用,使得开发工作变得越来越高效。系统运行层接近底层,这个层面主要为系统功能提供支持,通过C或C 语言编写的库文件向数据存储提供服务,为3D页面提供绘图功能等。如今的安卓系统采用的是Linux内核结构,操作系统的基本功能,包括文件管理,设备管理,内存分配和进程调度都由这一层来完成[6]。内核层面并不是独立存在的软件部分,准确地说,内核态是CPU处于系统级别代码运行时的状态。这个状态下,内核层面相当于硬件层面和软件层面(包括系统软件和应用软件)的过度层,它为软件提供系统的基本服务,为硬件提供驱动。

作为安卓操作系统的四大组件,活动,广播器,服务和内容提供器它们的分工明确,并依靠网络完成彼此间的通信,保证系统协调稳定运行。活动是用户唯一可看到的部分,也就是提供给用户操作的交互界面,服务始终位于后台,并且不会随着应用的退出而终止。广播器顾名思义,系统全局层面的消息它都可以接收到,例如消息推送和电话。内容提供器为程序间的通讯提供了可能,一些公用的数据部分可以通过其协调使用。除此以外,安卓还为众多的移动开发者提供了很多上手即用的产品,例如关系型数据库SQLite, GPS定位导航,提供视频,拍照,录音的多媒体服务等,这些都可以在自己开发的应用中通过调用接口调用,转向操作系统层面完成。

2.2 Flutter

谷歌在2015年推出Flutter这款移动端框架产品,显然有意推广自家的Dart语言和Fuchsia系统,但这款移动端开发框架本身也大有可取之处。首先Dart语言是面向对象,基于万物皆组件的思想,即使是非前端人士,只要熟悉Java等面向对象语言的开发,便可以快速上手,这就避免出现非前端人士为一些界面的开发和Bug问题头痛的场面。另外,Flutter的自绘引擎和编译成原生代码的方式为系统的运行提供了高效率,为开发人员提供的热重载选项更是进一步提高了开发效率。

传统的移动平台开发技术中,H5 原生APP开发最为方便,应用中提供WebView来和Html5的页面直连。Web实现的普遍做法是利用CSS和HTML5渲染, Java Script作为逻辑。Hybrid开发的本质也就在于Web与Native的相互调用[7]。这样APP和H5可以相互独立开发,JS与原生的数据通信依赖于Bridge,而渲染部分的工作有WebView的浏览器完成。但由于网络通信质量和距离的影响,H5页面的加载和显示都会耗费一定时间,这样在用户看来就存在一段时间的白屏期。尽管团队里可能有优秀的前端人员进行相关的优化工作,但Bridge的通信效率始终因为这种技术组合方式而难以突破。还有我们熟知的React Native和Weex框架,尽管不再依赖于网络通信取得的H5页面,但在页面和组件的刷新过程中,仍然需要桥接器来进行数据在不同组件的更新和传递操作。

请支付后下载全文,论文总字数:18942字

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图