Andriod Studio结合Visual Studio Emulator for Android调试Android App

2017-03-22 14:00:51

0. 工欲善其事必先利其器

说到开发就绕不开调试程序,调试Android App我们有2种选择,真机调试和模拟器调试:真机调试相对简单,就不做介绍了,还有一方面原因是由于安卓手机一旦插到电脑上,开始ADB调试后,各种的流氓软件净是往手机上装垃圾应用,妈蛋的;随后就试了几次Android Studio的模拟器之后,无限感慨,真尼玛的卡,卡,卡,,,是可忍孰不可忍.....

前些日子留意到微软发布了一款Android模拟器,随尝试一下,如是就有了这篇博文。

1. Visual Studio Emulator for Android

不得不佩服微软,模拟器做的竟然比Google自家做的要好,流畅多了,但是需要hyper-v的支持,怎么开启hyper-v这里就不做介绍了,度娘会给你一堆教程的。

Visual Studio Emulator for Android官方介绍页面

配置Android Studio的官方博客(本博客大部分参考资料来源于此)。

Visual Studio Emulator for Android下载地址。

下载完后是一个40M左右的vs_emulatorsetup.exe文件,不包含安卓模拟器的镜像文件,安装的时候会默认在线下载API 19(Andorid 4.4)的x86镜像,后续你也可以单独再下载其他的API xx版本,另外说明一下,Visual Studio Emulator for Android是不依赖Visual Studio的,也就是说可以单独安装使用,Android Studio是使用adb作为桥梁来连接Visual Studio Emulator for Android

安装步骤我就不列出来了,记得安装后重启(它需要把自己加入Hyper-V Administrators的管理员组里面)

安装重启后打开Visual Studio Emulator for Android,如下所示:

如果你启动了模拟器,则会在Hyper-V里面自动创建出对应的x86的Android虚拟机来,笔者的如下:

2. 设置Andorid Studio使其可以使用这些模拟器

打开Android Studio>Run>Edit Configurations>Defaults / Android Application General 选项卡的Target Device节点,勾选Show chooser dialogUse same device for future launches 记得不要忘记点Apply和OK。如下图:

3. 为Android Studio添加启动模拟器的快捷按钮

虽然在Visual Studio Emulator for Android的管理器窗口中可以启动模拟器,但是每次都要到这里面去打开还是比较繁琐的,故而我们为Android Studio添加一个启动Visual Studio  Emulator for Android的快捷按钮。

