欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新

Android模拟器调试串口,这里以Virtual

来源: 开发者 投稿于  被查看 31631 次 评论:57

Android模拟器调试串口,这里以Virtual


一、安装虚拟串口软件

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

用户评论