Android程序调用串口开发硬件

  • 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文件 。
  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库。

Android程序调用串口开发硬件相关推荐

  1. Android下的串口开发

    一.前言 由于安卓的开源性以及可拓展性,近些年,Android在各种智能设备上的使用越来越多,如电视机.机顶盒.车载系统以及公交刷卡系统等等.在我们的认识中Android系统是手机系统,它的物理接口一 ...

  2. android java 指针异常处理,Android程序员日常开发中异常总结

    CaptainAndroid.png Java异常 平时开发中遇到的java异常很多,因为引起原因一目了然,当然也有不好解决的,比如一个简单的空指针异常你可能始终无法找到其为空的原因,甚至使用前还做了 ...

  3. android 程序调用wps,Android在调用像WPS这种第三方软件打开word时遇到ActivityNotFoundException...

    在工做的时候,项目中须要使用WPS打开office的东西,使用Intent比较简单.html boolean openFile(String path) { Intent intent = new I ...

  4. 如何在ios上运行android程序图标,iOS开发 Xcode 生成 应用图标 启动图 神器

    一.先来研究下这个软件->Appicon and Launchimage Maker 首先打开你电脑上的AppStore,然后搜索:AppIcon 然后回车: 这里我们先使用免费版的点击下载.( ...

  5. 解决android程序调用摄像头黑屏

    去掉surfaceChanged方法中的这段代码 // 根据屏幕方向设置预浏尺寸     if (getWindowManager().getDefaultDisplay().getOrientati ...

  6. Android USB串口开发

    因为第一次接触Android下的串口开发,在网上找了很多例子都不能满足自己的需要以及不能正常使用,于是结合网上的资源以及查阅资料,终于完成了关于这个串口的开发,在此记录下usb转串口通信开发的过程. ...

  7. QT for Android串口开发

    QT for Android 思路 一.所用到的头文件 1.打开串口 2.配置串口 3.接收数据 3.发送数据 最近在搞QT for Android开发,在网上搜了下解决方案发现都是需要java库的支 ...

  8. 躺不平又卷不动,30岁Android程序员当如何?

    在程序员这个行业,几乎所有30而立的中年人都有这样的困惑,躺也躺不平,卷又卷不停,真想躺但是一家老小的压力背在身上不敢躺,也想跟年轻小伙子们卷,但是心有余而力不足,自主学习能力下降,加班身体开始吃不消 ...

  9. android手机gps定位开发省电要点

    android手机使用GPS定位会非常费电.google工程师在quora上做了具体的解释,有兴趣可以看看 https://www.quora.com/Battery-Life/Why-does-GP ...

最新文章

  1. mysql流量控制_UDP流量控制之分析
  2. Android:基础控件按键文本框输入框制作登录页面
  3. 成功解决Exception unhandled AttributeError 'MainWindow' object has no attribute 'setDaemon'
  4. APScheduler 浅析
  5. hadoop3 禁用ec_Hadoop + Amazon EC2 –更新的教程
  6. 10万人参加过的公开课(大数据、AI、云计算、5G、物联网),你都学了吗?
  7. linux每日命令(28):chgrp命令
  8. jquery字符串转json
  9. 华北科技计算机组成原理,华北科技学院—《计算机组成原理》设计性实验报告.doc...
  10. Mariadb 安装 启动 及错误 1067 问题解决
  11. 为什么DataGridView不出现滚动条?它的ScrollBars属性我设置为Both了
  12. git 配置winmerge
  13. 对话即平台,一场对长尾理论的逆向革命
  14. 企业微信社群运营必建的4个内容体系
  15. 基于STC89C52单片机实现简易计算器
  16. 可以跟风不看好瑞幸,但真该相信浑水这份方法论偏差的报告吗?
  17. 计算机中存储数据最小的单位是什么,计算机中存储数据的最小单位和存储容量的基本单位各是什么?...
  18. EXT JS 4.3 在线学习
  19. python定义一个学生类姓名、年龄、性别、成绩、你成绩评价_.定义一个学生类Student,包含三个属性姓名、年龄、性别,创建三个学生对象存入ArrayList集合中。...
  20. 微信小程序 ECharts 水球图

热门文章

  1. 【2020年领域新星】 赵彦鹏 爱丁堡大学
  2. EFI系统分区,设定盘符
  3. 计算机设备维修记录app,设备维修保养管理软件电脑版
  4. 浙江省宁波温州台州绍兴卫星地图1省4市合一大高清图(2021年)
  5. ubuntu系统安装Nvdia Quadro P4000显卡驱动
  6. jQuery_03_操作HTML和CSS
  7. 用友与华为结盟私有云 谁将是背后最大赢家?
  8. 诺基亚7 刷android p,兑现承诺!HMD为诺基亚7 Plus推送Android 9.0正式版更新
  9. Could not set property ‘id‘ of ‘class com.example.demo.entity.User‘ with value ‘1488484032207781890‘
  10. java手机ua_通过UA判断手机的类型