3.1 配置External Tool(VS Emulator (4.4 API 19)

打开File Settings > External Tools>Add

  1. Name:随便写,方便你认出来就好,笔者的是VS Emulator (4.4 API 19)

  2. Program:填写Visual Studio Emulator for Android安装目录下的emulatoecmd.exe的绝对路径,就是用它来启动模拟器的。笔者的是C:\Program Files (x86)\Microsoft Emulator Manager\1.0\emulatorcmd.exe

  3. Parameters:添加启动模拟器的参数,/sku:Android是说明打开Android的模拟器,/id:后面的Guid是模拟器的唯一编号,总的意思是指定要启动哪一个Android模拟器。id可以通过emulatorcmd.exe /sku:Android list /type:device获得,如下: 

  4. Working Directory:指定工作目录,应该是可以随便填写的。笔者的是$ProjectFileDir$。 

3.2 添加按钮(VS Emulator (4.4 API 19))到Toolbar

在toolbar空白处点击右键,选择Customize Menus and Toolbars。然后导航到Main Toolbar Add After >在弹出的面板中找到External tool > VS Emulator (4.4 API 19) 然后按OK如下:

然后点击我们新添加的按钮了,就可以启动Android模拟器了:

4. 为Android Studio添加Connect模拟器的快捷按钮

第三节的按钮只是启动了模拟器,但是Andorid Studio还无法连接到模拟器,这里就要使用adb命令来连接到刚才启动的模拟器上

4.1 配置External Tools(adb Connect (VS Emulator)

同样是添加一个快捷按钮,步骤和第三部一样,只是参数不同,这里我就只把参数列出来了:

  1. Name:随便写,方便你认出来就好,笔者的是adb Connect (VS Emulator) 。

  2. Program:填写adb.exe的绝对路径,笔者的是D:\_android\sdk\platform-tools\adb.exe

  3. Parameters:添加adb.exe的参数,connect ip:5555;笔者的是192.168.2.233:5555。ip可以通过打开模拟器在wifi中查看,也可以在模拟器的设置中network中查看
     

  4. Working Directory:指定工作目录,应该是可以随便填写的。笔者的是$ProjectFileDir$

4.2 添加按钮(adb Connect (VS Emulator))到Toolbar

步骤和3.2一样的,这里就不再解释了。贴个图吧:

5. 用Visual Studio Emulator for Android调试Android App

按下Run按钮(绿色箭头那个...),弹出选择Android设备的选择框:

OK啦,大功告成:

6. 进一步完善

每次调试前都要点一下启动模拟器的按钮,等模拟器启动然后再点击contect模拟器的按钮,然后才能点run调试,,,好繁琐。

我们来配置一下run之前要执行的命令,让run按钮把这三件事都做了!

打开Run > Edit Configurations > Defaults / Android Application / Emulator 选项卡的BeforeLaunch节点,把我们刚才创建的两个External Tool添加到此处记得不要忘记点Apply和OK,顺序如下:

 

这样我们以后调试就不用点3个按钮了,一个run全搞定,,,

but,,,我发现这个加进去后重启Andorid Studio后就消失了,,,有木有知道怎么解决的小伙伴,给支支招。


  • 2020-02-22 17:45:43

    tweenjs简单快速学习

    tweenjs 是使用 JavaScript 中的一个简单的补间动画库,支持数字、对象的属性和 CSS 样式属性的赋值。 tweenjs 以平滑的方式修改元素的属性值,需要传递给 tween 要修改的值、动画结束时的最终值和动画花费时间(duration),之后 tween 引擎就可以计算从开始动画点到结束动画点之间值,从而产生平滑的动画效果。

  • 2020-02-22 17:47:12

    easeJs入门学习教程

    createjs中包含以下四个部分: EaselJS:用于 Sprites、动画、向量和位图的绘制,创建 HTML5 Canvas 上的交互体验(包含多点触控) TweenJS:用于做动画效果 SoundJS:音频播放引擎 PreloadJS:网站资源预加载

  • 2020-02-22 17:54:59

    最新FullCalendar中文文档

    Fullcalendar是一款用来管理日程安排、工作计划的日历工具,它功能非常强大而且非常实用。而目前网络上没有很好的中文文档,为了更好的和大家分享Fullcalendar的相关使用,即日起计划将Fullcalendar的英文文档翻译成中文版。

  • 2020-02-22 17:57:05

    nuxtjs支持api接口,serverMiddleware

    Who can’t relate to this: You’ve built a small portfolio page for someone, maybe a company, a friend or yourself. And the only API endpoint you’d need is one for a form. What now? Scaffolding a new service just for this one endpoint?

  • 2020-02-22 17:59:34

    FullCalendar插件的基本使用带详细配置翻译

    前段时间,一直在开发考勤系统,当时为满足设计的需求,选了好几个插件,最后决定采用Fullcanlendar的插件。感觉这个插件可以满足现阶段的功能开发需求

  • 2020-02-22 18:03:10

    Vue组件中使用Sass或者Less全局变量

    本文以Sass做案例,Less的参考,基本配置大同小异。 假如我们有一个Sass的全局变量common.scss文件,路径 ../style/common.scss 代码如下:

  • 2020-02-23 23:27:26

    Nuxt.js 基础入门教程

    Nuxt.js 就是一个极简的 vue 版的 ssr 框架。基于它,我们可以快速开发一个基于 vue 的 ssr 单页面应用。