4

我已经在我的平板电脑上安装了Droid VNC Server 。我还在http://github.com/oNaiPs/droid-VNC-server上检查了它的源代码,但我没有找到任何代码行来捕获屏幕并上传到查看器。那么它是怎样工作的?它如何捕获 Droid 的屏幕?

4

2 回答 2

3

它有 3 种模式可以尝试阅读您的屏幕:

  1. 帧缓冲区
  2. SurfaceFlinger
  3. 格拉洛克

我只在 Android x86 上尝试过,并且只让帧缓冲模式工作。假设 2. 和 3. 如果你在 ARM 上工作得更好。基本上,它所做的就是直接读取帧缓冲设备(/dev/graphics/fb0,就像 Linux 上一样)。通过阅读,我的意思是它需要一系列屏幕“快照”并将它们发送到 VNC 客户端,因为它请求屏幕更新。帧缓冲设备是 Android 写入屏幕内容的层,然后通过图形管道将其传递到硬件(图形显示芯片 -> 屏幕)。将帧缓冲区想象成视频中的帧,一系列帧构成视频,帧缓冲区代表屏幕实际动态变化的内容。

关于输入 Droid VNC 服务器通过网络接收指针和键事件,对其进行处理,然后将它们发送到 /dev/input 设备,然后由 Android 处理,就好像它们是本地键盘或鼠标输入一样。

于 2013-07-06T10:34:04.923 回答
1

查看jni/vnc/ 文件夹。对我来说,当然看起来像一个 VNC 服务器。

于 2012-08-31T07:34:34.670 回答