Android程序调用串口开发硬件

本文介绍了如何在Android应用中调用串口通信程序。首先,通过github下载android-serialport-api项目,然后将JNI文件夹复制到自己的工程中,并修改SerialPort.java的包名。接着,使用javah生成头文件,修改Android.mk和Application.mk文件,最后运行ndk-build生成so库。这样就完成了自定义的Android串口程序开发。
摘要由CSDN通过智能技术生成

Android程序调用串口开发硬件

Android的串口程序

  Adnroid开发串口程序与linux一致,本质也是对文件进行读写操作,不过为了能用java操作,需要导出为JNI格式的接口而已。幸运的是,该串口读写程序已经被开发好了,我们直接使用就可以了。
  github路径:android-serialport-api
  当然,你也可以从gitee上搜索该项目,大同小异,我们只要取启动的SerialPort.c文件即可。

工程编辑

  由于Android调用so库是通过jni方式实现的,所以so库导出的接口和你的程序包名严重相关。比如你自己的Android程序放在包com.demo.sdk中,你调用的so库的函数名类似Java_com_demo_sdk_SerialPort_xxx…(Java+包名+类名+方法名)。当然这个名字不用你自己记,javah会帮你生成。下面我们梳理下怎么生成自己的SerialPort串口库。

  1. 从github上下载android-serialport-api后,获取jni文件夹。复制该目录到你自己的工程目录中,删除其中的sh文件和h文件 。
    android-serialport-api文件夹
  2. 编写自己的SerialPort.java文件。当然,你可以参考上述项目中的SerialPort.java文件,只需要将启动的包名改成你自己的包名即可。
    在这里插入图片描述
  3. 按照包名生成路径,例如:
    在这里插入图片描述
    在路径jni文件夹中执行如下命令,生成自己的SerialPort.h头文件,将头文件中的导出函数替换到SerialPort.c中。
javah -o SerialPort.h -jni -classpath ../ com.demo.sdk.SerialPort
  1. 修改Android.mk,删除其中的TARGET_PLATFORM,修改Application.mk,删除生成目标的armeabi格式(ARM v5)。增加APP_PLATFORM := android-26,指定生成的版本。
  2. 回到上层目录中执行ndk-build.cmd,生成自己独有的SerialPort开发库。
PS D:\Android\work\test> cd jni
PS D:\Android\work\test\jni> javah -o SerialPort.h -jni -classpath ../ com.demo.sdk.SerialPort
PS D:\Android\work\test\jni> cd..
PS D:\Android\work\test> ndk-build.cmd
[armeabi-v7a] Compile thumb  : serial_port <= SerialPort.c
[armeabi-v7a] SharedLibrary  : libserial_port.so
[armeabi-v7a] Install        : libserial_port.so => libs/armeabi-v7a/libserial_port.so
[x86] Compile        : serial_port <= SerialPort.c
[x86] SharedLibrary  : libserial_port.so
[x86] Install        : libserial_port.so => libs/x86/libserial_port.so
PS D:\Android\work\test>

在这里插入图片描述
libs文件夹中即是生成的so库。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值