基于Android实现的小型仓库管理系统

攻城狮0829

发布日期: 2020-12-09 17:44:07 浏览量: 697
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

1 开发背景

1.1 系统开发背景与意义

随着企业业务量的逐渐增加,业务范围的不断扩大,特别是中国进入之后,市场竞争日益激烈,企业需要更多的人力、财力、物力’以稳固并扩展企业产品在市场中的销售额如何更加有效地管理产品的生产、销售已成为企业领导的重要决策事项。目前某电子企业主要从事电子品加工,从供应商处购买电子产品,进过加工,写入电子数据后进行销售,企业中存在相对频繁的出库入库,到目前为止,企业还没有一套完整的,行之有效的仓库管理系统,目前面临着仓库管理混乱,手工盘点复杂,账目不符等实际问题,所以迫切需要一套库存管理系统来解决手工记录、管理混乱、人员不可替代等问题。迫切需要一套简易、实用的符合企业自身情况的库存管理系统。本系统以某小型监控设备销售公司为例,这类小型销售公司为加强库存管理,保证库存设备的有序存放、销售记录,需要定制开发其内部的仓库管理系统,系统主要对入库设备进行记录,对设备使用情况进行记录,系统主要由仓库保管员进行操作。由于仓库存放设备较为单一。

如今的移动应用开发产业着实让人眼花缭乱,主要的移动操作平台有:IOS (iPhoneOS)、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite、mobile web (WAP/XHTML/CSS/Javascript)。IOS虽具有其独特的硬件特性(加速器、光线传感器、接近性传感器、触摸传感器)、系统特性(音频、视频播放,邮件及地址标记),然而它也存在着很明显的不足,如:提供给用户的内存空间小,不支持Flash,配备蓝牙却不能传输文件。不能实现应用的并行。Symbian主要基于C语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便,另外塞班版本之间兼容性差也是SymbianOS需要改进的一个地方。就目前而言,三大平台(IOS、Symbian、BlackBerry)的市场占有率也在逐渐下降,而与此同时一个后起的既具备高硬件配置,又具备开源性的平台渐渐地发展壮大起来——Android。

Android平台的市场优势

  • 第一、Anroid是一个手机开发平台。目前每天有超过16w的Android设备出货,Android的设备量在一年左右就会超越iphone成为智能手机平台的旗舰

  • 第二、Android是用java开发。从全球的编程语言排行榜来看,Java一直占据着第一的位置,而用做iphone应用开发的Object C语言才刚步入开发语言的前10位,而在中国有最多的Java开发人员

  • 第三、Android入门很容易,代价小

  • 第四、Android在中国尤其受欢迎。中国的各大运营商都加入和Android的开放联盟当中,都在出Android的手机,厂商如moto,联想,三星,索爱等都在出Android的手机

1.2 研究内容

根据项目实施进度进行,专业的大型进销存系统釆购成本高,系统虽然功能齐全,但是距离本企业的实际工作存在较大差距,存在软件功能的浪费,基于以上原因不考虑采用购买软件的方式开发本系统。而本公司现有员工中部分人员具有软件开发能力,大多数员工也对软件幵发具有兴趣,所以考虑采用自主研发的形式开发本系统,系统主要实现库存管理的基本功能,满足日常库存管理工作为主要目的。另外,通过本系统的幵发可以提高本公司员工的软件开发能力,提高团队凝聚力,营造积极学习、不断提高的企业文化。

1.3 文档的组织结构

文档的组织结果安排如下:

  • 第一章概述了选题背景、项目目标及意义,介绍了目前现状,指明系统设计及实现的基本方向

  • 第二章概述了开发环境和相关技术,简述了Java和Eclipse,重点介绍了项目在开发中的应用,介绍了可行性分析和项目需求分析。首先从技术、经济、社会三方面进行了可行性分析

  • 第三章:进行了项目概要设计,一些图

  • 第四章:介绍了详细设计和实现

  • 第五章:进行了全文总结,一方面总结了在完成过程中学习到的内容,另一方面说明了现存问题,展望了进一步工作

