作者:手机用户2502900545 | 来源:互联网 | 2014-05-27 20:35
手机是盛大bambooks1,系统大约是android2.3.5左右。win764位版上安装的vmware8.0,装了ubuntu12.10系统(来自于pythonforandroid的kivy镜像盘,由原来的vdi(virtualbox)格式转化而来(即vmdk格式)。用kivy库开发pythonforandroid
手机是盛大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的图标出现了。