首页
社区
课程
招聘
[原创]VS2015开发调试Android第二大坑,修复VS的可调试设备列表中找不到Google官方的AVD的问题
发表于: 2016-12-5 06:41 7348

[原创]VS2015开发调试Android第二大坑,修复VS的可调试设备列表中找不到Google官方的AVD的问题

2016-12-5 06:41
7348

这个问题最近两个月才发现,可能是VS不兼容谷歌最新发布的Android SDK中的系统镜像或者ADB造成的。
深入研究发现是VS2015的libadb模块没处理好与AVD安卓虚拟机设备进程的telnet协议通讯。
libadb认为请求返回的都是直接的明文结果而不包含其他的控制字符命令的字符串文本。结果却刚好相反,包含了那些控制文本插入符滚动及插入碎片文字的命令。详情请翻阅telnet协议,参考程序是ReactOS中的telnet程序实现,这个实现是正确的,处理好了这些命令。
所以我们修复之,返回给libadb简单直接的明文文本。
修复方法见源代码,涉及到私有库中的几个函数请自己实现。
使用方法:
第一步,将下载的附件中的msimg32.dll放在X:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE目录下面重启VS2015即可。
第二步,将C:\Users\你的用户名\.emulator_console_auth_token这个文件的内容清空后保存。没有这个文件就自己新建一个。这的文件包含一串符号内容也是导致VS找不到AVD的原因之一,必须清空。
也不知道VS2017何时发布正式版。正式版不知道会不会注意并修复这个问题。先自己解决了。
   AVD调试速度比用手机快多了,第三方的安卓虚拟机大多是为游戏而开发不适合开发调试,微软的安卓虚拟机OpenGL ES很多函数没实现好,调试游戏会报错并崩溃,且依赖Hyper-V,开了Hyper-V笔记本就无法睿频了硬伤,现在x86的AVD已经运行很快了,所以我选择了尝试用AVD去做开发调试。
20161207:改进了不再会每隔5秒就启动adb进程来获取最新的AVD设备列表了,现在是通过网络通信的方式来获取。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 1
支持
分享
最新回复 (5)
雪    币: 967
活跃值: (1138)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
已经发布了vs2017 建议测试一下,我一般用android studio
2016-12-5 07:03
0
雪    币: 4473
活跃值: (5074)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
那还是RC版,不是RTM正式版。
2016-12-5 07:05
0
雪    币: 484
活跃值: (872)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
英雄!请继续加油,我之前断断续续整了2个月,已经放弃了...
2016-12-5 09:05
0
雪    币: 3519
活跃值: (1842)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
5
新入坑,感觉新版android studio挺好的,调试so现在都是lldb了
2016-12-5 09:07
0
雪    币: 4473
活跃值: (5074)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
用了这么多年VS习惯了,现在PC没落了,手机兴起了,感觉还是VS强大,可惜这手机开发还实际是技术预览版,2017RC版貌似增强了很多可以导入xcode的工程了,期待正式版。也希望2017正式版别再安卓调试开发上坑爹了。
2016-12-5 14:03
0
游客
登录 | 注册 方可回帖
返回
//