虚拟屏幕
在 M8Test 中使用虚拟屏幕功能时,无论通过以下哪种方式操作,都必须具备 adb 权限 或 root 权限:
如需获取 adb 权限,建议参考官方指南

Android 虚拟屏幕(Virtual Display)可以理解为一个"看不见的软件监视器"。简单来说,它是应用程序通过代码创建的逻辑显示屏,并非物理存在的设备。
物理屏幕(Physical Display):即手机上可见可触摸的实体屏幕。
虚拟屏幕(Virtual Display):是 Android 系统在内存中模拟的屏幕。系统及所有应用都会将其视为真实存在的屏幕,像在物理屏幕上一样在其上绘制界面(UI)、播放视频等。关键在于,所有绘制到这个" 虚拟屏幕"的图像内容不会直接显示,而是输出到创建它的应用程序所控制的 Surface 对象中。
虚拟屏幕是实现诸多高级功能的底层核心技术,常见应用包括:
屏幕录制(Screen Recording) 这是最典型的应用场景。录屏软件创建虚拟屏幕后,系统会将手机当前屏幕的所有内容复制到该虚拟屏幕。录屏软件再从自身的 Surface 中逐帧读取图像,通过 MediaCodec 等工具编码为 MP4 视频文件。
屏幕投射/无线投屏(Screen Casting) 原理与录屏类似。Google Chromecast 或 Miracast 等投屏功能,也是通过创建虚拟屏幕捕获手机屏幕内容。不同的是,它不会将视频帧保存到本地,而是通过 Wi-Fi 网络将视频流实时传输到电视、投影仪等大屏幕设备。
远程控制(Remote Control) 类似 TeamViewer、向日葵等远程协助应用,需要在电脑上显示手机实时画面。它们通过虚拟屏幕捕获手机界面,压缩图像数据后经网络发送到电脑客户端。同时接收电脑端的鼠标点击、键盘输入等操作,再模拟为触摸事件注入 Android 系统,从而实现远程控制。
应用的第二块屏幕/演示模式(Presentation Mode) 应用可创建虚拟屏幕作为"副屏"。例如,PPT 应用在手机主屏显示备注和控制按钮,同时将幻灯片内容渲染到虚拟屏幕,再通过投屏功能显示到大屏幕,使手机和电视显示不同内容。
自动化测试(Automated Testing) 开发者可创建不同分辨率、不同 DPI 的虚拟屏幕,测试应用在各种设备上的 UI 布局效果,无需拥有所有实体设备。