Android模拟器调试串口

1,458 阅读3分钟

一、安装虚拟串口软件

虚拟串口软件推荐 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:\Android\android-sdk\tools
.\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 临时关闭防火墙 修改串口的可读写权限