Linux usb调试安卓,在Linux下安装android开发环境并以USB调试方式链接手机进行开发...

机器型号   HTC Tattoo

固件版本 android1.6

开发宿主系统 MagicLinux2.5(同样适用于其他Linux发行版本)

本文为Linux下搭建android开发环境快速指南,并解决了Linux下android手机usb调试设备不能正确识别的问题。

首先要配置android SDK开发环境

1、下载android1.6 SDK

因为我的固件版本为android1.6因此下载sdk1.6

http://dl.google.com/android/android-sdk-windows-1.6_r1.zip

http://kugou.me/android-sdk-linux_x86-1.6_r1.tgz

将SDK解压到

~/android/android-sdk-linux_x86-1.6_r1

2、安装eclipse

因为android官方推荐使用eclipse,而且官方也推出了eclipse插件ADT辅助开发。

去eclipse官方网站下载eclipEclipse IDE for Java EE Developers (For Linux 32/64 bit)

eclipse不用安装,直接解压到目录中运行eclipse就可以了。

3、安装ADT

打开eclipse

Help--> Install New SoftWare..

Add...

添加Location:http://dl-ssl.google.com/android/eclipse

点击下一步 接受 下载 安装。

4、配置ADT

安装ADT后会重启eclipse

首先需要指定SDK目录:

Window--> Preferences--> android -->SDK Location:

指定路径为~/android/android-sdk-linux_x86-1.6_r1

OK。现在可以新建虚拟机创建android工程进行开发调试了。

关于如何使用eclipse+ADT开发android应用程序在网上有大量的教程,请自己google :)

下面是用USB调试方式连接手机的方法

这里比较麻烦的是Linux不会自动配置好android手机设备文件的权限。

因此我们需要手动配置,以下操作步骤涉及到udev的配置和设备信息的查看技巧:

1、首先我们需要使用以下命令实时监视系统信息

sudo tail -f /var/log/messages

2、此时在usb接口上连接手(手机需要切换到usb调试模式 设置-->应用程序-->开发-->usb调试)

messages会出现

un 13 18:12:08 MagicLinux kernel: usb 2-1: new high speed USB device using ehci_hcd and address 57

Jun 13 18:12:09 MagicLinux kernel: usb 2-1: New USB device found, idVendor=0bb4, idProduct=0c02

Jun 13 18:12:09 MagicLinux kernel: usb 2-1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

Jun 13 18:12:09 MagicLinux kernel: usb 2-1: Product: Android Phone

Jun 13 18:12:09 MagicLinux kernel: usb 2-1: Manufacturer: HTC

Jun 13 18:12:09 MagicLinux kernel: usb 2-1: SerialNumber: HT9A4LG04864

Jun 13 18:12:09 MagicLinux kernel: usb 2-1: configuration #1 chosen from 1 choice

Jun 13 18:12:09 MagicLinux kernel: scsi50 : SCSI emulation for USB Mass Storage devices

Jun 13 18:12:14 MagicLinux kernel: scsi 50:0:0:0: Direct-Access     HTC      Android Phone    0100 PQ: 0 ANSI: 2

Jun 13 18:12:14 MagicLinux kernel: sd 50:0:0:0: Attached scsi generic sg2 type 0

Jun 13 18:12:14 MagicLinux kernel: sd 50:0:0:0: [sdb] Attached SCSI removable disk

Jun 13 18:17:54 MagicLinux kernel: usb 2-1: USB disconnect, address 57

Jun 13 18:17:57 MagicLinux kernel: usb 2-1: new high speed USB device using ehci_hcd and address 58

Jun 13 18:17:57 MagicLinux kernel: usb 2-1: New USB device found,idVendor=0bb4, idProduct=0c02

Jun 13 18:17:57 MagicLinux kernel: usb 2-1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

Jun 13 18:17:57 MagicLinux kernel: usb 2-1: Product: Android Phone

Jun 13 18:17:57 MagicLinux kernel: usb 2-1: Manufacturer: HTC

Jun 13 18:17:57 MagicLinux kernel: usb 2-1: SerialNumber: HT9A4LG04864

Jun 13 18:17:57 MagicLinux kernel: usb 2-1: configuration #1 chosen from 1 choice

Jun 13 18:17:57 MagicLinux kernel: scsi51 : SCSI emulation for USB Mass Storage devices

Jun 13 18:18:02 MagicLinux kernel: scsi 51:0:0:0: Direct-Access     HTC      Android Phone    0100 PQ: 0 ANSI: 2

Jun 13 18:18:02 MagicLinux kernel: sd 51:0:0:0: Attached scsi generic sg2 type 0

Jun 13 18:18:02 MagicLinux kernel: sd 51:0:0:0: [sdb] Attached SCSI removable disk

看到上面红色字体了吗,那就是udev识别的usb调试设备标识idVendor=0bb4, idProduct=0c02

大多数G4 android手机应该都一样。

3、配置udev规则文件,调整设备文件权限

接下来我们就可以根据前面获得的usb调试设备标识来调整我们的设备文件的各种属性以帮助android sdk识别usb调试设备。

在/etc/udev/rules.d下创建规则文件50-android.rules

cat 内容如下:

[sunshine@MagicLinux rules.d]$ cat 50-android.rules

SUBSYSTEMS=="usb",ATTRS{idVendor}=="0bb4" ,SYMLINK+="android_adb",OWNER="sunshine"

ATTRS{idVendor} 为上一步获得的 idVendor 参数

SYMLINK 参数使设备目录增加一个连接文件指向原设备文件 OWNER 为你当前的用户,也是你运行adb服务的用户

(这里要特别注意,我们的目的就是使android手机调试设备文件的所有者权限与开启的 adb 服务的所有者权限相一致,这样usb设备才能被adb服务识别)。

运行以下命令使刚更改的配置生效 (此处针对于Fedora及其衍生版本,其他Linux版本请查看udev man)

sudo udevadm control --reload-rules

4、重新插入USB,生成新的设备文件

这时会在/dev/下出现一个连接文件android_adb,它指向的设备就是你的USB调试的手机设备。

5、开启adb服务,搜寻usb调试设备

在~/android/android-sdk-linux_x86-1.6_r1/tools下运行

$./adb kill-server

$./adb start-server

$./adb devices                             #列出所有已识别设备

List of devices attached

HT9A4LG04864    device             #这个就是我的手机usb设备了

安装一个apk试试吧

./adb install *.apk

在eclipse中也可以发现连接的手机设备,进行开发调试,当然前提是adb服务已经识别usb设备。

秀一张eclipse下调试android程序的图片:

注:获取设备的udev标识的方法多样, 上面介绍的方法只是其中一种,也是比较准确的一种 :)

如果你知道usb设备的设备文件,在获得idVendor时也可以使用其他命令,如:

udevinfo -a -p /sys/class/usb_device/...

udevinfo -e

而且在使用 udev 配置规则文件时可以使用任何一个参数来指定设备。

参考文章

http://androidboss.com/using-android-debug-bridge-adb-in-linux/

http://www.2linessoftware.com/2009/01/31/getting-android-sdk-to-work-with-fedora-10/

以及一些udev配置的相关文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值