2 需求分析

2.1 可行性分析

软件需求分析就是通过调查研究和有效的沟通以及建立系统的数据模型、功能模型和行为模型,使用户和开发人员就“系统必须做什么”这个问题达成一致意见,最后生成软件需求规格说明的过程。软件需求分析的过程就是对用户或企业意图不断揭示的过程,需要对系统进行可行性研究之后,对系统目标做出分为详细的描述。

2.1.1 技术可行性

Eclipse在开发Java项目方面应用多而广,是一个成熟可行的开发平台。Java语言也是成熟的开发语言,能够满足此次要求。在开发方面,无论是开发平台,还是开发语言,对于开发人员来说都是熟悉且能易掌握的。在从硬件方面来看,时下的硬件容量不断扩大,可靠性日益渐涨,性价比越来越高,对于本项目开发而言,足够满足需求。

由以上分析可知,本软件在技术上是可行的。

2.1.2 经济可行性

经济可行性是指对项目的成本和收益进行分析,具体内容包括两个部分:新系统所能带来的经济效益和该经济效益是否超过系统开发和系统维护所需要的费用。

对于本项目而言,在系统开发和系统维护方面的开销很小,没有过多的硬件投入,调试方便,开发过程中,Eclipse是开源免费的,本游戏在此开发环境下,不需要太复杂的工具和服务器支持,在完成过程中,也仅需要一台个人电脑以及在完成过程中上网查询所用到的人力资源以及文献资源。

综上所述,本项目在经济上是可行的。

2.1.3 社会可行性

社会可行性广义上可分为三大部分:道德方面、法律方面、社会方面。接下来将就这几个方面,对此次项目进行分析。

从道德方面来看,本次开发无论从过程中还是最终完成的产品上看均不涉及传播低级黄色内容、社会负能量。本次开发目的主要是借毕业设计巩固所学专业知识,一切皆以个人为单位,不涉及广泛传播及使用,对社会基本不造成任何不良影响。

从法律方面来讲,本次开发过程和最终产品因开发目的不涉及版权、社会安全等法律问题。在开发过程中,参考的所有文献会列明,尊重知识产权,尊重专利版权,不会将产品投入社会使用。

从社会方面来谈,本次开发是对已有成果的一次学习和开发体验,虽不能带来很大的社会价值,但不同程度上实现了开发者个人价值。因不涉及产品推广,所以不涉及产品带来的社会经济效益和社会影响力。

由以上分析可知,本软件具有社会可行性。

2.2 功能分析

该系统的客户端定位于Android手机平台。系统的用户信息和聊天信息在客户端存储在Android平台自身所带的SQLite数据库中,多媒体文件和图片文件存储在Android平台虚拟文件存储设备sdcard中。通过对聊天软件的调研,进行需求分析、总体设计、UI设计、数据库设计,采用Java技术在Android平台上实现聊天软件的各个功能模块,设计测试用例,调试并完善系统功能。

  • 基本信息管理,主要实现产品信息、供应商信息的增加、删除、修改、查询操作

  • 库存信息管理,主要实现产品的出库、入库以及产品信息的增删改差查操作

  • 系统设置,主要实现管理用户、修改密码、退出系统等操作

  • 统计汇总分析等系统功能,主要实现仓库仓储量的入库、出库数量的统计

解决思路: 通过对系统功能需求进行分析,在Android平台上开发此系统,利用Eclipse软件工具开发,利用MySQL数据库为系统进行后台技术开发,实现对系统信息的管理。其主要 功能为:用户管理、基本信息、库存管理、信息查询等模块。用户管理模块包括管理用户、修改密码,基本信息模块包括供应商信息管理、产品信息管理,库存管理模块包括添加入库、添加出库,信息查询模块包括查询入库、查询出库、库存查询。

2.3 关键技术

2.3.1 Eclipse

