1. 苏葳的备忘录首页
  2. 开发工具

Ubuntu 12.10的VMware虚拟机中连接Android手机调试

kivy android python ubuntu用kivy框架开发python for android程序时,由于kivy的显示依赖于opengl es图形库,而开发环境虚拟机(Ubuntu)上安装的android虚拟机设定使用主机gpu时,总是无法起动(vmware3D加速已打开,也不行。据说新版的kivy对虚拟机调试有所改善。),这样导致android虚拟机中没有gpu硬件,从而kivy程序打包成apk上传至虚拟机时,根本无法显示。所以想到将手机连至虚拟机开发环境上,直接用手机硬件调试kivy程序。

先说明下调试环境:调试用的手机是盛大bambook s1,系统大约是android 2.3.5左右。win7 64位版上安装的vmware 8.0,装了ubuntu 12.10系统(来自于python for android的 kivy镜像盘,由原来的vdi(virtual box)格式转化成vmdk格式)虚拟机。

查了一下相关资料,大致如下过程完成设置:

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的图标出现了。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/503.html

发表评论

邮箱地址不会被公开。 必填项已用*标注