Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1251601
  • 博文数量: 247
  • 博客积分: 5587
  • 博客等级: 大校
  • 技术积分: 2060
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-24 13:27
文章分类
文章存档

2012年(101)

2011年(44)

2010年(102)

分类: 嵌入式

2012-04-22 21:47:51

开发android程序,当然能用真机看一下效果是最好的。
在linux下,android手机连接linux并不用装驱动,但是遗憾的是在eclipse那里并不能被识别出来。不过,其实只需要下面的几句就可以解决了。
1、首先我们需要使用以下命令实时监视系统信息
sudo tail -f /var/log/messages
2、此时在usb接口上连接手(手机需要切换到usb调试模式 设置-->应用程序-->开发-->usb调试)
messages会出现

Apr  5 18:24:40 msdx kernel: [10873.569350] usb 2-1.3: new high speed USB device number 12 using ehci_hcd
Apr  5 18:24:41 msdx kernel: [10873.655290] usb 2-1.3: New USB device found, idVendor=0bb4, idProduct=0c86
Apr  5 18:24:41 msdx kernel: [10873.655295] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3

Apr  5 18:24:41 msdx kernel: [10873.655298] usb 2-1.3: Product: Android Phone
Apr  5 18:24:41 msdx kernel: [10873.655300] usb 2-1.3: Manufacturer: HTC
Apr  5 18:24:41 msdx kernel: [10873.655302] usb 2-1.3: SerialNumber: SH1CWV800985
Apr  5 18:24:41 msdx kernel: [10873.656901] scsi12 : usb-storage 2-1.3:1.0
Apr  5 18:24:41 msdx mtp-probe: checking bus 2, device 12: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3"
Apr  5 18:24:41 msdx mtp-probe: bus: 2, device: 12 was not an MTP device
Apr  5 18:24:42 msdx kernel: [10874.656632] scsi 12:0:0:0: Direct-Access     HTC      Android Phone    0000 PQ: 0 ANSI: 2
Apr  5 18:24:42 msdx kernel: [10874.656752] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.656914] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.656984] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.657043] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.657255] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.657450] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.657611] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.657676] scsi: killing requests for dead queue
Apr  5 18:24:42 msdx kernel: [10874.658087] sd 12:0:0:0: Attached scsi generic sg2 type 0
Apr  5 18:24:42 msdx kernel: [10874.661002] sd 12:0:0:0: [sdb] Attached SCSI removable disk


看到上面红色字体了吗,那就是udev识别的usb调试设备标识 idVendor=0bb4, idProduct=0c86
关于idVendor=0bb4,貌似大多数android手机都是一样的。

3、配置udev规则文件,调整设备文件权限
接下来我们就可以根据前面获得的usb调试设备标识来调整我们的设备文件的各种属性以帮助android sdk识别usb调试设备。
在终端下输入su,然后输入超级管理员密码,以超级管理员权限登录。
4、创建udev规则文件:输入gedit /etc/udev/rules.d/50-android.rules
5、在打开的文本编辑器中输入以下内容:
SUBSYSTEMS=="usb",ATTRS{idVendor}=="0bb4",SYMLINK+="android_adb",OWNER="sunshine"
其中,OWNER里面对应的是你自己的用户。ATTRS{idVendor}中对应的则是第2步中得到的那个信息。
(这里要特别注意,我们的目的就是使android手机调试设备文件的所有者权限与开启的 adb 服务的所有者权限相一致,这样usb设备才能被adb服务识别)。

6、运行以下命令使刚更改的配置生效 (此处针对于Fedora及其衍生版本,其他Linux版本请查看udev man)
sudo udevadm control --reload-rules
7、重新插入USB,生成新的设备文件
这时会在/dev/下出现一个连接文件android_adb,它指向的设备就是你的USB调试的手机设备。
到这里应该就可以了。
阅读(3774) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~