Eclipse 是一款优秀的跨平台的自由的集成开发环境(IDE),除了可作为Java的集成开发环境外,还可以作为编写其他语言(如C++和Ruby)。Java是一种可以撰写跨越平台的应用软件的面向对象的程序设计语言,具有优越的通用性、高效性、安全性和平台移植性,广泛应用于PC、科学超级计算机、游戏控制台、数据中心、移动电话和互联网等各个领域。

2.3.2 Java

体系

Java根据应用范围可以分为三个体系:Java SE、JavaEE、Java ME。

Java SE(J2SE,Java2 Platform Standard Edition,标准版)主要用于桌面应用软件的编程;JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版)主要用于开发分布式的网络程序,例如电子商务网站和ERP系统;Java ME(J2ME,Java 2 Platform Micro Edition,微型版)主要用于嵌入式系统开发,例如手机和PDA的编程。

工作原理

Java由四方面组成:Java编程语言,即语法;Java文件格式,即各种文件夹、文件的后缀;Java虚拟机(JVM),即处理*.class文件的解释器和Java应用程序接口(Java API)。当编辑运行一个Java程序时,需要同时涉及这四个组成。

本次项目开发基于成熟的Java语言,开发环境是Eclipse。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台,它使用简单,且占用电脑资源也比较少,便于系统的学习Java。Java语言具有良好的特性,是一种应用广泛的面向对象的程序设计语言。

Eclipse拥有漂亮的开发界面,基于标准部件库(Standard Widget Toolkit,SWT)开发。SWT是基于Java环境下的新类库,它提供了Java环境下的图形编程接口,SWT中的图形库和工具包取代了AWT和Swing。SWT直接调用操作系统的图形库,这使得Java程序的运行速度得到了保证,但是SWT的缺点是支持的平台太少。Eclipse也可以开发基于Swing的程序。

2.3.3 SQLite

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中用到了它,它占用资源非常的低,同时能够跟很多程序语言相结合,而且比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上SQLite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。SQLite最大的特点是可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据是什么类型的。

3 系统设计

3.1 Android系统架构

Android的系统架构和其操作系统一样,采用了分层的架构。Android分为四层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层,如图2-1所示。

应用程序层

Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序、日历、地图、浏览器,联系人管理程序等。所有的应用程序都是使用Java语言编写的。

3.2 应用程序框架

