基于Android的饲料生产标准查询系统设计

2019-01-04 02:44柯张
饲料工业 2018年11期
关键词:应用程序设置数据库

■杨 柯张 维

(1.沈阳工学院信息与控制学院,辽宁抚顺113122;2.辽宁省农牧业机械研究所有限公司,辽宁沈阳110036)

标准是经协商一致制定并由公认机构批准,共同使用和重复使用的一种规范性文件,是企业生存发展的重要物质基础。饲料生产标准的制定和实施,为饲料组织生产提供技术指导,把饲料生产纳入标准化的轨道,提高饲料行业科技含量,适应现代畜牧养殖业管理体系。同时,为饲料行业监管提供依据,提高饲料产品的市场竞争力,促进畜牧业健康发展,最终保证食品安全。我国饲料生产标准较多,截至2012年底,现行有效的国家标准和行业标准共520项,其中国家标准273项,行业标准247项,近几年又制定了许多新的饲料生产标准。这些标准文件的查询和管理是使用者经常遇到的难题。

Android平台采用整合的策略思想,具有良好的用户体验,占据着全球最大的市场份额,截止2016年第二季度,Android手机的市场份额已经达到了86.2%。本系统基于Android平台设计,为广大用户提供移动的饲料生产标准查询手段,方便用户使用,提高饲料生产质量并促进饲料工业发展。

1 Android架构解析

Android是一种基于Linux的移动终端操作系统,由Linux内核、系统运行库、应用程序框架和应用程序等四部分构成,所有应用程序都是基于Java的应用程序框架之上,Android架构如图1所示。各部分简要说明如下:

①Linux内核。Android借助Linux内核服务实现硬件设备驱动。作为硬件和软件之间的抽象层,隐藏具体硬件细节并为上层提供统一服务。进一步提升了内存管理和进程间通信等方面的安全性。

②系统运行库。为系统的各个组件提供服务,包括系统类库和Android运行时。系统类库是C/C++库的集合,通过应用程序框架提供给开发者;运行时包含核心库和Dalvik虚拟机两部分,核心库提供Android的核心应用程序接口,Dalvik基于寄存器。

③应用程序框架。为应用程序提供的各种API接口,核心组件由图中斜体显示的5个构成,分别用于管理应用生命周期、访问另一个程序数据、构建用户界面、提供非代码资源访问和显示提示信息等。

图1 Android架构

④应用程序。用Java代码编写,由应用程序框架提供的供开发者使用,运行在虚拟机中。包括浏览器和即时通讯等,软件开发时可将这些应用作为组件使用,软件用户通过应有程序使用软件功能。

2 系统功能设计

现行的饲料生产标准分为综合标准、方法标准、产品标准、原料标准、添加剂标准、其他相关标准和地方标准等类别,对饲料生产标准进行分类,有利于加强对标准的管理和使用。因此,对饲料生产标准的管理包括对标准分类的管理。

饲料生产标准查询系统功能由标准查询、标准维护和系统管理等三个主要模块构成,功能结构如图2所示。各模块功能简要描述如下:

①标准查询。标准查询是系统的核心功能,供Android客户端使用。为了满足不同用户以及对信息需求程度的不同,系统提供三类查询:标准快速查询,对用户输入的单一查询条件与标准名称模糊匹配查询;标准条件查询,根据用户输入的多条件组合查询;标准详细查询,对标准进行全文检索查询。

②标准维护。标准信息及其相关文件,只有上传到服务器后,才能被查询使用。本模块用于对标准信息的维护以及标准文件的生成和上传。

图2 饲料生产标准查询系统功能结构

③系统管理。为系统管理员提供的保证系统正常运行的功能模块。为了保证系统安全性,需要对数据进行备份;只有对用户授权后,用户才能使用。

3 存储结构设计

存储结构是指存储数据的逻辑结构,逻辑结构是以概念结构为基础。本系统的概念结构包括“标准分类”和“标准”两个实体,两个实体间是“一对多”的联系,即一个“标准分类”包含多个“标准”,一个“标准”只属于一个“标准分类”。逻辑结构是把概念结构的实体及属性转换为具体DBMS所支持的数据模型。本系统DBMS选用SQL Server 2005,逻辑结构设计结果由两个数据表构成,如图3所示。

在图3所示的存储结构中,为了保证实体完整性,每个数据表设置一个“主关键字”字段,定义为Numeric类型的自动增长;为了保证参照完整性,“标准分类”和“标准”两个实体间“一对多”联系通过外键“FK_Classification_Standard”实现,关联字段是“标准分类代码”。“标准”表中需要存储Word和PDF两类文件,Word文件是可编辑的饲料标准的原始文件,PDF文件是由Word文件生成供用户查询浏览的文件。为了提高文件打开速度,文件存储在磁盘上,“标准”表中仅存储文件路径。

