一、安装虚拟串口软件
虚拟串口软件推荐 Virtual Serial Port Driver 官网 和 Virtual Serial Port Kit 官网 都可以免费试用15天。
这里以Virtual Serial Port Kit为例,打开安装好的Virtual Serial Port Kit,点击菜单栏的新增图标
然后选择两个端口点确定即可
1.1 测试虚拟串口是否正常工作
为了测试虚拟串口设备是否能正常工作,我们可以使用串口调试助手进行测试,这里以 友善串口调试助手 为例
运行两个调试助手,端口选择与上图对应,其他配置需要一致,测试数据的收发是否正常。
二、AndroidStudio 模拟器挂载串口
先说结论,不推荐使用AndroidStudio自带的模拟器进行串口调试,因为实际测试中发现,当模拟器接收超过8字节的数据后会卡死闪退...
一开始以为是代码哪里写的有问题,其实是谷歌官方的bug。
2.1 Android模拟器安装
从Android5.0之后,模拟器就默认没有root权限了,所以我们要安装一个带root权限的模拟器,在创建模拟器选择镜像的时候,选择名称中不带Google APIs的即可
2.2 映射串口到模拟器
首先进入AndroidSDK下的tools目录
Win + R 运行cmd 转到AndroidSDK下的tools目录,然后通过命令行方式启动模拟器
.emulator.exe -avd 模拟器名称 -writable-system -qemu -serial 创建的虚拟串口设备端口
例如:.emulator.exe -avd Nexus_10_API_30 -writable-system -qemu -serial COM4
可以将以下代码复制到文本文件中保存,并修改后缀名为.cmd,以后双击即可启动
注意修改为自己电脑上的对应路径和盘符!!!
注意修改为自己电脑上的对应路径和盘符!!!
注意修改为自己电脑上的对应路径和盘符!!!
D:
cd D:Androidandroid-sdktools
.emulator.exe -avd Nexus_10_API_30 -writable-system -qemu -serial COM4
没有问题的话就会出现以下对话框,按自己的需求选择
成功启动后的模拟器
2.2 打开模拟器串口权限
映射成功后,打开串口可能会报SecurityException异常,这是因为没有读写权限,安装带root的模拟器也是为了这一步。
这里以 /dev/ttyS0为例
执行以下命令
.adb.exe root
.adb.exe shell
setenforce 0
chmod 666 /dev/ttyS0
设置完成之后即可收发数据
三、Genymotion模拟器挂载串口
3.1 安装Genymotion模拟器
Genymotion下载,选择带VirtualBox版本安装,一路下一步即可完成安装。
完成安装后打开软件,点击+号图标添加一个模拟器,默认设置即可
3.2 映射串口
打开Oracle VM VirtualBox 选中刚才创建的模拟器,点击设置,如果已经启动了模拟器,需要先关闭。
切换到串口设置,有4个端口 我们启用第一个
端口编号:COM1~COM4 分别对应/dev/ttyS0 ~ /dev/ttyS3,如果在应用中操作的是ttyS0,这里的端口编号应该选择COM1,
一定要对应,不然打开串口的时候还是会报SecurityException异常。
端口模式:选择主机设备
路径/地址 :输入在虚拟串口软件中设置的端口 ,比如COM1
点击确定即可完成映射,如果遇到权限拒绝,参考2.2 临时关闭防火墙 修改串口的可读写权限
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!