Android,屏幕截图

纳达夫·鲁布

我正在构建一个应用程序,该应用程序应为具有Android 4及更高版本的任何无根设备实现屏幕“镜像”功能,启动2帧/秒就足够了。

我正在尝试使用ADB“ framebuffer:”命令来抓取设备屏幕截图

ADB USB通信协议是面向消息的(不是流传输),因此,要获取数据块,需要接收/发送一组已读取(A_WRTE @ 4096bytes)/确认(A_OKEY @ 24bytes)命令对。
只要接收方没有发送A_OKEY,设备就不会推送其他数据(因此,不是流协议)。

为了优化性能,我直接实现了ADB USB协议,而不是使用ADB.exe

Samsung Galaxy 5设备的图像分辨率为1920 * 1080,深度为32位,因此,RAW帧缓冲图像的权重为1920 * 1080 * 4 = 8294400字节(对于iPAD,它甚至更大),使用通过面向ADB消息的协议的“ framebuffer:”命令大约需要2秒钟才能收到单个屏幕截图(grrr ..)。

如果这将是流协议,则在USB 2.0 @ 480Mbps上应该花费约150毫秒

  • 考虑到以上几点,有什么方法可以使“ framebuffer:”更快吗?
  • 是否可以通过USB发送任何降低分辨率的方法?
  • 是否有其他所有设备通用的方法可以更快地全天候(24x7)截屏?
  • 相当于Android的AirPlay(对所有设备通用)是否最佳?

PS
我已经尝试过ASL项目,但由于ADB.exe Shell并未以系统特权运行(而是在“ shell”帐户下运行),因此它无法在我的“三星Galaxy 5”上运行。

淡淡的

在Android 4.3及更高版本上,您可以执行screenrecord操作并将镜像的虚拟显示输入视频编码器。带有5.0“ Lollipop”的1.2版具有内置的USB流传输功能,其中包括termio代码以在上发送二进制数据adb shell使用“ hidden”参数--output-format=h264并指定连字符(-)作为输出文件名。

源代码在frameworks / av / cmds / screenrecord中

这是通过USB获得体面帧速率的唯一方法。您可以通过指定来对未压缩的数据进行实验--output-format=raw-frames,但是即使在VGA分辨率下,也无法以适当的速度获得帧。

FWIW,当前的设备通常不在恢复模式下使用帧缓冲区dev。取而代之的是,它们使用覆盖层,这些覆盖层是在扫描显示时由硬件编辑器组合而成的。完整细节在体系结构文档中

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android屏幕截图和屏幕截图权限

来自分类Dev

检测Android屏幕截图

来自分类Dev

Android屏幕截图

来自分类Dev

Android中的黑色屏幕截图

来自分类Dev

android中的设备屏幕截图

来自分类Dev

Android屏幕截图编程错误

来自分类Dev

Android外部显示器的屏幕截图?

来自分类Dev

Android,使用USB接口的屏幕截图

来自分类Dev

使用appium捕获Android屏幕截图

来自分类Dev

根植于Android设备的倒置屏幕截图

来自分类Dev

android SurfaceControl屏幕截图返回null

来自分类Dev

android中的屏幕截图以编程方式

来自分类Dev

从内部存储android共享屏幕截图

来自分类Dev

Android-不获取当前屏幕的屏幕截图

来自分类Dev

如何在 Xamarin Android 中裁剪屏幕并截取屏幕截图?

来自分类Dev

Facebook屏幕截图-Android的测试通过NullPointer进行屏幕截图

来自分类Dev

Android使用Device Art Generator进行屏幕截图

来自分类Dev

如何在Android中捕获VideoView的屏幕截图或视频帧

来自分类Dev

从Android中的活动获取视图以获取屏幕截图?

来自分类Dev

Android-如何以编程方式获取屏幕截图

来自分类Dev

Android拍摄我的应用程序活动的屏幕截图

来自分类Dev

Android拍摄Surface View屏幕截图显示黑屏

来自分类Dev

Android Studio设备管理器屏幕截图失败

来自分类Dev

无法在Android上运行的Kivy应用中截取屏幕截图

来自分类Dev

Android:以编程方式获取所选区域的屏幕截图

来自分类Dev

屏幕截图未创建| Android,Unity3d

来自分类Dev

Android屏幕截图2 Linux上的工具NullPointerException

来自分类Dev

具有通用状态栏的Android屏幕截图

来自分类Dev

如何在Android中获取布局的屏幕截图

Related 相关文章

热门标签

归档