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后就消失了,,,有木有知道怎么解决的小伙伴,给支支招。


  • 2018-05-21 13:54:06

    laravel-nestedset:多级无限分类正确姿势

    Nested Set Model 是一种实现有序树的高明的方法,它快速且不需要递归查询,例如不管树有多少层,你可以仅使用一条查询来获取某个节点下的所有的后代,缺点是它的插入、移动、删除需要执行复杂的sql语句,但是这些都在这个插件内处理了!

  • 2018-06-02 00:29:58

    Android实现沉浸式状态栏的那些坑

    最近项目需要实现沉浸式的状态栏,其实我在之前就了解过Android的沉浸式,发现有些棘手就放弃了,但是此次是公司的项目需要的,就花了几天把这个问题搞定了,在此记录一下,并mark几个坑。 首先,沉浸式是Android 4.4及以上才有的,在后续的5.0及6.0上面都增加了一些相关支持,于是问题就不太好办了。先看我实现的效果:

  • 2018-06-02 00:30:35

    Android 解决沉浸式状态栏下,输入法弹出,布局不会自动调整的BUG

    在开发中,如果输入框在布局的底部。在弹出输入发时,为了使输入法不遮挡输入框通常有两种做法: 1.将布局压缩(Activity的android:windowSoftInputMode属性设置为”adjustResize”)。 2.移动布局,将布局顶到输入框之上(Activity的android:windowSoftInputMode属性设置为”adjustPan”)

  • 2018-06-02 00:31:27

    Android layout实现输入法弹出后,布局整体上移

    那如果要实现沉浸式状态栏又要保持布局不会被输入法遮挡,怎么办呢? 只要在根布局加上android:fitsSystemWindows=”true”即可,效果如下(为方便看效果我把背景改成了黄色):

  • 2018-06-04 10:06:43

    mysql查询数据的同时对它进行删除操作

    今天遇见一个问题,需要把mysql数据库里面的 商品主表 和它的每一个条目对应不上的数据给全部删除(数据如下图);也就是整理一下数据库里的数据保证数据的可用;