Android 串口通讯集成

最近尝试做一做Android环境下的串口通讯,在网上找到了很多的资料。一步一步按照网上的做法进行配置。

如何配置可以参考(https://blog.csdn.net/qq_35952946/article/details/78863871)

我自己也记录下配置步骤,方便以后使用.

1. 需要下载谷歌的开源代码 android_serial_api

     下载连接:https://github.com/cepr/android-serialport-api

2. 右击java,新建package,名字为"android_serialport_api", 注意此处,名字必须是这个,写死.

3. 将已下载的源码当中的SerialPort.java、SerialportFinder.java拷贝到android_serialport_api包下

4. 建立jni目录,将源码当中jni目录下的五个文件都拷贝到新建的jni目录下

5. 建立jniLibs目录,将源码中的libs目录下的三个文件夹拷贝到jniLibs目录下。 由于我本地只设置了armeabi-v7a, 我就只拷贝了一个.

6. 在build.grandle(Moudle:app)中添加一句

配置完成,就可以使用了,网上的例子很多,可以参考下(https://blog.csdn.net/qq_35952946/article/details/78863871中的例子)。

我自己使用的测试环境是Android 8.0. 

private void initSerialPort() {
        //获取串口实例
        try {
            mSerialPort = new SerialPort(new File(sPort), iBaudRate, 0);
            mOutputStream = mSerialPort.getOutputStream();
            mInputStream = mSerialPort.getInputStream();
            mReadThread = new ReadThread();
            mReadThread.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

在测试机运行,执行new SerialPort的时候,提示  libserial_port.so  has text relocations. 

本人开发无经验,在网上查找原因,说是android_serialport_api和安卓高版本不兼容,网上也有多种解决方法,有些人是降低了build.grandle(Moudle:app)中targetSdkVersion版本,有些人采用了NDK重新编译了so文件。

网络上的说法可参考(https://blog.csdn.net/liufuliang163/article/details/78802901),说的很详细。

由于我使用的Android 8.0,我选择采用了NDK编译so文件。

于是我又在网上去找相关资料, 终于找到了一片文章,讲的很详细。

地址是: https://www.cnblogs.com/Andrew-XinFei/p/5608001.html

学习了该文章,我就尝试重新编译libserial_port.so文件.

1. 添加SDK环境变量:

2. gradle.properties添加

android.useDeprecatedNdk=true

3. 修改Android.mk文件 添加

LOCAL_LDFLAGS += -fPIC

4. 确认local.properties引用了正确的NDK路径,我的路径是

根据个人实际情况进行修改路径

5.打开jni所在目录(右击jni 选择show in explorer),然后进入jni目录(这个jni目录不是源码的目录,是当前app的jni目录,切记!)

6. 打开cmd程序 ,进入到该目录下,输入"ndk-build"进行编译,可以看到编译信息

可以看到main下新生成了一个libs目录(如果该目录存在,应该不会新生成吧),如左边红色箭头所示,目录下分别生成了三种样式的so文件。

上方红色圈圈是从源码拷贝拷贝的so文件,我自己将下方圈圈里的新生成so  拷贝到上方圈圈里,替换原来的 就可以了.

然后我删除了main下的libs目录。程序重新运行起,就不再出现text relocations问题了.

仅供参考.

发布了9 篇原创文章 · 获赞 11 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览