初学HBuilder 之模拟器配置篇

HBuilder简介

    HBuilder是一个非常好用的HTML5开发IDE,那么进行开发时,调试阶段一般有两种选择,一种是连接真机而另一种就是直接配置模拟器。

    如果想要用usb线的话就用真机,下面主要说一下如何配置模拟器。

    关于真机运行、手机运行、真机联调常见问题,官方网址http://ask.dcloud.net.cn/article/97      

    关于如何安装配置手机模拟器,官方网址http://ask.dcloud.net.cn/article/151,但是官网只给出了如何安装配置谷歌官方模拟器的方法,我们都知道这个模拟器给人的感觉比真机更卡更慢,因此我们一般选择第三方模拟器,开发者常用的是国外传进来的Genymotion模拟器,这个模拟器本身配置起来相当复杂,可自行百度,关于这个模拟器在Hbuilder上如何配置也有网友写了注意事项,手把手教你_如何实现HBuilder连接到genymotion的模拟器上。

模拟器推荐

    在这里我要推荐国内做的不错的安卓模拟器:海马玩模拟器和夜神模拟器

    这两款模拟器的主要业务是让人们能在PC上玩安卓游戏,能实现全屏、鼠标、手柄操作等,运行速度非常快,我认为用来开发再合适不过了。

    下载安装这两款模拟器作为开发者分分钟就能搞定。但是要想IDE连上模拟器就有很多注意事项了。

adb简介

    我们知道Hbuilder是通过adb(安装目录tools里面,或者从任务管理器进入)连接到模拟器或者真机的,但是系统中很多软件也会开启adb进程对Hbuilder产生影响。关于如何检查adb冲突,官网也给出了。

    Android 调试系统是一个面对客户服务系统,包括三个组成部分:

• 一个在你用于开发程序的电脑上运行的客户端。你可以通过shell端使用adb 命令启动客户端。其他Android 工具比如说ADT 插件和DDMS 同样可以产生adb 客户端.

• 在你用于发的机器上作为后台进程运行的服务器。该服务器负责管理客户端与运行于模拟器或设备上的adb守护程序(daemon)之间的通信。.

• 一个以后台进程的形式运行于模拟器或设备上的守护程序(daemon)。.当你启动一个adb客户端,客户端首先确认是否已有一个adb服务进程在运行。如果没有,则启动服务进程。当服务器运行, adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令,—所有的adb客户端都是用端口 5037与adb服务器对话的.接着服务器将所有运行中的模拟器或设备实例建立连接。它通过扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。一旦服务器找到 了adb守护程序,它将建立一个到该端口的连接。请注意任何模拟器或设备实例会取得两个连续的端口——一个偶数端口用来相应控制台的连接,和一个奇数端口 用来响应adb连接。比如说:

模拟器1,控制台:端口5554

模拟器1,Adb端口5555

控制台:端口 5556

adb 端口5557...

如上所示,模拟器实例通过5555端口连接adb,就如同使用5554端口连接控制台一样.一旦服务器与所有模拟器实例建立连接,就可以使用adb命令控制和访问该实例。因为服务器管理模拟器/设备实例的连接,和控制处理从来自多个adb客户端来的命令,你可以通过任何客户端(或脚本)来控制任何模拟器或设备实例.

来源: <http://bbs.hiapk.com/thread-4760331-1-1.html>

检查adb冲突(windows系统)

    Android的ADB服务已经被大量软件使用,除了各种手机助手自带adb,其他如搜狗输入法、暴风影音、酷狗音乐、阿里旺旺等众多软件都自带adb。有些工具的adb服务版本低且独占手机通道,就会导致HBuilder无法连接手机。
    一般情况下,用户可以在软件的设置里取消该软件对手机的监控。
    还可以使用如下方式检测当前是哪个进程在占用Android手机通道。
    1)打开系统dos窗口:开始-运行(快捷键:win+r),输入cmd并回车
    2)确认adb的启动进程:
    寻找端口是5037的tcp连接,在dos中输入:netstat -ano | findstr 5037
    在输出结果中找到类似下面的一行:
    TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 5816
    如果内容为空,可能是没有程序在占用adb端口。
    或者使用 netstat -ano | findstr 5037>d:/1.txt 输出到文件中查找。根据查询结果确认端口为5037的连接被那个进程占用,结果中显示的"5816"表示占用adb端口的进程PID。根据进程的PID可以找到具体进程。在命令行中输入:tasklist | findstr 5816在输出结果中找到类似下面的一行:
     adb.exe 5816 Console 0 4,440 K
    adb.exe(名称一般不是adb.exe,以adb.exe举例)为启动的adb进程。
或者手工在任务管理器中定位这个进程,打开任务管理器后,进入进程选项卡,如果列表里有PID,直接找;如果列表里没有PID,点菜单查看-选择列,勾上PID。

解决冲突

一般发生冲突是,任务管理器的进程里会出现多个adb.exe,或kadb.exe、tadb.exe。。。
在任务管理器中找到adb.exe相关进程,在任务管理中右键该进程,打开文件位置,查看该进程是什么软件启动的。
如果adb.exe不是HBuilder安装目录下的文件,一般可以用以下方案解决冲突:
1、有些软件这种进程是可以设置成不自动启动的,各个软件设置不一样,设置完成后关闭软件就自动退出了
2、在任务管理器中结束该进程
3、有些软件该进程结束后又会被自动启动,所以得将adb.exe文件重命名一下

来源: <http://ask.dcloud.net.cn/article/97#checkAdb>

模拟器配置

    由于adb冲突问题,如果先启动Hbuilder,IDE自带的adb会启动监听5037端口,再启动安卓模拟器的话,模拟器自带的adb(你在模拟器的安装目录下总能找到adb.exe)

也会启动,这样就把Hbuilder的adb服务给挤下去了。因此这是Hbuilder就识别不了模拟器了。好在Hbuilder的新版本已经解决部分这种问题了,这个问题在连接海马玩模拟器时也不会出现了,无论先启动哪一个都能识别。

    但是夜神模拟器却不能被Hbuilder识别,原因是夜神模拟器的开发者将adb.exe改成了nx_adb.exe,这样Hbuilder就检查不到冲突了,解决方法是将这个重命名或者剪切到其他地方,或者干脆删除,不会对模拟器产生任何影响。但是我发现即使这样做了。Hbuilder还是连接不上夜神模拟器,原因是夜神模拟器的运行端口不在Hbuilder的adb的扫描范围内。那么如何找到端口呢。

    在夜神模拟器正在启动或刚启动时(真的是刚启动,时间长了就不行了,也不知道是为什么),在CMD中运行:nox_adb devices,注意这事nox_adb还没有重命名或移走,是在nox_adb所在目录运行命令,这样会列出nox_adb连接的终端地址是127.0.0.1:62001;执行完这个操作后就将nx_adb重命名或者移走,接下来就要让Hbuilder的adb连接到模拟器,定位到Hbuilder的adb目录,运行下面的第一条命令就连接上了模拟器,第二条命令是检查连接设备及状态。后面显示device即表示正常连接,如果不进行前面的一系列操作,直接连上127.0.0.1:62001的话,设备状态会显示offline,Hbuilder内识别模拟器但是不能正常连接调试。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值