您的位置:首页 > 移动开发 > Android开发

Android模拟器使用PC端USB转串口调试

2016-08-01 17:26 183 查看
##Android模拟器USB转串口调试


最近公司需要做一个智能手表的指纹模块,在此硬件的基础上,做一个指纹登记、验证的系统应用拿

到指纹的开发板的时候,我整个人是懵逼的。这一块电路板和模拟器连接调试,完全没做过啊,但是

任务都下达了,作为公司Android挑大梁的(弱弱的说一句,只有我一个Android开发),这光荣而艰

巨的任务自然必须由我来完成了。然后就各种百度,几经波折,总算是解决了这一问题。

连接好线路之后,我就迫不及待地把开发板插上电脑,可能是由于自己电脑的缘故,驱动安装失败。

此时右键点击计算机,点击属性,打开设备管理器,展开端口。



有感叹号的表示驱动程序未安装,右键选择属性,再切换到驱动程序一项,安装或者更新驱动程序。



然后点击高级,把端口设置为COM1/COM2。因为发现使用其它端口根本无法启动模拟器,也没找到原因。

上面的步骤搞定之后,就可以开始连接模拟器调试了。

首先,创建一个模拟器,建议SDK为API23以下的,因为我使用的API23创建了模拟器,怎么都无法

通信,前车之鉴,不过大家也可以试一下,也许是我这边存在的问题。

模拟器创建完成,就需要挂载端口启动模拟器了。

运行cmd,进入Android sdk目录下的tools。比如我所在的目录为D:sdk/tools,输入cd D:sdk/tools回车即可。

-emulator @模拟器名 -qemu -serial COM1 回车,就是这么简单。模拟器未成功启动,说明配置还有问题,再去找找原因。

模拟器成功启动后就要开始与端口进行通信了,打开DDMS,我发现dev目录下有ttyS0,ttyS1,ttyS2,ttyS3等多个文件,究竟哪一个是可以与端口通信的?很多人说是ttyS2,我尝试使

用ttyS2。那么在打开端口通信之前,首先要确保有ttyS2的读写权限。

修改文件读写权限:运行cmd, adb shell cd dev chmod 777 ttyS2。使用这种方式修改

ttyS2的权限只能单次生效,然后运行就报错了,然后就用到了下面的方法。

*

‘/* 检查文件是否存在以及文件的读写权限 */

if (device != null && device.exists()) {

if (!device.canRead() || !device.canWrite()) {

try {

Log.e(TAG, “Test device name: ” + device.getName());

/* 没有读写权限,动态修改权限 */

Process su;

su = Runtime.getRuntime().exec(“/system/xbin/su”);

String cmd = “chmod 666 ” + device.getAbsolutePath() + “\n”

+ “exit\n”;

su.getOutputStream().write(cmd.getBytes());

if ((su.waitFor() != 0) || !device.canRead()

|| !device.canWrite()) {

throw new SecurityException();

}

} catch (Exception e) {

e.printStackTrace();

throw new SecurityException();

}

}

}’

*

解决读写权限的问题后,就可以开始验证哪个文件才是我们需要用来通信的了,最终发现

ttyS0是我所需要的,可以愉快的开发调试了。

第一次写博客,不对的地方还请多多指正,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息