用于Android智能手机的盘点程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012年6月 十堰职业技术学院学报 June,2012第25卷第3期 Journal of Shiyan Technical Institute Vol.25No.3
用于Android智能手机的盘点程序设计
曹郁辉,何银平,胡昌龙
(十堰职业技术学院党委工作部,湖北十堰442000)
[摘 要] 本文介绍了一个适用于Android智能手机的库存盘点程序的设计要点,并着重介绍了Android系统下数据库管理系统的设计、条形码扫描的应用和手机与个人电脑之间数据接口的设计。
本文还指明了程序进一步改进的方向,使Android智能手机能够在生活当中得到更广泛的应用。
[关键词] Android;智能手机;盘点;程序设计
[中图分类号] TP311.1 [文献标识码] A [文章编号] 1008-4738(2012)03-0107-03
手机在生活中的用途越来越广泛,人们现在已经不仅仅把手机当作一个通讯工具。
随着智能手机的广泛应用,手机被用来当作照相机、mp3、mp4、电子书甚至指南针和GPS导航仪。
下面我们介绍一个程序的设计过程,该程序可以把Android智能手机变成一台用于仓库管理的盘点机。
1 盘点机的工作方式
盘点机是为了节省在仓库管理时的人工劳动应运而生的。
它实际上是由条码扫描枪、信息传输系统和计算机组成的一套系统。
库存商品由条码进行管理,每到盘存的时候,用条码扫描枪将用条码表示的商品信息传送到计算机里进行统计就可以得到商品的库存数量。
用盘点机来进行盘点比手工盘点效率高,差错率低。
常用的盘点机有这样几种方案:第一种是将条码扫描枪、单片机整合在一起的,这种方案使用方便但成本相对比较高;第二种是将扫描枪连接到微软平台的智能手机或PPC(掌上电脑),这种方案是一种廉价的解决方案,缺点是智能手机的处理能力不强;第三种是将条码扫描枪和计算机用WIFI(无线联网技术)进行连接,优点是功能完善,缺点是依赖一台计算机主机,使用不是很方便。
随着Android智能手机的广泛应用,手机的硬件性能甚至超过了早期的个人计算机,而且手机上配置了多种传感器,这使得盘点机的硬件平台有了
新的选择。
在我们设计的这个程序中,将由手机的摄像头代替条码扫描枪扫描商品条码,通过基于Android的库存管理程序使手机变成一台能够管理库存的计算机。
两者结合,Android平台的智能手机就可以变成一台盘点机了。
它的优点是节约了硬件设备的投资并且使用方便、容易携带。
对于An-droid智能手机来说,它又多了一种新的功能。
该程序对Android智能手机的硬件有一定的要求:要求手机的摄像头支持自动对焦,中高档的Android智能手机都能满足这个要求。
2 程序设计
根据商品盘点的工作流程,我们的这个盘点程序主要的功能模块有两个:一是库存管理模块;二是条码扫描模块。
另外,我们还要考虑手机与其他设备的配合使用。
下面我们分别来进行介绍。
2.1 库存管理模块的设计
库存管理是由数据库系统实现的。
Android平台内置一个小型的sqlite3数据库,这使得Android智能手机可以支持数据库程序的运行[1]230-264。
sqlite3数据库使用简单、灵活,支持常用的SQL语句。
在Android平台下,有两个类库完成对sqlite3数据库的操作,分别是android.database和android.data-base.sqlite。
在类库android.database.sqlite中,抽像类SQLiteOpenHelper对sqlite3数据库进行管理,可
—
7
0
1
—
* [收稿日期] 2012-03-21
[作者简介] 曹郁辉(1967-),男,十堰职业技术学院党委工作部实验师。
何银平(1968-),男,十堰职业技术学院党委工作部讲师。
胡昌龙(1979-),男,十堰职业技术学院党委工作部讲师。
以创建或打开一个数据库。
抽像类在使用的时候一定要继承:
public class DatabaseHelper extends SQLiteOp
en-Helper//定义一个类DatabaseHelper来继承抽象类SQLiteOpenHelperdbHelper?=?new?Data-baseHelper(context,“storage”);//以“storag
e”数据库实例化一个名为dbHelper?的DatabaseHelp-er对象。
在类库android.database中,可以通过执行SQL语句对数据库进行操作,也可以使用直接对数据库进行增、删、改、查的方法:
SQLiteDatabase db=dbHelp
er.getWritableDa-tabase(
);//以读写的方式打开数据库用SQL语句操作数据库:db.execSQL(“insert into g
oods(name,amount)values‘帽子’,4)”);//在表goods中插入name字段为“帽子”,amount字段为“4
”的记录用方法操作数据库:
db.delete(“goods”,“amount<?”,new String[
]{“0”});//在表中删除amount小于0的记录
在设计sqlite3数据库的表时要注意,sqlite3只支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)五种数据类型,但是它可以保存任何类型的数据到你所想要保存的任何表的任何列中,无论这列声明的数据类型是什么。
这意味着在我们设计程序时可以有更大的灵活性,但也带来了很大的风险,如果我们不事先规划好数据库的结构,到最后会造成很大的混乱。
本程序从简单实用的角度出发,只设计一个表,包含五个字段:id(序号),name(物品名称),barcode(条码),amount
(数量)。
2.2 条码扫描模块的设计Android程序在条码扫描上的应用要依赖一个
名为Zxing的开源组件,
该组件支持多种格式的一维条形码和现在流行的二维码的制作和识别,包括一般商品常用的EAN-13条形码[1]3
75-425。
该组件在http://code.google.com/p/zxing可以下载,
现在的版本是2.0。
使用该组件时首先要将其核心文件core.jar导入到项目中去。
core.jar文件的源码在下载的Zxing压缩包里提供的有,可以自己编译。
网上也有热心网友编译好的文件。
Zxing的使用方法网站上并没有详细的说明,但是提供了完整的实例源码和类库的文档。
通过分析该源码可以发现,该源码功能完善,但是很多功能我们都用不上。
我们需要的只是扫描EAN-13格式的条形码,并将解码结果传递给库存管理模块。
因此可以根据源码进行简化,变成我们所需要的程序。
首先去掉多余的包,在Zxing提供的实例源码中,book、encode、history、result、share、wifi六个包都可以去掉。
然后简化用户界面,把res文件夹中不需要的资源去掉,并简化用户界面的xml文件,只保留与图像捕捉相关的资源。
最后简化代码,该源码的入口Activity是CaptureActivity
,处理扫描结果的类是CaptureActivityHandler,简化代码也是主要在这两个文件中。
我们把CaptureActivity
.java中我们不需要的内容进行更改或删除,并将CaptureActivityHandler.java中处理扫描成功的结果直接传递给库存管理模块。
另外,为了应对有些条形码难以识别的情况,再增加一个手工录入条形码的功能。
2.3 与个人计算机的接口虽然这个具有库存管理模块和条形码扫描模块
的程序可以进行盘点了,但是由于手机硬件的限制,使用上还有一些不方便之处,比如商品原始资料库的建立,如果通过手机来进行,会相当麻烦,因为手机没有方便的键盘和视野开阔的屏幕。
如果能通过
台式PC机或笔记本这样的个人计算机进行原始资料库的建立,再把数据传输到手机中,工作效率会更高。
同样,手机形成的库存数据也可以传输到个人计算机中进行进一步的处理。
我们可以这样来进行操作,首先设计一个将
sq
lite3数据库与Excel文件相互转换的程序,在个人计算机中,
我们用Excel建立商品的原始资料库,再用我们设计的转换程序导入到手机当中去。
手机
当中形成的库存数据我们也可以通过该程序导出到个人计算机当中的Excel文件中。
该转换程序使用一个名为JXL(Java Excel
API)的开源框架来实现[2]
,在处理Excel与数据库的一些应用接口当中,
J
XL框架对中文的支持是比较好的。
JXL读取Excel文件的方法://首先引用JXL的相关包Import jxl.Cell;Import jxl.Sheet;Import jxl.Workbook;……
Workbook?book=?Workbook.g
etWorkbook(newFile(“MyFile.xls”));//?获得一个工作表对象Sheet?sheet=book.g
etSheet(0);//选择工作簿sheet1—
801—曹郁辉,何银平,胡昌龙:用于Android智能手机的盘点程序设计
Cell?cell1?=sheet.getCell(1,1);//?选择第二列第二行的单元格即B2单元格
String?result?=cell1.getContents();//获取单元格内容
3
小结
图1 程序截图
通过上述程序设计过程最终完成的程序,基本
能够满足我们库存盘点工作的要求(见图1),而且还有很多提升的余地。
比如利用Android智能手机的wifi联网功能,我们可以直接将手机与个人电脑连接起来,数据处理将更加通畅便捷。
我们还可以在库存管理模块当中增加进货和销售的前端,这样android智能手机就可以直接对进销存进行管理了。
该程序丰富了Android智能手机的应用,方便了人们的生活,并且有良好的前景。
[参考文献]
[1]裴佳迪,马 超,孙仁贵.Android应用开发全程实录[M].北京:人民邮电出版社,2012.[2]张明辉,王清心,王正玉.基于Java Excel
API的数据库数据导入导出方法研究与实现[J].现代电子技术,2012
(4):45-
47.Programming a Inventory
Software For the Android SmartphoneCAO Yu-hui,HE Ying-ping,HU Chang-long
(Party
committee work,Shiyan Technical Institute,Shiyan 442000China) Abstract:This paper introduces the key technology of programming inventory
software for android smart phone.It focuseson database management design,code bar scanning,data interface desig
n between smart phone and PC in android platform.This paper also points out how to improve this program,and helps android smart phone widely
used. Key
words:Android,smartphone,inventory,Programming—
901—十堰职业技术学院学报
2012年第3期第25卷第3期。