壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3499|回复: 24

[ 分享知识原创连载]移动 POS Andriod端开发实践,欢迎同行交流

[复制链接]
发表于 2013/7/1 21:06:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本文为 "分享知识 原创连载" 活动推荐文章!

       我在鞋服行业很多年,基于国内的分销零售系统也了解很多,市场上存在的POS分为两种形式:
         1):在线POS,有的是用WEB Browser,有的是智能客户端,有的用远程终端也称为是在线POS
         2):离线POS:一般用dephi或者其它的开发语言,还有一种就是PDA.
      目前,国内的离线POS用andriod或iphone来作为载体的很少,鞋服行业我没有发现哪家是这样去做。
     我自已有一种预感,PDA可能还要被淘汰,时间是多久没有办法确定, 原因有三:
        1):现在智能手机盛行,购买PDA需要成本.
        2):PDA与智能手机相比,支持的功能有限,除了扫描二维码速度快
        3):PDA与其它手机APP交互难。
          移动APP与ERP相结合,这是我的一个尝试,如果尝试成功,很多方面都可以应用这方面。
         会员系统,物流系统等等.


该贴已经同步到 ESK分销ERP的微博

点评

送给兄弟一句话:每个人都有一段时间要忍受寂寞,就是别人在玩的时候你在钻研;  发表于 2013/7/12 19:16
已阅;Mark一下  发表于 2013/7/2 10:28

本帖被以下淘专辑推荐:

发表于 2013/7/6 13:03:55 | 显示全部楼层
个人简介:本人是一个标准码农,而且是写了14年代码的码农,非常喜欢钻研新技术,喜欢一个人大包大揽的那一种.自已写过两个软件,一个是ESK分销零售系统,另一个是ESK鞋服行业供应链系统.
连载主题:离线POS Andriod端开发实中践.
发布计划:2013/7/2,计划发布在供应链模块
更新周期:不一定,有时候一天,,有时候两天,有时候一周,直到项目能初步使用.
本连载的亮点是:
   虽然我是码农的老鸟,但做andriod端我也是第一次,希望展现给大家的是如何开发的过程.
其他要说的话:
   1):这只是一个测试,做完andriod端,我也希望做iphone端,Web App端(Html5).
    2):我一直相信一句话学无止境,有付出就会有收获.


纵横四海点评:和刘总认识也有很多年了,其实相当长时间我不知道他的真实姓名,但我对ESK这三个单词还是记忆犹新;他开发了自己的分销零售系统,这个在很多人看来是一个不可能完成的任务(至少是我,我主要关心业务),但他做到了;他的连载主要介绍andriod开发,看来我又得向他学习了;我对刘总的分享不设内容和形式,希望写这个连载就像自驾游,文字写到那里风景就到那里;
 楼主| 发表于 2013/7/7 09:49:31 | 显示全部楼层
今天开发服务器设置,挺简单的一个功能,确耗了我不少的时间.主要原因在switch的时候少写了一个break代码.
@Override
        public void onClick(View v) {
                switch (v.getId()) {
                case R.id.btn_ok:
                        String url=txt_serverurl.getText().toString();
                        if(StringUtil.isEmpty(url)){
                                StringUtil.show(this, "服务器地址不能为空");
                                return;
                        }
                        getEskController().setServicerUrl(this, url);
                        checkServer(url);
                        break;//这里是少写了.
                case R.id.title_left:
                        this.finish();
                        break;
                default:
                        break;
                }
        }
导致系统怎么都出错了。进度条出不来.通过logcat查看错误信息:
E/WindowManager(6277): Activity com.esk2.service.SetserverActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@42893610 that was originally added here
事后反过来想一想,由于我是第一次写andriod应用程序,难免碰到有一些不熟悉的。但是在解决这个问题的过程中,去接触到了不少的新东西.比如:网络编程,主界面线程等等.
接下来要设计andriod需要的表结构,创建表结构了.这个相对来说简单,主要是业务的东西.
1.jpg

评分

参与人数 1努力值 +20 收起 理由
纵横四海 + 20 赞一个!

