学习了半个月的Android,一直都是在虚拟平台上调试,今天想在真实的机子里面跑跑自己写的程序与在虚拟平台上有什么不同,为了学习Android,自己可是特别的买了个Android的手机,华为的C8650,这个手机什么都好,就是只能用电信的东西不爽,而且也是由于这个问题,害我在Ubuntu里面配置真机开发环境的时候吃尽了苦头。
按照Android developer网站上说的一样,在Linux环境下Android的真机调试不能想Windows 一样装个驱动什么的就得了,在Linux里需要建立一个.rules文件,告诉Linux在Android手机的USB插入电脑的时候执行的规则。具体步骤如下:
打开etc目录下的/etc/udev/rules.d文件夹,然后在这个文件夹中建立一个名为51-
android.rules的文件,使用命令:
sudo gedit 51-android.rules
打开文件,输入内容如下:
SUBSYSTEM=="usb",ATTR{idVendor}=="12d1",MODE="0666"
SUBSYSTEM=="usb",EVN{DEVTYPE}=="usb_device",MODE="0666"
这里需要说明一下ATTR{idVendor}=="12d1",这里填入的12d1是因为我用的是华为的手机,在google的Android文档中华为的手机使用的就是12d1的代号。每个品牌的手机都有其特殊的代号,这个可以到google的网站去查询,或者在系用中使用lsusb命令,同样也可以看到手机对应的代号。配置完成后,使用命令来到SDK说在的文件夹,打开/platform-tools文件夹,分别执行如下的命令:
sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices
按照道理来说,应该出现手机的型号信息了,可是,我的华为手机就是没有出现。查询了很多网友的帖子,都说的和上面的差不多,可是我的问题还是没有解决,尝试了所有找到的方法,可是就是死活不出现。
这时我想是不是手机设置的什么原因,于是搜索了一下华为C8650手机的一些信息,终于在一位网友的帖子中说道了C8650,原来加载不了不是我的rules文件的问题,而是C8650的问题。C8650是电信的定制机,也就是因为这样,华为弄出了一个自己的USB的链接方式,主要是为了可以实现电信的一些什么天翼的业务,所以在链接电脑的时候使用的不是google模式,而是华为默认的为电信开发的自己的Normal模式,而使用这种模式,Ubuntu却不认识天翼的那些鬼东西,所以也就是出现了为什么电脑明明可以看得到华为的手机了,但是在eclipse里面却怎么页看不见,出现的全是????????,解决这个问题的方法就是把手机USB的接入模式修改为google的模式即可,步骤如下:
1 使用电话拨打*#*#2846579#*#*
2 这时会出现一个菜单,选择projectMenu
3 接着选择后台设置
4 接着选择USB模式
5 选择Google模式
选择好后,重新启动机子,当再次链接Ubuntu时,手机自动的弹出了USB调试,在控制台中使用./adb devices 页可以看得到机子了,eclipse也可以部署程序到手机上运行了。