注:解决Unable to get view server version from device,也要先进行Root,以下先介绍root过程
一、小米手机Root过程
1.首先要在手机上设置小米账号,位于设置--小米账号
2.登录http://www.miui.com/,在网页的右上角有一个“解锁”菜单,如下图红色方框
图1
3.用在手机上设置的账号或者生成的用户ID及密码登录,申请小米账号解锁权限,3天左右可以收到短信
4.收到短信后,登录短信中提示网址http://www.miui.com/unlock/,下载解决工具,如下图
图2
5.解压现在下来的解锁包,文件目录如下
图3
6.运行MiFlashUnlock.exe,登录账号,如下图
图4
7.登录成功后,该工具会先验证账户是否已经授权解锁,验证成功后,进入以下界面
图5
8.按照图2中下方的红色方框标记的步骤进行操作,然后等待解锁
9.解锁成功后,重启手机,在MiFlashUnlock.exe界面会有reboot命令,可以直接点击,也可以长按开机键
10.进入手机到安全中心--授权管理界面,点击Root权限管理,然后系统自动进行Root
图6
这样小米手机的Root过程就完成了
二、下面再说一下解决Unable to get view server version from device的问题
实际上,一旦小米手机Root成功,Unable to get view server version from device的问题也就意味着已经解决了。
在Dos窗口输入命令 adb shell service call window 3
返回结果:Result: Parcel(00000000 00000000 ‘........‘), 意味着View Server没有启动
执行以下命令绑定端口并启动View Server adb shell service call window 1 i32 4939
返回值:Result: Parcel(00000000 00000001 ‘........‘) 意味着View Server启动,这时自动化测试工具,MonkeyRunner等就可以访问小米手机的UI控件了。
三、adb shell service命令说明
adb shell service可给Android 服务传消息,
具体用法如下: Usage: service [-h|-?]
service list
service check SERVICE
service call SERVICE CODE [i32 INT | s16 STR] ...
Options:
i32: Write the integer INT into the send parcel.
s16: Write the UTF-16 string STR into the send parcel.
adb shell service list列出Andorid系统提供所有service 例如:
1.绑定port启动ViewServer adb shell service call window 1 i32 $port
2.停止ViewServer adb shell service call window 2
3.检查ViewServer是否正在运行 adb shell service call window 3