查看全部评分

 楼主| 发表于 2013/7/2 09:37:01 | 显示全部楼层
本帖最后由 ESK分销ERP 于 2013/7/2 09:38 编辑

我要做的只是一个简易版的离线POS,只有一个前台销售功能,和市场上的那些离线POS,功能来说差很多,但POS这一块会尽量做到简单实用.
没做之前,我想象当中的这个app是具有如下的功能:
1):下载App后,初始化数据库,这个功能,自动建立数据库和表。
2):为了防止以后的升级,建表语句必须放在服务器上,如果放在本地,那每次改动,都要去升级app,麻烦.
3):初始化数据,需要先输入离线店铺编号,再初始化,自动从服务器下载基础数据:
   主要包括如下:
    1):商品资料,颜色资料,尺码资料,商品条码资料
    2):商品价格
    3):促销资料
    4):员工资料
    5):会员类别
    6):会员级别
    7):会员资料
    8):相关店铺参数
4):POS销售
5):销售单上传到服务器.
   

点评

已阅;Mark一下  发表于 2013/7/2 10:28
发表于 2013/7/1 22:51:30 | 显示全部楼层
智能手机目前只有摄像头作为输入设备,而传统的pos有扫描枪;我想知道你的想法是智能手机接一个扫描枪还是直接使用摄像头作为扫描端口呢?如果是摄像头作为扫描端口,扫描速度是不是一个问题?
 楼主| 发表于 2013/7/2 08:48:40 | 显示全部楼层
本帖最后由 ESK分销ERP 于 2013/7/2 08:55 编辑

扫描速度够不够还是看应用于哪个业务,如果对于专卖店这种,一天卖30单以下的,还是足够用的。
其二,科技是会发展的,难免以后扫描速度会提升。
PDA除了扫描速度是个优势,好象没有什么其它的优势了。

智能手机扫描就像扫二维码一样的,是不需要接外设的,以后商品的标签说不定就不要用条码了,直接用二维码,
客户一扫,商品的所有信息都出来了。二维码比起条码来,所载有的信息量多多了。

点评

已阅;Mark一下  发表于 2013/7/2 10:28
 楼主| 发表于 2013/7/2 09:25:31 | 显示全部楼层
移动APP For POS 刚开始规划的是:如果有无线网络,就直接在线提交数据,如果没有,就使用离线功能。
对于在线功能,需要服务器端提供Web Service接口。
对于离线功能,需要上传数据,和下载数据,也就是需要离线传输平台.
离线传输平台,我早先有设计过:
1):传输格式是json
2):如何增量传输,也就是原有表,加入一个数据戳字段,店铺端有一个记录这个表更新的最大时间戳。
1.jpg

点评

已阅;Mark一下  发表于 2013/7/2 10:28
发表于 2013/7/2 10:26:16 | 显示全部楼层
对JSON不了解,百度了一下,贴出来,也供其他朋友参考
名词解释:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
 楼主| 发表于 2013/7/5 09:40:24 | 显示全部楼层
这两天看了一下andriod语言,因为我对java比较熟悉,看起来还算比较轻松,其中也碰到了不少问题:
1):andriod上面的页面布局看起来很简单,好象什么都会,可实际一入手,还是很生硬的,没有办法,andriod每一个布局都去做了一个例子.
2):关于工程的图标,弄了很久.再手机上怎么都是显示默认机器人的图标,最后问了别人才知道,先把工程clean,再运行就可以了.
3):了解了一下andriod的框架,及运行原理。怎么去配置资源,它是如何找到资源了.
main.jpg

点评

