会员中心
用户名:
密 码:
 
  忘记密码
邮政通信
基于Android手机的邮政商务投递应用设计
文章来源:本站原创  发布时间:2014-08-20  浏览次数:826
作者:李想
(大连市邮政局信息技术中心 116001)
摘要:介绍智能手机平台Android的系统架构,在分析手机用户和邮政电商用户投递需求的基础上进行相应设计,利用邮政国内小包平台应用接口、WEB服务和XML等技术,实现了基于Android平台的手机端邮政商务投递应用的基本功能。
关键词:Android手机、商务投递
1引言
      随着3G网络的使用及智能移动终端的普及,移动终端不再仅是通讯网络的终端,也将成为互联网的终端。基于开放式平台Android手机的应用软件和服务将会有很大的发展空间。Android平台支持各种先进的网络、绘图、3D 处理能力,能够提供更好的使用者体验,并能提供给普通开发者非常灵活的展示与控制功能。另外,Android平台基本上是免费的,能够有效降低软件的成本,这使邮政企业电子商务应用服务的设计与实现有了更好的平台。
      邮政为重点服务于电商客户和来自智能手机端的物流需求,推出了资费较低、时限较快的国内小包业务,通过各级邮政部门建立的商务投递系统,电商卖家可以在线下单、发货打单、跟踪轨迹、处理问题件、实现电子对账等。同时,投递人员使用手机端商务投递应用,减轻国内小包收寄数据的录入压力,提高数据匹配准确率,加快商务小包收寄速度,提高处理时限,满足现代化邮政电子商务发展的优质服务需求。
2 Android平台的结构及应用框架
      Android平台整体自底向上由以下四个层次组成: Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层。
