adbkeyboard输入法是一款专门为安卓手机打造的输入法工具,它能够替代手机原有输入法进行使用,该软件系统程序简洁,添加为键盘非常的干净,可以选择多种输入方法和国家语言,同事还有命令指标发送功能,通过系统对手机进行指令发送,功能性非常强,适合编程的朋友使用。
通过ADB实现安卓虚拟键盘输入
ADBKeyBoard是一个虚拟键盘,可以接收来自系统广播意图的命令,你可以用 adb发送文本输入。
有一个shell命令“input”,可以帮助你向Android系统发送文本输入。
usage: input [text|keyevent]
input text
input keyevent
但你不能用这个命令发送 Unicode字符,因为它本身就不是为这种方式设计的。
进入项目导向cd ADBKeyBoard
设置Android SDK位置:或编辑文件export ANDROID_HOME=$HOME/Android/Sdklocal.properties
组装与安装:./gradlew installDebug
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "中文输入法"
ADB版本过低导致ADBKeyboard中文输入乱码
今天,要调试adb shell input text ‘[input_text]’。
输入中文时,进程Killed了。原来adb input不支持中文。
因为ascii里没有中文,当然除了中文其它非ACSII的编码均会导致killed。
辗转到网上搜了下,有个写的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版本试试