现在的位置: 首页 > 综合 > 正文

ubuntu 12.10的vmware虚拟机中连接android手机设备调试

2014年01月18日 ⁄ 综合 ⁄ 共 2736字 ⁄ 字号 评论关闭

手机是盛大bambook s1,系统大约是android 2.3.5左右。
win7 64位版上安装的vmware 8.0,装了ubuntu 12.10系统(来自于python for android的 kivy镜像盘,由原来的vdi(virtual box)格式转化而来(即vmdk格式)。
    用kivy库开发python for android程序时,由于kivy的显示依赖于opengl es图形库,而本机上安装的android虚拟机设定使用主机gpu时,总是起动不起来(vmware3D加速已打开,也不行。据说新版的kivy对虚拟机调试有所改善。稍后再研究这个问题),这样导致android虚拟机不可能有gpu硬件,从而kivy程序打包成apk上传至虚拟机时,根本无法显示。所以想到将手机连至虚拟机上,直接用手机硬件调试kivy程序。
查了一下相关资料,大致如下过程完成设置:
1 将手机数据线插到电脑上(win7 64位),当然手机usb调试要打开,这个不用说。
2 确认ubuntu虚拟机的usb选项打开正确。确保将usb连至虚拟机(即disconnected from host)。
3 此时启动ubuntu 12.10,在终端窗口中查看:lsusb
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ lsusb
Bus 001 Device 002: ID 230b:0100  
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb devices
List of devices attached 
可看到有5个usb设备,而adb devices并未发现android设备。
4 拔去手机,再次用lsusb查看:
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ lsusb
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
可看出,Bus 001 Device 002: ID 230b:0100  此行正是盛大bambook s1手机的usb设备,大约由于此手机过于山寨,并未显示任何厂标。
5 cd /etc/udev/rules.d
vi 50-Android.rules
输入:
SUBSYSTEM=="usb", SYSFS{"High Tech Computer Corp."}=="230b", MODE="0666"
注意这里随便输入了个htc的公司名称,而"230b"是最重要的,在Bus 001 Device 002: ID 230b:0100 中可找到。
保存,chmod a+rx 此文件。
sudo /etc/init.d/udev restart
6 直接重启动ubtuntu得了。
7 重启后,再用adb devices查看,发现:
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions
好,发现东西了,只是权限不对。
8 杀掉adb服务,重新用sudo权限启动之:
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb kill-server
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ sudo ./adb start-server
[sudo] password for kivy: 
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb devices
List of devices attached 
0123456789ABCDEF0123456789ABCDE    device
终于,找到了名为0123456789ABCDEF0123456789ABCDE   这个古怪名字的设备。
9 编译打包kivy程序:
kivy@kivy-VirtualBox:~/android/python-for-android/dist/default$ ./build.py --package org.test.SwitchMT --name "SwitchMT" --version
1.0 --dir ~/myprogs/SwitchMT debug installd

注意最后安装apk到手机的部份:
install:
     [echo] Installing /home/kivy/android/python-for-android/dist/default/bin/SwitchMT-1.0-debug.apk onto default emulator
or device...

     [exec] 851 KB/s (6801828 bytes in 7.798s)
     [exec]     pkg: /data/local/tmp/SwitchMT-1.0-debug.apk
     [exec] Success

installd:

BUILD SUCCESSFUL
安装是成功的。
查看手机,SwitchMT的图标出现了。

抱歉!评论已关闭.