文章类型: ANDROID
关键词: Android串口操作,简化android-serialport-api的demo
内容摘要: Android串口操作,简化android-serialport-api的demo

Android串口操作,简化android-serialport-api的demo

2017/4/18 9:22:50    来源:apple    阅读:

最近在做android串口的开发,找到一个开源的串口类android-serialport-api。其主页在这里http://code.google.com/p/android-serialport-api/  ,这里可以下到APK及对源码。谷歌的代码库,无奈国内无法下载


https://github.com/cepr/android-serialport-api     GITHUB的地址,这个可以下载


    但是下载源码之后发现源码不能直接使用,而且源码结构较为复杂。关于串口的操作不外乎几步:


   1.打开串口(及配置串口);


   2.读串口;


   3.写串口;


   4.关闭串口。


android-serialport-api的代码使用了继承等复杂的行为,不容易使初学者很快掌握关于串口的上述4步,所以我特别自己写了一个demo,只有一个activity,其中包含了打开串口,写串口,读串口的操作,对于关闭串口,大家一开就会不明白怎么写了。


这篇文章主要参考http://blog.csdn.net/tangcheng_ok/article/details/7021470


还有http://blog.csdn.net/jerome_home/article/details/8452305


下面言归正传:


第一:


  说道android 串口,就不得不提JNI技术,它使得java中可以调用c语言写成的库。为可在android中使用串口,android-serialport-api的作者自己写了一个c语言的动态链接库serial_port.so(自动命名成libserial_port.so),并把它放在了libs/aemeabi 里,其c源文件在JNI中,大家在下载了android-serialport-api的源代码后,将这两个文件夹copy到自己新建的工程中即可。

blob.png

第二:然后将调用c语言写成的动态链接库的java类放入到src文件夹下的android_serialport_api包下,这里一定要将包名命名成这个,因为对JNI有一定了解的人就会知道,在写c语言链接库时候,函数的命名是和调用它的类所在的包名相关的,一旦包名与链接库中函数的命名不相符,就不能调用链接库的函数


第三:


android_serialport_api包下,有两个类,分别是SerialPort.java 和SerialPortFinder.java。


其中,SerialPort.java,这个类主要用来加载SO文件,通过JNI的方式打开关闭串口。


还有一个类SerialPortFinder.java,这个类是用来找到系统中可以用的串口的,如果你知道的android设备有什么串口,就不必使用这个类来查找串口了,一次简化我们的demo。


第四:加入我们自己的Activity类


  为了方便我记在android_serialport_api包下加入了我自己的MyserialActivity.java,大家从上面的图中也可以看见。


代码如下不贴了,在工作目录下的文件夹myserial里找找


功能比较简单,只有三个按钮,分别用来打开串口(buttonsetup),写串口(buttonsend),读串口(buttonrec),一个文本框用来显示串口接收到的信息。功能已经简化到了最简。


下面先说说在模拟器中使用串口的方法:


应先使用-serial选项打开你的模拟器,在dos里进入emulator.exe所在的目录里


输入命令emulator @AVD4.3 -qemu -serial COM1  在这里AVD4.3是我在eclipse定义过的模拟器,COM1是我pc机上的物理串口


接着命令输入:


adb shell 


  cd /dev


chmod 777 ttyS2


修改串口的读写权限


最后做好的界面如下:

blob.png串口软件 

先open串口,再send,另一台电脑串口就能收到send字符,另一台电脑发送一串字符串后在我的界面上点击rev按钮就会在REC空间里显示接收到的数据


↑ 上一篇文章:VC中的两种精确定时方法timeSetEvent和QueryPerformanceFrequency 关键词:VC,精确,定时,方法,timeSetEvent,Que.. 发布日期:2017/4/14 15:16:06
↓ 下一篇文章:总结android模拟器使用PC的串口调试程序的完整过程 关键词:总结android模拟器使用PC的串口调试程序的完整过程 发布日期:2017/4/19 10:04:58
相关目录:.NETANDROIDJAVA软件开发
我要评论
正在加载评论信息......