4 查询模块设计

在图2所示的饲料生产标准查询系统功能结构中,“标准查询”模块包括四类具体查询,“标准条件查询”是应用最多的查询,其他查询设计原理与此查询类似,本文以此查询为例来说明设计过程。系统在逻辑上分为Android客户端、应用服务器和数据库服务器等三层,用户通过Android客户端的浏览器输入查询条件,应用服务器生成业务逻辑并提交给数据库服务器,数据库服务器根据业务逻辑查询匹配结果,查询结果经过应用服务器处理后返回到Android客户端浏览器显示。时序图表示的查询过程如图4所示。

图3 系统存储结构

图4 查询过程时序图

查询模块设计主要涉及以下两项关键技术:

①查询界面设计。Android用户界面使用布局(LinearLayout、TableLayout、RelativeLayout等)定义,布局可以使用XML资源和Java程序两种方式,本系统使用XML资源,并使用布局优化(Layoutopt)来提高加载速度。查询界面由条件输入和结果显示两个界面构成,条件输入界面通过Java Script来检测输入条件的正确性;结果显示界面使用ListView控件来列表显示多条查询结果,ListView控件通过XML布局文件的findViewByID方法获得,通过Dao方法提供数据。

②查询结果本地化。为了使数据库中查询的结果在Android端重复使用,数据需要保存在Android端。SQLite是嵌入式的轻型数据库,是存储在单一磁盘文件中的完整关系结构型数据库,占用资源非常低。Android系统包含了完整的SQLite,可以直接使用。SQLiteOpenHelper是封装了数据库的创建、打开和更新的抽象类,通过继承这个类来完成数据库的创建、打开及各种操作。

5 PDF文件浏览设计

饲料生产标准存储文件包括Word文件和PDF文件两类,PDF文件用于用户查询时在Android屏幕的浏览器中显示。Android原生系统中的Webview不支持直接打开PDF文档,需要下载到本地Android端后再使用PDF阅读器打开,下载到本地的PDF文件被阅读后再无其他用处,缺陷是下载等待时间长且容易产生Android端垃圾,浏览器在线打开PDF文件阅读可以避免这些缺陷。

Android的PDF在线阅读目前广泛使用的有两种方法,一是使用Webview控件,通过pdf.js在服务器端和客户端分别处理;二是,使用官方的simple PdfRendererBasic,打开PDF读取器PdfRenderer,传入指定页码,读取内容转换成bitmap图片设置到ImageView。这两种方法的优点是实现简单,缺点是不能对PDF显示进行多种控制。本系统使用开源类库com.joanzapata.pdfview.PDFView,可以通过手势滑动PDF文件,并对PDF文件进行放大缩小操作,阅读PDF文件非常方便。具体实现包括以下两步:

①在XML资源文件中定义布局,主要设置“android:layout_width”和“android:layout_height”两个属性 。 属 性 值 在“match_parent”、“wrap_content”和“fill_parent”之间选择其一。“fill_parent”强制性地使构件扩展,以填充布局单元内尽可能多的空间;“wrap_content”强制性地使视图扩展,以显示全部内容。Android2.2 中“match_parent”和“fill_parent”两个参数意思一样,match_parent更贴切。

②在Java文件中加载PDF文件并设置属性。首先,指定文件名称和文件路径,需要判断网络连接,并检查文件是否存在。然后,设置常用属性:enableSwipe设置是否允许翻页;swipeVertical(true)设置PDF文档垂直翻页,默认是左右滑动翻页;pages设置PDF页面过滤和排序;defaultPage设置起始显示默认页;showMinimap设置是否显示缩放小地图;on-PageChange设置页面切换的页码显示;enableDoubletap设置在放大状态下,双击是否还原。最后,使用load()实现加载显示。

6 结语

Android平台受到大多数用户的青睐,具有开放性、丰富的硬件选择和不受开发商限制等特点。针对Android将iOS和Windows Phone远远抛在后面的现状,本系统基于Android平台开发,为生产企业和监管部门提供快速的饲料工业生产标准查询功能,具有广阔的市场前景和应用价值。本文基于SQL Server 2005数据库管理系统设计了存储结构,开发人员可直接创建数据库对象;采用模块化思想设计了功能结构,使用查询过程时序图设计了查询过程,并使用开源类库设计了PDF文件在线浏览功能,解决了软件开发关键性技术问题。本设计具有架构合理、安全可靠和易于维护等优点,是先进可靠的系统解决方案。开发人员以此为基础构建系统,对提高系统的开发质量和效率具有重要意义。

猜你喜欢
应用程序设置数据库
中队岗位该如何设置
船舶防火结构及设置的缺陷与整改
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
数据库
数据库
数据库
数据库
中俄临床医学专业课程设置的比较与思考
三星电子将开设应用程序下载商店