今天,要調試adb shell input text ‘[input_text]’。
輸入中文時,進程Killed了。原來adb input不支持中文。
因爲ascii裏沒有中文,當然除了中文其它非ACSII的編碼均會導致killed。
輾轉到網上搜了下,有個https://github.com/senzhk/ADBKeyBoard 寫的apk可通過監聽廣播將中文傳入。
其實,就是通過unicode轉碼,來實現中文輸入的需求。(只要到了app應用層,各種編碼都是通途)
但是下載了adbKeyboard按說明輸入了
adb shell am broadcast -a ADB_INPUT_TEXT --es msg '中‘
輸出是 ,我暈了
ADBKeyboard中文亂碼
冷靜下來,思考應該是編碼出了問題。
通過下載源碼後,打印二進制值,纔看到輸出編碼不一樣。
後來更換adb後,居然通了。
下面是可以使用的adb版本
Android Debug Bridge version 1.0.39
輸出亂碼的adb版本
Android Debug Bridge version 1.0.32
建議大家在遇到類似問題時,如果可以編譯打印log固然可以看清楚。
如果不行,先換adb版本試試