注:解決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