http://blog.csdn.net/tangcheng_ok/article/details/7168993


这段时间主要做串口设备相关的应用程序,这里总结下串口设备实现的方案以及与Web之间的交互。前段时间有写过一篇关于串口应用程序实现的原理Android 串口编程原理和实现方式(附源码),以及Android调用WebService之服务端实现(一)以及Android调用WebService之客户端实现(二)。这几篇博客只简述了代码的实现,并没有做更多的说明,借这篇文章来简单做个记录。

一、USB转串口在Android中的实现方式

a) 串口读写的实现方式:在Java中实现串口的读写比较简单,调用Java标准的API对文件设备进行读写即可,通过JNI打开设备并返回设备文件,在Java中直接对其操作。


b)读串口通过启动一个线程读取串口信息,这里必须注意的问题是:

1、由于在Java中是通过InputStream.read(bufferSize)来读取串口信息,而read方法会一直阻塞,等待读取数据;

2、读取串口信息时并不是一次读取所有传过来的信息,而是每次读取不同长度的数据。

根据以上两点在开发的过程中要监听数据是否传递完毕,必须通过传递一个束符来判断

写串口,也就是发送命令,串口发送数据的方式有几种,主要是发送不同的编码,二进制,16进制等。16进制发送,发送格式如(AA BB CC DD),必须按照这种方式发送数据,否则不会响应,可以使用“串口调试助手”进行测试。

二、Web程序与Android应用程序的交互方式

目前在Android中与Web程序进行数据交互有两种方式


a) 使用Android提供的空间WebView,可以在Android程序中调用JavaScript的方法对表单进行赋值,也可以再JavaScript中调用Android中的方法执行相关操作;

b) 通过SOAP调用WebService服务,将Android的数据传递到Web服务,再由Web服务做相关处理。

建议在服务端实现Web Service,供客户端调用,可以简化客户端(Android应用)实现相关功能。若是如此,在Android应用程序中便可以非常简单的实现登录注册等功能,然后将数据传递到服务器,由服务器处理。

以Android调用Web Service为例:Android通过为挂设备扫描数据,将数据转换成JSON格式或者XML格式,传递到服务器,服务器根据具体的业务需求判断数据是否完整或者登录是否成功,将信息反馈到客户端。客户端做相应的处理。


由于这几个项目跟Web应用程序相关,所以这里并不建议使用WebView来实现于Web进行交互。如果必定要用WebView来实现具体的业务需求,就需要实现部分浏览器的功能,而使用Android应用程序则可直接调用浏览器。在上面的流程图中的“其他操作”中,假设模拟的是一个登录功能,服务端可以返回一个链接,在Android程序中可以用这个链接直接在默认的浏览器中打开!

三、其他

开发过程中必须明确理解业务需求编写相应文档进行开发,关于数据传递需要与服务端开发者进行沟通,制定相关接口。

四、参考资料

《串口通讯编程实践》作者:龚建伟熊光明 2004年10月第一版电子工业出版社

《Linux下串口通讯编程与调试》

《JNI详解》

串口调试助手

原创文章,转载请注明出处:http://blog.csdn.net/tangcheng_ok

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. mybatisplus的坑 insert标签insert into select无参数问题的解决
  3. python起点网月票榜字体反爬案例
  4. python list.sort()根据多个关键字排序的方法实现
  5. Android核心功能模块介绍
  6. android静默安装的实现(一)
  7. android. MVC三层分层
  8. Android通讯录数据库介绍与基本操作(增删改查)
  9. AndroidのTween动画实现

随机推荐

  1. Android.mk加入aidl编译
  2. ADSL - Android AVD 不能上网问题
  3. Android之关于onSaveInstanceState和onRe
  4. Android模拟器虚拟串口实现串口通信
  5. android 调用系统相机拍照,并保存到SD卡
  6. [android]通讯中常用到的Helper
  7. [置顶] android触摸屏校正详解
  8. android6.0源码分析之Runtime的初始化
  9. Android(安卓)OkHttp基本用法
  10. Android 开发 API指南 如何查找最佳匹配