Linux下面连接Android机器进行调试

本文介绍在Linux环境下面,如何通过adb端口连接到手机设备,从而为接下来调试Android应用程序准备开发环境。


1. 总的步骤

主要包括如下几个步骤:

  • 以root用户为USB手机设备创建规则文件
  • 重启USB服务
  • adb devices检查设备是否可用


2. Step 1: 创建规则文件

这一步涉及以下几个要点:

1. 通过lsusb命令获取链接到计算机的手机设备的相关信息:vendor id, product id

2. 或者通过Android官方网站查阅手机设备的ID:http://developer.android.com/tools/device.html

3. 以root用户为手机创建一个规则文件


2.1 lsusb命令

lsusb查看的usb信息:

flying-bird@flyingbird:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 067b:2507 Prolific Technology, Inc. PL2507 Hi-speed USB to IDE bridge controller
Bus 001 Device 005: ID 058f:6377 Alcor Micro Corp. Multimedia Card Reader
Bus 003 Device 002: ID 046d:c062 Logitech, Inc. LS1 Laser Mouse, corded
Bus 004 Device 002: ID 046d:c52f Logitech, Inc. Wireless Mouse M305
Bus 001 Device 010: ID 19d2:0363 ZTE WCDMA Technologies MSM 
flying-bird@flyingbird:~$ 

以上输出结果的含义可以参考man lsusb:

lsusb(8)                                                Linux USB Utilities                                               lsusb(8)



NAME
       lsusb - list USB devices

SYNOPSIS
       lsusb [ options ]

DESCRIPTION
       lsusb is a utility for displaying information about USB buses in the system and the devices connected to them.


OPTIONS
       -v, --verbose
              Tells  lsusb  to  be  verbose and display detailed information about the devices shown.  This includes configuration
              descriptors for the device's current speed.  Class descriptors will be shown, when available, for USB device classes
              including hub, audio, HID, communications, and chipcard.

       -s [[bus]:][devnum]
              Show only devices in specified bus and/or devnum.  Both ID's are given in decimal and may be omitted.

       -d [vendor]:[product]
              Show only devices with the specified vendor and product ID.  Both ID's are given in hexadecimal.

       -D device
              Do  not  scan  the  /dev/bus/usb  directory,  instead display only information about the device whose device file is
              given.  The device file should be something like /dev/bus/usb/001/001.  This option  displays  detailed  information
              like the v option; you must be root to do this.

       -t     Tells lsusb to dump the physical USB device hierarchy as a tree. This overrides the v option.

       -V, --version
              Print  version information on standard output, then exit successfully.


RETURN VALUE
       If the specified device is not found, a non-zero exit code is returned.


FILES
       /var/lib/usbutils/usb.ids
              A list of all known USB ID's (vendors, products, classes, subclasses and protocols).


SEE ALSO
       lspci(8), usbview(8).


AUTHOR
       Thomas Sailer, <sailer@ife.ee.ethz.ch>.



usbutils-005                                                6 May 2009                                                    lsusb(8)

现在只需要获取手机的vendor id,即手机厂商的ID号,上面lsusb显示的是ZTE 0x19d2.


2.2 直接从Android网站获取vendor id

网址是:http://developer.android.com/tools/device.html



2.3 编写规则文件

编写规则、示例,都在上面这个网站上详细描述了:


下面是作者的环境(root用户、并chmod):

root@flyingbird:/etc/udev/rules.d# cat ./51-android.rules 
SUBSYSTEMS=="usb", ATTR{idVendor}=="19d2", MODE="0666", OWNER="flying-bird"
root@flyingbird:/etc/udev/rules.d# ll
总用量 24
drwxr-xr-x 2 root root 4096  5月 27 20:39 ./
drwxr-xr-x 3 root root 4096  3月 31 21:02 ../
-rw-rw-rw- 1 root root   76  5月 27 20:39 51-android.rules
-rw-r--r-- 1 root root  812  5月 27 20:16 70-persistent-cd.rules
-rw-r--r-- 1 root root  484  3月 24 22:20 70-persistent-net.rules
-rw-r--r-- 1 root root 1157  4月  6  2012 README
root@flyingbird:/etc/udev/rules.d# 

3. Step 2: 重启USB服务

文件创建之后,重启usb服务:

root@flyingbird:/etc/udev/rules.d# /etc/init.d/udev restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service udev restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop udev ; start udev. The restart(8) utility is also available.
udev stop/waiting
udev start/running, process 15685
root@flyingbird:/etc/udev/rules.d#

4. Step 4: adb命令验证配置是否生效

然后adb devices验证是否起作用:

flying-bird@flyingbird:~/books/android/adt-bundle-linux-x86-20140321/sdk/platform-tools$ ./adb devices
List of devices attached 
????????????	no permissions

flying-bird@flyingbird:~/books/android/adt-bundle-linux-x86-20140321/sdk/platform-tools$ ./adb devices
List of devices attached 
ZTE_U807	device

flying-bird@flyingbird:

如果是前面的一串问号,说明配置有问题,如规则文件的语法错误;另外就是配置之后要restart。


之后,就可以运行在这个设备上了:



5. 参考资料

列出部分参考资料:

  • http://zwkufo.blog.163.com/blog/static/2588251201126113638144/
  • http://developer.android.com/tools/device.html

查阅资料时,总是一步步往官网靠近,最终以官网的为基准参考。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值