说明:收录各省市地方标准 提供单次或批量下载
(19)国家知识产权局 (12)发明 专利 (10)授权公告 号 (45)授权公告日 (21)申请 号 202210478251.5 (22)申请日 2022.05.05 (65)同一申请的已公布的文献号 申请公布号 CN 114579246 A (43)申请公布日 2022.06.03 (73)专利权人 北京麟卓信息科技有限公司 地址 100085 北京市海淀区西三 旗昌临801 号27号3层310、 312 (72)发明人 温研  (51)Int.Cl. G06F 9/451(2018.01) G06F 9/54(2006.01) (56)对比文件 CN 107515759 A,2017.12.26审查员 郭燕 (54)发明名称 一种安卓兼容环境中多窗口模式下安卓应 用的截屏方法 (57)摘要 本发明涉及一种安卓兼容环境中多窗口模 式下安卓应用的截屏方法, 包括: 获得置在最前 的Linux端的窗口对应的安卓应用信息, 遍历安 卓环境中所有活动实例的堆栈, 并将各活动实例 的信息与该安卓应用信息进行匹配, 如匹配到, 则将该匹配到的活动实例的窗口尺寸设置为与 该安卓应用的窗口尺寸一致; 当安卓系统收到截 屏指令时, 将第一图层列表的图层进行渲染, 并 进行存储; 当渲染完成后, 进行图层的合成操作, 并在Linux端的窗口进行显示; 当安卓系统收到 截图指令时, 还停止界面的刷新, 并判断收到停 止界面刷新前最后一帧的图层合成请求, 将恢复 刷新前最后一帧的图层的相关数据保存, 能够根 据Linux截图指令, 对安卓系统的多个窗口进行 截图。 权利要求书2页 说明书6页 附图1页 CN 114579246 B 2022.07.08 CN 114579246 B 1.一种安卓兼容环境中多窗口模式下安卓应用的截屏方法, 其特 征在于, 包括: 当用户发出截屏指令, 获得置在最前的Linux端的窗口对应的安卓应用信息, 遍历安卓 环境中所有活动 实例的堆栈, 并将各活动 实例的信息与该安卓应用信息进行匹配, 如 匹配 到, 则将该匹配到的活动实例的窗口尺寸设置为与该安卓应用的窗口尺寸 一致; 创建一个用于保存匹配到的活动实例 的窗口截屏的图层, 当安卓系统收到截屏指令 时, 将第一图层列 表的图层进 行渲染, 并进行存储; 当渲 染完成后, 进 行图层的合成操作, 并 存储至安卓下的第一缓存 区, Linux下的第二缓存 区获取该第一缓存区的数据, 并在Linux 端的窗口进行显示; 当安卓系统收到截图指令时, 停止界面的刷新, 并判断收到停止界面刷新前最后一帧 的图层合成请求, 是否对应该匹配到的活动实例, 如果是, 将恢复刷新前最后一帧的图层的 相关数据保存, 以用于安卓系统恢复刷新后进行显示; 依据截图的图层的信息, 对 截图缓存Draw ingCache进行空间和格式的管理。 2.根据权利要求1所述的截屏方法, 其特 征在于, 还 包括: 活动实例的窗口截屏的图层中, 如存在透明图层且不在最下层时, 将该第一缓存区设 置为ARGB_8 888格式, 否则, 将该第一缓存区设置为RGB_5 65格式。 3.根据权利要求1所述的截屏方法, 其特 征在于, 还 包括: 依据活动实例的窗口 的尺寸和截图格式计算所需的第一缓存区的空间newSize; 如newSize大于第一缓存区当前空间, 则判断第一缓存区是否为空, 如果不为空, 则执 行释放操作, 并根据newSize重新分配第一缓存区的空间; 如果 为空则不执 行释放操作; 如newSize小于等于第一缓存区空间, 则不重新分配。 4.根据权利要求1所述的截屏方法, 其特 征在于, 该第一缓存区与该第二缓存区共享物理内存, 该第 二缓存区的共享内存全局标识符id 将共享物理内存映射到安卓系统图层合成所在进程, 并将映射地址赋值给该第一缓存区, 在截屏过程完成后, 在进程中 内存地址空间释放映射的地址赋值。 5.根据权利要求1所述的截屏方法, 其特征在于, 获得置在最前的Linux端的窗口对应 的安卓应用的信息包括: 通过xDroidUI响应用户截屏指令, 获取当前进程被用户置在最前的xDroidUI 的Linux 端的窗口对应的安卓应用信息; 将该安卓应 用信息通过远程过程调用传递给安卓环境中的xDroid服务 xDroidService。 6.根据权利要求1所述的截屏方法, 其特征在于, 将各活动实例的信 息与该安卓应用信 息进行匹配的匹配方式包括: 比对安卓应用信息与 活动实例的packageName、 ActivityName以及TaskID, 若均相同, 则认为匹配成功; 或 比对安卓应用信息与活动实例的packageName以及ActivityName, 若均相同, 则 认为匹 配成功。 7.根据权利要求1所述的截屏方法, 其特 征在于, 还 包括: 对于安卓8之前的版本, 当与该安卓应用信息进匹配上的活动实例不在该活动实例的 堆栈的栈顶时, 将该匹配到的活动实例置 于栈顶;权 利 要 求 书 1/2 页 2 CN 114579246 B 2对于安卓8或之后的版本, 将匹配到的活动实例设置为活跃。 8.根据权利要求1所述的截屏方法, 其特征在于, 当安卓系统收到开始截图命令时, 遍 历安卓SurfaceComposer的图层列表, 如存在图层不属于匹配到的活动实例的窗口, 则复制 一份SurfaceComposer当前的图层列表的拷贝给该第一图层列表, 将不属于匹配到的活动 实例的所有图层从该第一图层列 表中删除, 直至该第一图层列 表只存在匹配到的活动实例 的图层; 将该第一缓存区设置为 渲染缓存区, 执 行渲染操作。 9.根据权利要求8所述的截屏方法, 其特征在于, 还包括: 如果存在图层来自安卓系统 提供的轻量级信息提醒机制 Toast或对话框Dialog的窗口及图, 且不是系统和截图应用创 建的, 则将该图层从该第一图层列表中移除。 10.根据权利要求8所述的截屏方法, 其特征在于, 当SurfaceComposer收到截屏指令 时, 禁用安卓系统同步rsync信号, 以停止界面的刷新; 根据SurfaceComposer收到停止 界面刷新前最近一次的图层合成请求 中的活动实例的 packageName和ActivityName, 判断该图层合成请求是否来自匹配到的活动实例; 将恢复刷 新前最后一帧的图层的相关数据保存在第一存储区, 当SurfaceComposer 收 到截图完成命令时, 判断该第一存储区是否为空, 如不为空, 则对该第一存储区中保存的图 层执行图层的合成操作, 以用于安卓系统恢复刷新后进行显示; 如果为空则不执行释放操 作。权 利 要 求 书 2/2 页 3 CN 114579246 B 3

.PDF文档 专利 一种安卓兼容环境中多窗口模式下安卓应用的截屏方法

文档预览
中文文档 10 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种安卓兼容环境中多窗口模式下安卓应用的截屏方法 第 1 页 专利 一种安卓兼容环境中多窗口模式下安卓应用的截屏方法 第 2 页 专利 一种安卓兼容环境中多窗口模式下安卓应用的截屏方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 11:23:24上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。