一个最能恰当处理请求的数据和动作的Activity。
3.2 接口设计
3.2.1 外部接口
在用户界面部分,根据需求分析结果,用户需要一个友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。在界面设计部分,本系统按照Microsoft公司的用户界面设计标准,为用户提供友好、方便、直观、简洁的操作环境。
本系统采用了窗口继承的方式,使窗口有统一的界面风格。同时,对错误信息、提示信息进行标准化,尽量做到清晰明了。
3.2.2 内部接口
系统在功能模块的设计上,以"高内聚、低耦合"为设计目标。内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装的数据、参数传递或返回值的形式在各模块间传递。
3.3 数据库设计
3.3.1 数据模式设计
一共设计了3张表,是:
(1)阅读记录表(阅读记录的ID,书的路径,阅读记录数据)
(2)书签表(书签的ID,书签对应的阅读记录的ID,书签名,书页)
(3)上次阅读记录表(上次阅读记录的ID,书的路径,上次阅读到的书页,上次阅读时的字体)
数据库表的设计如下:
图3.2 数据库结构图
3.3.2 数据表格设计
本数据库用的是一个小型数据库sqlite3,在数据库中创建了三个表格。即BookRecord、BookMark和LastTimePage,分别用来存放阅读记录的数据、书签的数据和上次的阅读记录数据。具体内容如表3-1、表3-2和表3-3所示:
表3-1 阅读记录表
字段名称 数据类型 字段大小 是否主键 说明 rid Integer 8 是 阅读记录的ID path 文本 50 否 书的路径 data 字节数组 不定 否 预读记录数据 表3-2 书签表
字段名称 数据类型 字段大小 是否主键 说明 mid Integer 8 是 书签的ID ridfk Integer 8 否 书签对应的阅读记录的ID bmname 文本 50 否 书签名 page Integer 8 否 书页 表3-3 上次阅读记录表
字段名称 数据类型 字段大小 是否主键 说明 lid Integer 8 是 上次阅读的记录ID path 文本 50 否 书的路径 page Integer 8 否 上次阅读到的页数 fontsize Integer 8 否 上次阅读的字体大小 3.3.3 表的具体设计
表名:BookRecord
表中字段名称:rid, path, data.
说明:用varchar类型存储path,blob类型存储相应的路径下的阅读过程,并规定rid为阅读记录表的主键。
表名:BookMark
表中字段名称:mid, ridfk, bmname, page.
说明:创建书签mid为integer类型主键,定义书签名字bmname为varchar类型,书页号page为integer类型的书签表。
表名:LastTimePage
表中字段名称:lid, path, page, fontsize.
说明:创建书签lid为integer型主键,定义路径path为varchar类型,书页号page为integer类型,字体大小为integer类型的上次阅读记录表。
3.3.4 数据字典
数据字典是物理数据库的具体体现。
表3-4 BookRecord数据字典
字段名 类型 阅读记录的ID 整型 书的路径 文本 阅读记录数据 字节数组 表3-5 BookMark数据字典
字段名 类型 书签的ID 整型 书签对应的阅读记录的ID 整型 书签名 文本 书页 整型 表3-6 LastTimePage数据字典
字段名 类型 上次阅读记录的ID 整型 书的路径 文本 上次阅读到的页数 整型 上次阅读时字体大小 整型 3.4 软件设计模型
建立系统数据模型的主要工具是实体--关联图,即E-R图。
E-R图的图形符号约定如下表:
表3-7 E-R图图形符号
图3.3 存储阅读记录的E-R图
图3.4 存储书签的E-R图
图 3.5 存储上次阅读记录的E-R图
3.5 代码设计
代码是按使用的目的,表示识别、分类、排序数据的数字、文字或符号。识别是将文件中存储数据区别开,或将文件中的数据按组区别开,识别主要用数据更新与查找。分类是根据数据编码中的定义对数据分类,用于检索数据或统计分析。排序是根据编码规则,按代码中规定的次序排序,用于输出与生成报表。
3.6 软件维护设计
采用MVC设计模式,将UI层和业务逻辑层分离开来,采用针对接口编程的方式,降低了代码之间的耦合度,便于软件的升级和程序性能的优化。
第4 章 系统功能模块
4.1 关键技术
4.1.1 android平台及java语言
以下图表展示了Android操作系统的主要组成部分:
图4.1 Android系统架构图
本系统是以java为编程语言,从接口到功能,灵活多变。主要运用的是Activity之间的相互跳转,然后利用Intent实现多个程序同时运行的效果。运行中如果某个Activity的画面被另一个Activity所取代,则这个Activity停止。本系统通过把View类与XML(可扩展标记语言)将用户界面放置在视图窗口,然后注册事件来完成相应的功能。例如,当视图要处理用户的点击事件的时候,android就要向框架注册一个OnClickListener等。本系统中触发事件都是通过这种来实现的。 Java语言是一种简单易用,面向对象的,可移植的语言。它具有很多的优越性和特点,比如:平台无关性,安全性,面向对象,健壮性等等。本系统就是在android平台上使用java语言完成的系统。
4.1.2 中介软件
中介软件是android操作系统应用程序的桥梁,主要分为函数和虚拟机。Android的数据存储采用sqlite3数据库系统,用户可以用ContentProvider类获取数据。android中数据存储技术主要有:文件存储、preference、sqlite、ContentProvider和网络存储,在本软件中主要使用到了文件存储、sqlite和ContentProvider,文件存储是以流的形式读写文件,可以以文格的格式,也可以以二进制的形式,在java语言中要使用流,则写入文件的对象必须进行序列化,sqlite是嵌入式移动设备中常用的轻量级数据库,可看作计算机上使用的sql server、oracle数据库。本软件中,用户生词本中的数据都存在sqlite数据库中,而进行数据备份和恢复时则是用文件作为介质保存数据。
4.1.3 四大组件
Android的四大组件是支持android应用程序显示,跳转,服务和事件的重要工具,它们主要是:Activity(活动),Intent(意图),Service(服务),ContentProvider(内容提供器)。Activity是一个用户的界面基类,属于UI。一个Activity就是一个类,每个Activity类都需要继承Activity基类,并与其他控件结合使用。Intent实现Activity、service等之间的跳转和数据传输。Service是后台服务,为用户提供数据支持。ContentProvider负责数据的存储和读取。在android中,软件UI通常使用xml技术设计,而xml中控年的位置和状态则离不开布局的使用,android中常用的布局有5种,分别是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用,并且布局之间可以互相嵌套,使得android软件UI的设计变得非常灵活,即使是一些非常复杂的界面设计,只要合理的使用布局,也会使开发变得很容易。
4.1.4 sqlite3 数据库
Sqlite3是建立在android平台上的一个数据库,除了支持varchar(n)(可变字符),
char(n)(定长字符)等数据特性外,还支持空(NULL),整型(INTEGER),文本类型(TEXT)等数据类型。它的特点入下:轻量级(只需带上很小的动态库,就能享受它的全部功能)、独立性(使用不需要安装,在部署的时候能省去很多麻烦)、隔离性(数据库中所有的信息都包含在一个文件内,方便管理和维护)和安全性(可以同时读取数据,但同时只有一个能够写入数据)等特性。
4.1.5 Tomcat服务器
服务器的架设:
(1) 在tomcat.apache.org/下载合适版本的Tomcat。
(2) 在/apach
上一篇:
软件开发工具论文
下一篇:
试论APP广告在手机中的应用