ubuntu下Android手机连接设置

时间:2024-02-20 12:54:20

 

    [摘要] 本文将通过实例介绍一种在ubuntu环境下连接Android手机的设置方法。通过本文读者可能会了解到通过adb命令连接手机的方式。

 

一、引言

      Android手机应用开发基本离不开Android手机,固然ADT提供了模拟器的支持,但对于较大型或者较复杂的应用来说,还是真实的Android手机更接地气。对IOS开发我不了解,但Windows Phone 和 Android 模拟器都给我的印象很深刻,尤其是Android 模拟器,启动一次那真叫一个慢啊!

     所以,有条件还是手机开发的效率高、数据真实。Android 手机五花八门、良莠不齐,五百元以上的国产机基本可以满足大部分开发了。然而,也正式因为 Android 手机种类繁多,给真机开发带了不少麻烦,而手机连接电脑就是这些麻烦中的一点。Android 首先需要连接PC才能基于真机开发,对于一些非主流的国产手机,往往会出现PC 无法识别,找不到对应的驱动,对于这种情况,我一般就要使用豌豆荚或者腾讯手机管家之类的工具帮我处理了。

      但是,这是在windows 环境下,最近尝试了ubuntu ,却要自己解决这个问题了。这几天学习并尝试了一下,下面将通过实例介绍一下在unbuntu 环境下连接Android手机的方法,希望能对大家有所帮助,错误地方还请指正。

 

二、环境

     本文实例环境:

   【PC操作系统】:ubuntu 13.04 x64

   【Android IDE】 :  eclipse_android_develop_tool with sdk 21.1

   【Android 手机】:lenovo a789  with android 4.04 

     本文以下的内容都是基于当上面三个主要环境参数展开,至于如何安装Android 开发环境,暂不在这里介绍。

 

三、设置过程

  1. 打开USB调试

    这点就不细说了,估计Android开发人员都了解。 

  1. 查看设置前手机连接状态 

     首先,通过命令终端,查看当前所有usb连接信息

lsusb

    结果如下:        

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 008: ID 090c:1000 Silicon Motion, Inc. - * (formerly Feiya Technology Corp.) 64MB QDI U2 DISK
Bus 001 Device 004: ID 04b3:3107 IBM Corp. ThinkPad 800dpi Optical Travel Mouse
Bus 001 Device 005: ID 147e:2016 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor
Bus 001 Device 006: ID 04f2:b221 Chicony Electronics Co., Ltd integrated camera
Bus 002 Device 003: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth
Bus 002 Device 009: ID 17ef:7435 Lenovo  

      这里需要强调一下这个命令执行结果的信息,其中:

        【Bus xxx】 :代表的式串口的电脑的usb端口号;

        【Device xxx】:是系统为其分配的设备号;

        【ID xxxx:yyyy】:这个改设备厂商的OEM编号和该设备的设备号.

     本文里,我们直关心【ID xxxx:yyyy】,这里面的xxxx就是设备厂商的OEM编号,这个式固定不变的,譬如联想就是“17ef”,更多的厂商信息请看官方信息;而yyyy这几位代表特定设备厂商旗下的特定的产品型号ID,这个会根据设备的硬件和系统不同而变化。

     上面usb信息列表中的最后以蓝色差异表现的就是本文使用的联想手机的usb信息。

  实例如图如下:

               

      然后,调用adb命令,查看当前有效的手机连接信息:

adb devices

  执行结果如下:

List of devices attached

      其实,设备列表下面什么设备都没要,说明当前的联想手机,adb并没要识别出来,如下图:

          

    截至目前,联想手机虽然已经连接到电脑,电脑也已经侦测到改连接,但是,adb无法将其作为有效的Android设备识别出来,接下来的任务就是进行设置,让adb识别改手机。

3、设置配置信息

     创建配置信息文件,使用vim 或者gedit等文本工具都行,要在系统 etc/udev/rules.d/目录下创建一个自己rules文件,这里采用gedit创建,命令如下:

gedit /etc/udev/rules.d/lenovo-android.rules

       如果当前终端用户没有获取到root权限,则上面的命令需要前面加 sudo :

sudo gedit /etc/udev/rules.d/lenovo-android.rules

  

     gedit 工具会打开一个文件,在文本里,需要注册一下设备信息:

SUBSYSTEM=="usb",SYSFS{idVendor}=="17ef" MODE="0666"
SUBSYSTEM=="usb",ATTR{idVendor}=="17ef"ATTR{idProduct}=="7435",SYMLINK+="android_adb"

                  

      确认信息填写无误后,保存文件。

      下一步,设置改配置文件的访问权限,至少要给予读(r)权限,不然其它进程将无法访问配置信息:

chmod a+r /etc/udev/rules.d/lenvov-android.rules

   再下一步,重启动udev     

sudo  /etc/init.d/udev  restart

  

 

      最后,重启adb服务:

sudo adb kill-server

     再回头查看最新的设备信息:

adb devices

       结果如下:

List of devices attached 
0123456789ABCDEF	device

       实例如下图:


         

      不妨在ADT的工程中运行一个Android应用程序,此时发现,联想手机已经成为应用运行的Target可选项了:

  

  

 

 四、总结

      Android应用开发,知识比较庞杂,尤其在linux环境下,很多操作需要命令配合,而命令背后是更多的机制,机制背后则是linux的系统原理。Android发源于linux,如要深入理解Android,linux恐怕是无法回避的内容,这也是尝试在linux上开发的主要目的。目前我对linux了解十分浅薄,对于本文中的有些命令机制,仅限于会用,尚未明白背后的机制。所以,有出入的地方,欢迎大家指正。