svn update中文报错_[源码级解析]阅读源码,分析并解决scrcpy无法正常输入中文的问题...

89b5e0585819906ea6ba6c7b73be5de0.png
移动互联网时代下,手机能干的事情越来越多,但如果想要让工作更高效,鼠标键盘依旧是必不可少的。可许多软件(点名阿里系)并没有提供对应的桌面版本,也不兼容基于x86架构的Android模拟器,这就使得我们要用投屏软件来在电脑上操作手机。scrcpy就是众多投屏软件中最具特色的一款,作为一款开源软件,它拥有极佳的性能和丰富的功能,但这款软件在中文输入方面却存在较大的问题。本文将为读者介绍如何让scrcpy正常输入中文,让这款非常好用的投屏软件变得更好用。
本文原载于未命名小站,由作者本人同步至知乎,转载请注明原作者博客地址或本链接,谢谢!
本文撰写时scrcpy最新为1.14版本,依旧存在下文所述的问题,当你阅读本文时也许scrcpy已经解决了这一问题,因此本文内容仅供思路参考和技术分享。

0x01 问题重现

scrcpy相对于其他仅依靠adb shell screencapadb shell input进行设备控制的软件,拥有更加优秀的性能,这得益于它的系统架构:

851373b2d8c64f4aff91e3be70f6f8ef.png

其中Server在每次启动scrcpy的时候运行于Android端,使用MediaCodec的API对采集到的画面进行编码,并使用多线程,通过Socket传输到PC。PC端则使用ffmpeg和SDL2对画面进行实时解码显示。其中Server使用Java开发,Client使用C开发。具体技术细节可以参考官方文档,此处不再赘述。

言归正传,scrcpy在Unicode文字输入方面一直存在巨大问题,从很久之前就有用户反馈无法输入ascii以外的文字(如#632,表现为PC端输入文字后,手机不显示,终端报错,见图1),而作者则在最近正式加入了对ascii字符的支持,但尚未合并到master分支(见#1426)。

87aaeb1b0fea396c3cbb64dc090c2979.png
图1. 无法正常输入汉字,并提示无法插入字符

笔者尝试拉取代码库,并按照开发文档将#1426所在分支d613b10efcdf0d1cf76e30871e136ba0ff444e6e进行构

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值