界面都有了;  发表于 2013/7/5 10:00
 楼主| 发表于 2013/7/8 16:45:58 | 显示全部楼层
   接下来要设计离线POS要具有哪些表结构了,我一直在纠结是和服务器设计成一样的表结构了,还是另成一套。是需要增量下载了,还是每次全部删除重新来.
   目前是这样设计,在服务器端设计建表语句,andriod端通过Server URL去取到所有的建表语句,每次下载都是删除,再重新全部下载。
        <bean id="offposManager" class="com.esk2.service.pos.OffposManager">
        <property name="tables">
                <map>
               <entry key="TBSCOLOR">
                                 <value><![CDATA[
                                           CREATE TABLE TBSCOLOR (
                                                   TBSCOLORID           INT                  primary key ,
                                                   CODE                 VARCHAR(20)          ,
                                                   NAME                 VARCHAR(20)          ,
                                                   MEMO                 VARCHAR(50)          ,
                                                   BARCODE              VARCHAR(20)         
                                                )
                               ]]></value>               
                        </entry>       
               <entry key="TBSSIZE">
                                 <value><![CDATA[
                                        CREATE TABLE TBSSIZE (
                                           TBSSIZEID            INT                  primary key,
                                           CODE                 VARCHAR(20)          ,
                                           NAME                 VARCHAR(20)          ,
                                           ROWINDEX             INT                  ,
                                           COLINDEX             INT                  ,
                                           MEMO                 VARCHAR(50)          ,
                                           BARCODE              VARCHAR(20)         
                                        )
                               ]]></value>               
                        </entry>               
               <entry key="TOFTIMESTAMP">
                                 <value><![CDATA[
                                        CREATE TABLE TOFTIMESTAMP (
                                           TOFTIMESTAMP         INTEGER             primary key,
                                           TABLENAME            VARCHAR(30)         ,
                                           MAXTIMESTAMP         BIGINT              
                                        )
                               ]]></value>               
                        </entry>                                                                                       
                 </map>       
        </property>       
    这样做有个好处,如果以后的ios端也需要建表,也是只要取过来就可以。
   我喜欢使用Hibernate,可andriod端没有Hibernate,通过Baidu找到一个开源的,自已改一改,改成自已想要的。
发表于 2013/7/8 18:48:38 | 显示全部楼层
ESK分销ERP 发表于 2013/7/8 16:45
接下来要设计离线POS要具有哪些表结构了,我一直在纠结是和服务器设计成一样的表结构了,还是另成一套。 ...

每次都重新删掉再创建表结构?会不会有性能问题呢?系统到后期表结构应该会很稳定,基础表结构都不会改变吧;


 楼主| 发表于 2013/7/9 10:33:44 | 显示全部楼层
这只是练习,不是真的商用的。

点评

最近几天有进展么?  发表于 2013/7/11 06:08
 楼主| 发表于 2013/7/12 09:03:58 | 显示全部楼层
最近ios项目出了点问题,我得切进去,所以andriod 离线pos得延迟,估记到8月份才可以重新开始.
 楼主| 发表于 2013/7/28 10:36:59 | 显示全部楼层
    开始进行建数据库和表了,在andriod里面是SQLiteOpenHelper,这个类功能比较简单,初始化的时候会自动生成数据库,OnCreate里面建表结构,OnUpdate里面升级表结构.
    这里有一点注意,建表语句Create Table在使用autoincremeent时候,主键对应的类型为:Integer,不要写int.我就因为写了int,找了些时间,才把问题找出来.
   数据库建好了,怎样查看里面的数据呢?可以下载一个SqlLite export,从手机里面或者模拟器里面把数据库文件down下来就可以看了
    1.jpg

点评

哥们是不是要更新了?  发表于 2013/8/22 20:34
很有价值;宝贵的总结;  发表于 2013/8/14 06:36
发表于 2013/7/29 11:32:56 | 显示全部楼层
对于企业应用的移动设备而言,可能看场景。传统基于嵌入式linux和wince的设备在稳定性等方面是有沉淀的,目前的andriod嵌入式扩展、集成性好也是优势。如果连锁零售等这类“商用”会是趋势,一些工业环境等传统的PDA依然有很大作用,不过也在进化,如用andriod系统作为os。另外主板、ic方案这些水也很深的。
发表于 2013/8/9 10:42:46 | 显示全部楼层
手机POS比较吃香,会是趋势,但最好有个会员管理模块,和会员卡,可以采用微信会员卡,会员卡可以计次,打折,优惠等
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/28 22:09 , Processed in 0.070072 second(s), 33 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表