安卓开发adb联机调试方法

来源:互联网 发布:java命令参数 编辑:程序博客网 时间:2024/05/02 10:38

   总体来说,安卓开发套件中adb是个非常优秀的调试工具,我们可以用它进行安卓程序的调试工作。提到adb,我们不得不联想到adbd,根据linux的命名习惯,通常以字母d结尾的都是服务程序,比如常见的httpd,msqld,telnetd等,adbd就是一个调试服务器,它接受adb传来的调试指令,并将结果返回至adb中,从而实现对程序的调试与监控。

adb与adbd的连接

1 usb方式连接

   usb方式是最常见的连接方式,也是最简单的方法,实现usb连接,共需要三步

  第一步 ,打开设备的usb调试。



上图为本人使用的安卓设备开启usb调试的页面,通常位于设置,应用程序 开发菜单下,比较容易找到


第二步;

         安装设备驱动程序。根据操作系统的不同,安装方法也不一样,在windows系统下,推荐安装一款叫做"豌豆荚“的软件,它会自动的下载并安装驱动程序,同样也可以使用其实现短信,联系人等的备份,相当于塞班系统下的pc套件程序。安装完成后,可以在系统中找到该设备了。驱动安装成功后,可以将其卸载,以节省系统资源。

  在linux系统下,准确的说是在ubuntu下,可以参照官方教程设置。

Log in as root and create this file: /etc/udev/rules.d/51-android.rules.

  1. Use this format to add each vendor to the file:
    SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

    In this example, the vendor ID is for HTC. The MODEassignment specifies read/write permissions, andGROUP defineswhich Unix group owns the device node.

    Note: The rule syntaxmay vary slightly depending on your environment. Consult theudevdocumentation for your system as needed. For an overview of rule syntax, seethis guide towriting udevrules.

  2. Now execute:
    chmod a+r /etc/udev/rules.d/51-android.rules
   以root登录系统,创建文件/etc/udev/rules.d/51-android.rules.

   a.按如下格式向这个文件中添加设备

          SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

          在这个例子中,"0bb4"代表的是htc的手机,需要替换成自已的。

       .

    可以用lsusb命令显示与计算机连接的usb设备,笔者的中兴手机id 为19d2,所以在文件中

SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"

另外如果需要添加多个设备,可以在文件中加入按如上格式加入多行数据。

chmod a+r /etc/udev/rules.d/51-android.rules更改文件的属性为全部可读



2网络连接

网络连接adbd需要的操作比较复杂,而且大多是linux命令,最好需要点linux基础

第一步:在安卓设备上安装终端模拟器

安卓是基于linux的,linux中有一个非常有用的东西叫做shell,shell是用户与内核交互的接口。利用shell可以完成许多高级的操作,玩过linux的孩子都懂得。。我们在ubuntu下的terminal程序就是一个终端模拟器程序。

在安卓上我们如果要执行命令行程序,就必须有一个类似于终端模拟器的程序。打开任意一个market程序,搜索terminal,找一个顺眼的安装即可。笔者使用的是一个叫做better terminal的程式

第二步:更改adbd的监听接口

打开终端模拟器,执行 stop adbd 终止adbd程序,然后设置adbd使用的tcp端口:

然后设置 adbd的默认监听端口:setprop service.adb.tcp.port 5555

启动: start adbd

使用netstat -l 查看网络连接状态:

/ # netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:5037          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:5555            0.0.0.0:*               LISTEN

可见adbd在5555端口已经实现监听;


第三步:在计算机上连接该设备

 打开shell,输入 adb connect 设备ip 输入adb devices察看所有的设备



       

所有显示的设备都可以在ddms中找到,并用于调试