记 Scrcpy 框架使用记录
背景
最近使用 vysor 。发现直接把手机当成模拟器操作确实是方便到不行。 但是魅族 16th plus 在 vysor 失效了。同时vysor 通知太过干扰。基于以上两点切换到开源框架 scrcpy: Display and control your Android device
原理
image.png
主要步骤如下:
- 通过
adb push
一个scrcpy-server.jar
到手机上。
注: scrcpy-server.jar 是虽然是一个 zip 文件。 但是其实是一个apk。 - PC 端通过
adb reverse
反向代理手机端口。用来接收手机端发送过来的数据。 adb shell CLASSPATH=/data/local/tmp/scrcpy-server.jar app_process /com.genymobile.scrcpy.Server com.genymobile.scrcpy.Server 0 8000000 false - false
使用 app_process 运行 scrcpy-server.jar 的代码。
scrcpy-server.jar 主要做三件事情:
1,开启 LocalSocket 和PC连接。 相应 PC 端传递过来的操作。
2,源源不断的将屏幕画面输出到PC,使用Mediacodec 编码。 PC 通过ffmpeg 解码播放。
3,使用 adb 来提高 scrcpy-server.jar 的运行权限
注: 模拟 input 事件使用 android.hardware.input.IInputManager.injectInputEvent 方法。
安装
mac 环境下使用 brew install scrcpy
,通过漫长的等待完成安装。同时设置adb 环境变量。这里不具体展开。运行 scrcpy
命令
scrcpy
问题
魅族16 th 出现了错误:
image.png
通过scrcpy 的issue 发现这是一个已知的问题