欢迎光临散文网 会员登陆 & 注册

ADB发送中文到手机

2022-05-13 11:50 作者:计算机入门  | 我要投稿

1.何为ADB

Android 调试桥 (Android Debug Bridge, adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:… …


2.故事

因为业务需求,需要使用adb命令模拟点击和填写文字(中文,英文,数字),adb发送文字大家都知道是:

这样就可以将Hello推送到手机上当前对焦的如TextView等输入控件上。当时当我尝试如下命令就会出现无法推送到情况

通过搜索引擎得知目前adb因为设计的缺陷无法发送中文字符(unicode),于是又通过搜索引擎找到了一个开源工具https://github.com/senzhk/ADBKeyBoard,通过安装此输入法并将其设置为默认输入法即可通过adb方式发送中文(这里测试魅族部分机型无法修改系统输入法,系统版本Flyme 8.0.0.0A)华为部分机型可以设置,部分小米手机也可以,但是你要额外开启USB安全模式。接下来就是按照ADBKeyBoard给出的使用方法进行测试了

然而,第一个用例就翻车了,出现了乱码,不过还好至少能有反应了。继续阅读,发现下面有类似将字符进行Base64编码后再丢给工具进行发送的例子如下:

但是很遗憾,我是Python3(Windows10)平台,于是得对这条命令进行改造在pyton中写一个汉字转base64编码的方法即可:

一行搞定,接下来只要在需要发送中文的地方进行如下调用即可

3.ABD常用命令

1.adb devices , 获取设备列表及设备状态

2.adb get-state , 获取设备的状态

  1. 设备的状态有 3 钟,device , offline , unknown

  2. device:设备正常连接

  3. offline:连接出现异常,设备无响应

  4. unknown:没有连接设备

3.安装卸载应用程序

adb install 用于安装

  • 安装成功,返回成功提示 “Success”;

  • 安装失败,会返回以下:

  • INSTALL_FAILED_ALREADY_EXISTS

  • 此时需要用 -r 参数来重新安装。

  • INSTALL_FAILED_SIGNATURE_ERROR

  • 应用的签名不一致,可能是发布版和调试版签名不同所致。也有可能是没卸载旧应用导致。

  • INSTALL_FAILED_INSUFFICIENT_STORAGE

  • 存储空间不足,需要检查设备存储情况。

adb uninstall 用于卸载

  • adb uninstall 后面带的是应用的包名,而不是应用名。

  • 查看系统所有应用的包名:

  • adb shell pm list packages –f

4.上传、下载文件

  • adb push 命令将PC机上的文件推到 DLT-RK3288 机器上;

  • adb pull 命令将DLT-RK3288机器上的文件拉到PC机上;

  • 例如:

  • adb push d:/new.txt /sdcard/

  • 将D盘下new.txt文件 推到内部存储器

  • adb pull /sdcard/new.txt d:\

  • 将DLT-RK3288 内部存储器根目录下的new.txt 拉到D盘

5. adb shell pm list package

Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息

-s:列出系统应用

-f:列出应用包名及对应的apk名及存放位置

6.adb shell

通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。

如果只想执行一条shell命令,就可以采用:adb shell [shell_command],在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。

7. 常见命令:

如 ls, cd, rm, mkdir, touch, pwd, cp, mv, ifconfig, netstat, ping, ps, top等,进入adb shell即可执行,与linux相似.


ADB发送中文到手机的评论 (共 条)

分享到微博请遵守国家法律