开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(需要遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。

隐藏在每个应用后面的是一系列的服务和系统,其中包括:

  • 丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至可嵌入的Web浏览器

  • 内容提供器(Content Providers),当一个应用程序想要访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据时都需要内容提供器的服务

  • 资源管理器(Resource Manager),它可以提供如本地字符串、图形和布局文件( layout files )非代码资源的访问

  • 通知管理器 (Notification Manager),使得应用程序可以在状态栏中显示自定义的提示信息

  • 活动管理器( Activity Manager),是Android开发中的重要的服务系统,用来管理应用程序生命周期并提供常用的导航回退功能

系统运行库

Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android 应用程序框架为开发者提供服务。以下是一些核心库介绍:

  • 系统C库:一个从BSD继承来的标准C系统函数库(libc),它是专门为基于 embedded linux的设备定制的

  • 媒体库:该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件是基于PacketVideo OpenCORE。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG

  • Surface Manager:对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合

  • 3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速

SGL:底层的2D图形引擎

  • LibWebCore:一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图

  • FreeType:位图(bitmap)和矢量(vector)字体显示

  • SQLite:一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎

Android 运行库

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。 每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由Java编译器编译,然后通过SDK中 的“dx”工具转化成.dex格式由虚拟机执行。

Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

Linux内核

Android的核心系统服务依赖于Linux 2.6内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。

4 系统实现

4.1 App端功能模块的实现

4.1.1 登录注册、修改个人信息

用户必须注册后方能使用系统功能:如下图4.1所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.1.2 修改密码

用户如需修改密码,点击修改密码按钮,如下图4.2所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.1.3 出库

用户如需出库,点击“出库”按钮,如下图4.3所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.1.4 提出改进app功能建议

如果用户对此功能有疑问或者有更好的建议,可以提交改进信息,管理员看到后会在后台处理,如下图4.4所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.1.5 入库

入库操作界面如下图4.5所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.1.6 入库记录界面

入库记录界面如下图4.6所示。

4.1.7 个人信息界面

个人信息界面界面如下图4.7所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.2 Web端功能模块的实现

4.2.1 管理员登录、修改密码

管理员不能修改账号和权限,唯一,可以修改密码,登录界面如下4.8所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.2.2 出库列表记录

出库列表记录如下图4.9所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.2.3 供应商管理

供应商管理如下图4.10所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

4.2.4 产品管理

产品管理如下图4.11所示。

布局部分核心代码如下:

  1. public void chongzai() {
  2. jishushengyu = 0;
  3. for (int i = 0; i < 8; i++) {
  4. for (int j = 0; j < 8; j++) {
  5. if (map[i][j] > 0) {
  6. jishushengyu++;
  7. }
  8. }
  9. }

5 总结与展望

在开始选择课题时就觉这个课题具有一定的新鲜感,因为在我平常的课业学习过程中从来就没有接触到有关Android的内容,而我现在庆幸自己选择了这个课题就好像我在人生的岔道口看到了方向指示牌一样,我又找到了自己的人生下一个目标——投身到Android开发当中去。

在课题设计过程中,阅读了一些关于Android开发的典籍,也查阅了很多的相关的资料,也吸收了不少前辈的开发经验。开发了这个app聊天交友小程序,说到开发,其实是边学习边实践,所以当中遇到不少的问题,一开始的环境搭配,由于各种资源难找的问题,也是花费不少时间。由于对该平台很多特性了解的不多,还引起了程序运行中内存溢出以及因为Java API和Android API的某些不兼容造成数据文件的移动困难。最终经过努力完成了系统的开发。

由于时间、和水平有限,本系统只具备简单的出入库、査询等功能,扩展性较差,并且不涉及到安全性方面功能;本系统在用户体验以及页面美工等方面还有待提高。使用开源的控件对窗口界面进行美化,加入图片以及。对系统的软件架构进行重新设计,加入安全性设计,并完善日志功能。小型企业仓库管理系统的设计与实现。

其中最重要的,也是容易让人忽略的就是Activity的生命周期,例如:一部手机正在单词学习的状态中,突然有来电呼入,那么我们最方便的感觉是,先接电话,而当通话完毕时返回到原来的学习状态可以继续学习,这就需要对活动的生命周期做一个仔细的理解:在Android平台上每一个进程都位于一个栈中。使用一个位于前台的Activity时,托管该Activity的系统进程位于栈的顶端,而上一个进程下移一个位置。当注意到这一点时,用户在使用系统时才不会中断学习的感觉。

总体来讲,本系统基本实现了需求功能,但还是有很多地方需要完善的,例如界面的美化和布局,还有背景音乐可以考虑直接取用URL,实现网络链接等,这些都还需要进一步的开发升级。

毕业设计是个很好的机会用于自我总结和进步,单纯的理论知识学习早已不能满足当下社会对于人才的要求,实践能力是大学生优秀素质的体现,也是对大学毕业生是否合格毕业的检验标准。三年的学习提供了很多实践条件和机会,在老师和小组团队的合作帮助下完成一些项目,用过C/C++、C#、Wab也用过Java。这一次的毕业设计是比较完整的一次独立实践的过程,过程中也遇到过很多问题,从不懂到懂,这些问题需要我自己去学习去领悟去应用,解决这些问题的过程让我受益匪浅,如果自我评价的话项目按预期完成了,但其实还有很多可以改进的地方,对于学习的编程思想掌握良好,对于项目设计过程熟悉应用,总体来说较为满意,希望在今后的学习实践中能有创造性的设计和发展。

上传的附件 cloud_download 基于Android的小型仓库管理系统的设计与实现.zip ( 76.08mb, 17次下载 )
error_outline 下载需要11点积分

发送私信

53
文章数
12
评论数
最近文章
eject