ubuntu下进行android开发,是每个android程序员的必经之路,我这里就开始记录我的每一小步!
前一段时间曾经添加过一个华为的真机测试,好像很容易,这次重新装了系统之后添加一个htc的手机搞了我很久,所以下定决心搞明白,然后再记下来!
(1). 未添加权限之前手机在eclipse中的DDMS显示为:
如图:
在ubuntu的命令终端中输入:adb devices
效果如图:
那么它提示为:no permissions,那么我们就开始给它添加权限;
(2).添加权限
a.获取设备信息
终端中输入命令:lsusb
终端则会列出你电脑中所有的usb设备:
一般情况如果我们只插入了一个调试设备它会是在最后:比如我的是htc,它的设备信息为:
这里有用的信息是ID后面的两个字符串:0bb4和0c8b;
b.把设备信息添加到系统的权限文件中:
输入命令:sudo gedit /etc/udev/rules.d/70-android.rules
这里面我个人比较喜欢用gedit,像编辑txt文本一样;70-android.rules这只是一个文件名,你可以随便命名,但是后缀要是".rules";
在70-android.rules权限文件中把设备信息添加进去:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c8b",MODE="0666"
如图:
点击保存按钮;
c.运行命令,给规则添加权限和重启规则服务:
$sudo chmod a+rx /etc/udev/rules.d/70-android.rules
$sudo service udev restart
很多人用
sudo chmod 777 /etc/udev/rules.d/70-Android.rules
来代替
$sudo chmod a+rx /etc/udev/rules.d/70-android.rules
个人感觉都差不多,就是赋予它权限!
d.拔掉手机(这一步就是让我失败的关键,我按照网上的教程搞了不知道多少次就是没有成功)
e.关闭adb进程
adb kill-server
f.输入查看设备命令:
adb devices
你也可以在这一步之前使用:adb start-server,先启动adb服务;如果不使用它也会自动启动服务的。
这时正常的话应该可以看到:
如果你看到这个画面就说明你成功了,再到DDMS中看下,应该是这样的:
PS:
这时如果还不成功的话,就要看下手机的连接模式和调试模式是否打开;
这里说下关于华为c8650手机的调试方法,如果有类似的可以借鉴下:
C8650是电信的定制机,华为弄出了一个自己的USB的链接方式,主要是为了可以实现电信的一些什么天翼的业务,所以在链接电脑的时候使用的不是google模式,而是华为默认的为电信开发的自己的Normal模式,而使用这种模式,Ubuntu却不认识天翼的那些鬼东西,所以也就是出现了为什么电脑明明可以看得到华为的手机了,但是在eclipse里面却怎么页看不见,出现的全是??,解决这个问题的方法就是把手机USB的接入模式修改为google的模式即可,步骤如下:
1.使用电话拨打*#*#2846579#*#*
2.这时会出现一个菜单,选择projectMenu
3.接着选择后台设置
4.接着选择USB模式
5.选择Google模式
选择好后,重新启动机子,当再次链接Ubuntu时,手机自动的弹出了USB调试,在控制台中使用./adb devices 页可以看得到机子了,eclipse也可以部署程序到手机上运行了。
还有如果有谁可能经常使用不同的设备进行调试可以把常用的设备信息都添加的规则中:
#Acer 0502
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"
#Dell 413c
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"
#Foxconn 0489
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"
#Garmin-Asus 091E
SUBSYSTEM=="usb", SYSFS{idVendor}=="091e", MODE="0666"
#HTC 0bb4
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
#Huawei 12d1
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
#Kyocera 0482
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666"
#LG 1004
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"
#Motorola 22b8
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
#Nvidia 0955
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666"
#Pantech 10A9
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE="0666"
#Samsung 04e8
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
#Sharp 04dd
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"
#Sony Ericsson 0fce
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"
#ZTE 19D2
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"
以上信息都是作为自己的备注,如果有能帮到你的话那十分好,如果有错误的话请指正。