(1)Linux内核层:Android 基于Linux Version 2.6.23内核开发的,主要是添加了一个名为Goldfish 的虚拟CPU以及Android运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为一虚拟的中间层,该层位于硬件与其他的软件层之间。
(2)Android运行时库和其他库层:Android运行时库包含一组核心库(提供了 Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的库类支持并且大部分为开源代码。
(3)应用框架层:在应用框架Android开发人员可以跟那些核心应用一样拥有访问框架APIs的全部权限。应用的系结构化设计简化了各组件之间的重用,简化了程序设计。
(4)应用程序层:Android本身附带一些核心的应用程序,包括E-mail客户端、短信程序、日历、地图、浏览器、通讯录等等。
目前所有的Android应用程序都是由Java语言开发的,其逻辑组成主要是通过使用应用程序框架层提供的有关组件构成。在Android SDK中内置了一些对象,其中最重要的组件有:Activity (活动)、Service(服务)、Content Provider(内容提供者)和Intent(意向)等。Activity是最基本的模块之一,所有程序的流程都运行在Activity之中。Activity一般代表手机屏幕的一个用户界面,在其中可以添加控件。一个Android应用是由多个Activity组成的,并可以进行相互跳转。Service是一个应用程序组件,长时间运行在后台,而没有用户界面,负责数据的更新,触发通知等工作。Android中内置了很多服务,可以方便的使用API进行访问。Content Provider主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件。
3邮政商务投递应用设计 
3.1设计目标
      基于Android 手机的邮政商务投递系统以手机应用的方式为客户提供邮政相关服务,主要设计包括:用户界面设计、与服务器端口通信;服务器端反馈数据的解析和显示等。应用设计界面交互简洁、扩展性强、数据通讯采用MD5安全加密处理。
3.2系统总体架构

      手机端应用服务扮演着与用户直接交互并提供服务的重要角色,它需要提供友好的、方便的用户操作界面,接收用户的各项操作并将这些操作转化成与之对应的命令,釆用用户活动的方式完成各个服务逻辑流程。整个系统采用间接通信的方式设计,邮政国内小包系统为电商客户提供了开放式的开发接口,基于Android手机端应用通过3G网络、WIFI访问INTENET,与中间服务器进行通信;服务端管理平台通过HTTP POST方式,实现与邮政综合网中的国内小包系统数据对接。系统总体架构如图1:

3.3系统实现流程

      Android提供了文件方式来存取数据,数据以文件的方式存储在设备或其他移动媒介上,可以向其他应用程序请求并获得数据。我们采用数据存储在应用平台服务器上,瘦手机端、胖服务器端的设计方案。手机端:显示界面并进行简单计算和存储少量数据。服务器端:进行复杂的计算并进行数据访问,存放空间数据和复杂的属性数据。手机与服务端数据实时交互:商务投递平台服务器在服务端为手机端提供运算与存储服务,而手机端软件充当信息终端。因此,手机端数据处理流程为:获取用户输入的信息参数,构建相应的处理语句提交给服务端,获取服务器反馈的数据,显示相关信息。整体交互的过程可以表示为如图2:

3.4手机端功能
      登陆注册:已注册用户登录,非注册用户先注册再登录。
      寄件模块:选择手机地址簿或者商务投递系统服务端地址簿,填写发件信息,预约邮政收寄服务。
      查件模块:实现历史订单的查询,根据运单号查询已发送邮件的完整运输轨迹,将邮件的传输、处理与投递信息直接反馈给用户。
      收件人地址簿:通过个人账户在服务器端配置常用收件人名址信息。
      寄件人地址簿、草稿箱:通过个人账户在服务器端配置常用寄件人名址信息,邮件文本内容。
      邮政客户信息推送:在GPS开启情况下,当投递人员进入邮政网点或合作方附近辐射区域范围时,将相关客户信息以短消息方式发送到手机。
3.5服务器端功能
      邮政商务投递后台管理系统贯通邮政国内小包业务系统、中心局两子系统、投递反馈系统,实现了业务全过程的信息化。
      用户设置:商务用户个人基本信息、电子商铺账号、邮件面单模板、常用地址簿的设置。
      发件管理:根据用户电子商铺中的交易,实现订单管理、面单打印、邮件号确定、邮件反馈等服务。
      查件管理:邮政将商品妥投信息主动反馈,电商用户对已发货邮件派揽、收寄、投递信息实现智能查件、订单关注、时效预警。
      电子对账:实现商户与邮政方的电子对账、结算管理。
4关键技术的实现
      釆用集成开发环境MyEclipse 6.5,安装的SDK为Java Development Kit(JDK) v6.0,Android SDK r11以上,同时需要安装集成环境的Android研发插件ADT。因要使用地图功能,所以申请Android Maps API key,在XML布局文件中进行配置,使用 MapView (com.google.android.maps.MapView)对象调用Google地图,进行应用开发。
4.1获取XML格式信息
      手机端应用通过访问服务端提供的有关应用程序访问接口API,提交有关的信息查询参数给服务器;服务端根据所提交的参数,返回对应的符合某种格式的查询结果信息。可见,手机应用与服务器交互是关键技术之一。手机端大量的显示数据来自于服务器端,这些数据以XML格式来组织。
(1)手机端应用程序通过HTTP协议,将请求的URL发送到服务器端。实现代码如下:
      String path =“......”;//服务器的Action的访问路径
      URL url = new URL(path);//打开连接,得到连接对象
      HttpURLConnection conn =(HttpURLConnection)url.openConnection();
      //设置读取的时间
      conn.setReadTimeout(5*1000);
      conn.setRequestMethod(“GET”);
(2)服务器端Action的响应代码:
      Public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
      throws Exception{
      //从数据库获取客户端想查询的信息
      ………………代码省略………………
      SENT Form formbean =(SENT Form)form;
      request.setAttribute(“sent”,sent);
      return mapping.findForward(“sent”);
      }
(3)手机端从来自服务器的输入流中读取XML数据。
      InputStream inStream = conn.getInputStream();
(4)手机端对于XML的解析,Android直接提供了DOM和SAX两种解析方法,使用内存占用比较小的SAX方式,边读取输入流边解析XML数据。下面是构建一个SAX解析器的相关代码。
      Public list<Message>parse(String xmlPath){
      List<Message>messages=null;
      SAXParserFactory factory=SAXParserFactory.newInstance();
      SAXParser parser=factory.newSAXParser();
      //获取事件源
      XMLReader xmlReader=parser.getXMLReader();
      //设置处理器
      RiverHandler handler=new RiverHandler();
      xmlReader.setContentHandler(handler);
      //解析xml文档
      xmReader.parse(new InputSource(new URL(xmlPath).openStream()));
      messages=handler.getMessages();
      return messages;
      }
(5)将解析后的数据绑定到手机客户端Activity中,在UI中显示。以收件人地址簿为例。
      List<Video>videos = VideoService.getListSENT();
      List<HashMap<Sting,Object>>data = new ArrayList<HashMap<String,Object>>();
      For(SENT sent:sents){
      HashMap<String,Object>item = new HashMap<String,Object>();
      Item.put(“id”,sent.getid());
      Item.put(“name”,sent.getname());
      Item,put(“tel”,sent.gettel());
      Item,put(“addr”,emp.getaddr());
      Data.add(item);
      }
      SimpleSent sent = new SimpleSent(this,data,R.layout.item,new String []{“id”,“name”,“gettel”,“getdaddr”},new    int[]{R.id.name,R.id.gettel,R.id.geteaddr});
      ListView.setSent(sent);
4.2客户信息推送的实现
      通过调用 LocationManager中的 public void addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent  intent)方法来实现,前两个参数表示服务设施的经纬度,radius表示该服务区的半径。当Location Managr检测到投递人员进入该区域时,就会触发打包的Intent服务端调出相应的服务信息数据通过系统发送给手机,得到该区域需投递的客户信息。
5 结束语
      本文结合邮政商务投递手机端应用实际,通过介绍智能手机平台 Android的系统架构,利用邮政国内小包业务平台应用接口、WEB服务和XML等技术,实现了基于Android手机的邮政商务投递应用的基本功能,满足电商用户的邮政投递需求。目前,该应用已推广到大连地区邮政电商投递队伍中,实现与主流电商平台的数据对接,随时随地完成电商小包收寄、投递作业环节,提高了处理时限,使客户享受邮政商务包裹寄递业务的优质服务。
参考文献
[1]Android官方网站http://www.android.com/.
[2]王东华,《Android网络开发与应用实战详解》,人民邮电出版社,2012。
[3]明日科技,《Android从入门到精通》,清华大学出版社,2012。
[4]靳岩,姚尚朗,《Android开发入门与实战》,人民邮电出版社,2011.
[5]盖索林,《Google Android开发入门指南》,人民邮电出版社,2009。
[6]何孟翰,王世江,《Google Android SDK开发实战演练》,人民邮电出版社,2012.
网站首页 关于我们免责声明联系我们
版权所有:辽宁省通信学会  备案号:辽ICP备11005629
联系电话:024-22517766  地址:沈阳市沈河区北站路72号


网站建设:恒昊互联网络