智能电视自动获取应用弹窗图像的方法与流程

专利2022-06-29  64


本发明涉及安卓智能电视技术领域,特别是一种智能电视自动获取应用弹窗图像的方法。



背景技术:

伴随智能电视功能越来越强大,在用户观看电视时,会有厂商预置的日历、天气、护眼提示、消息提示及第三方应用广告推广等应用弹窗出现,为了确保电视厂商预置的应用弹窗能够正常工作及限制第三方流氓应用进行广告推广等,本发明提出一种自动获取安卓智能电视上应用弹窗图像的方法来解决以上问题。



技术实现要素:

为解决现有技术中存在的问题,本发明的目的是提供一种智能电视自动获取应用弹窗图像的方法;本发明能够抓取第三方流氓应用的弹窗行为。

为实现上述目的,本发明采用的技术方案是:一种智能电视自动获取应用弹窗图像的方法,包括以下步骤:

步骤1、电脑通过adb连接电视,电视接入相关节目源信号,电视进入节目源正常播放;

步骤2、设置脚本持续检测过滤并保存电视的按键事件的keycode及对应的按键时间;

步骤3、设置脚本持续检测电视的界面渲染总帧数;

步骤4、每次获取到渲染总帧数后,则检测最近一次获取到的总帧数与上一次获取到的总帧数是否一致,如果不一致,则对比当前事件的时间和步骤2中保存的最近一次按键事件的时间,如果两个时间间隔大于预先设定的阈值,则立即截图保存,即可获取到在电视播放过程中出现的应用弹窗的截图。

作为一种优选的实施方式,在步骤4中,所述阈值的取值为在电视节目源下播放电视节目时,用户进行按键操作后应用界面自动消失的时间。

作为另一种优选的实施方式,所述步骤2具体如下:

通过执行shell命令:logcat-vtime|grepkeycode>/data/keycode.txt并后台持续运行,来过滤并保存下电视播放期间的所有的用户按键键值和按键的时间。

作为另一种优选的实施方式,所述步骤3具体如下:

通过循环执行shell命令:dumpsysgfxinfo|grep“totalfamesrendered”,来持续过滤及获取到智能电视当前所有应用的界面渲染总帧数totalframesrendered数据。

本发明的有益效果是:

本发明利用电脑通过adb连接智能电视和shell命令即可完成,可解决在智能电视产品的软件开发和使用过程中,需要确认在用户观看电视节目时,预置应用是否有正常进行弹窗提示及是否有第三方应用进行弹窗的问题;不仅可以确认厂商预置的应用是否正常弹窗,保障软件开发质量,还能够抓取第三方流氓应用的弹窗行为;本发明原理简单,通用性强,能够有效提高软件质量和软件的可靠性,缩短软件开发周期。

附图说明

图1为本发明实施例1的流程框图;

图2为本发明实施例2的流程框图。

具体实施方式

下面结合附图对本发明的实施例进行详细说明。

实施例1

电视设备完成开机后,在本地节目源进行正常播放atv、dtv、hdmi或av源的节目时,如果用户长时间没有进行按键操作,为了不影响用户观看体验,电视的应用会在一定时间内自动消失,此时电视只会有播放器层的图像变化,而应用界面层是不会有变化的。此时如果有应用进行了弹窗提示,那么应用界面层则会进行刷新,界面渲染的总帧数也会随之变化。在上述场景中,使用命令持续获取电视的应用界面渲染总帧数,如果检测到了渲染总帧数变化,并排除掉是一定时间内用户按键操作导致渲染总帧数变化,则可判定有应用进行了弹窗,立即进行截图操作,便自动获取到了应用弹窗的图像。

如图1所示,一种智能电视自动获取应用弹窗图像的方法,包括以下步骤:

步骤1、电脑通过adb连接电视,电视接入相关节目源信号,电视进入节目源正常播放;

步骤2、设置脚本持续检测过滤并保存电视的按键事件的keycode及对应的按键时间;

步骤3、设置脚本持续检测电视的界面渲染总帧数;

步骤4、每次获取到渲染总帧数后,则检测最近一次获取到的总帧数与上一次获取到的总帧数是否一致,如果不一致,则对比当前事件和步骤2中保存的最近一次按键事件时间,如果近期无按键事件,则立即截图保存,即可获取到在电视播放过程中出现的应用弹窗的截图比。

实施例2

如图2所示,一种智能电视自动获取应用弹窗图像的方法,在android智能电视上,可采取以下方法获取应用弹窗图像:

(1)电脑通过adb连接智能电视,电视在节目源(atv、dtv、hdmi、av等)下正常播放节目;接入稳定信号,在电视的atv、dtv、hdmi、av等节目源下播放节目,如果是在播放本地视频、网络视频下,要排除掉实验期间的自动换集播放、网络视频出现网络缓冲等能导致界面帧数发现变化但非应用弹窗的现象;

(2)通过执行shell命令:logcat-vtime|grepkeycode>/data/keycode.txt来持续获取电视在播放过程中接收到的按键键值及对应的按键时间;

(3)通过持续循环执行shell命令:dumpsysgfxinfo|grep“totalfamesrendered”获取电视在播放过程中的界面渲染总帧数;

(4)每次获取到渲染总帧数时,对比最近一次获取到的界面渲染总帧数和上一次获取到的界面总帧数是否完全一致,如果一致则继续循环,如果不一致则获取当前时间,再查询步骤(2)中keycode.txt记录下的最近一次按键事件的时间,如果两个时间间隔大于x秒(x的取值大于在电视节目源下播放电视节目时,用户进行按键操作后应用界面自动消失的时间),则立即截图保存,截图完成后继续循环,如果时间间隔小于x秒,说明可能是用户按键操作导致界面进行了刷新,因此忽略此次渲染总帧数对比结果并继续循环;也可以查询最近x秒内用户是否进行了按键操作,如果用户没有按键操作(在本地视频或网络视频播放下,需排除掉换集或网络缓冲等其他可能进行界面渲染的操作),则说明有应用进行了弹窗,如果用户最近有按键操作,那么说明可能是用户的按键操作导致了界面刷新,排除此次对比结果,并继续对界面渲染结果进行持续检测对;

(5)实验结束后,收集所有的截图,即可获取到实验期间电视上所有的应用弹窗图像。

以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。


技术特征:

1.一种智能电视自动获取应用弹窗图像的方法,其特征在于,包括以下步骤:

步骤1、电脑通过adb连接电视,电视接入相关节目源信号,电视进入节目源正常播放;

步骤2、设置脚本持续检测过滤并保存电视的按键事件的keycode及对应的按键时间;

步骤3、设置脚本持续检测电视的界面渲染总帧数;

步骤4、每次获取到渲染总帧数后,则检测最近一次获取到的总帧数与上一次获取到的总帧数是否一致,如果不一致,则对比当前事件的时间和步骤2中保存的最近一次按键事件的时间,如果两个时间间隔大于预先设定的阈值,则立即截图保存,即可获取到在电视播放过程中出现的应用弹窗的截图。

2.根据权利要求1所述的智能电视自动获取应用弹窗图像的方法,其特征在于,在步骤4中,所述阈值的取值为在电视节目源下播放电视节目时,用户进行按键操作后应用界面自动消失的时间。

3.根据权利要求1或2所述的智能电视自动获取应用弹窗图像的方法,其特征在于,所述步骤2具体如下:

通过执行shell命令:logcat-vtime|grepkeycode>/data/keycode.txt并后台持续运行,来过滤并保存下电视播放期间的所有的用户按键键值和按键的时间。

4.根据权利要求1或3所述的智能电视自动获取应用弹窗图像的方法,其特征在于,所述步骤3具体如下:

通过循环执行shell命令:dumpsysgfxinfo|grep“totalfamesrendered”,来持续过滤及获取到智能电视当前所有应用的界面渲染总帧数totalframesrendered数据。

技术总结
本发明公开了一种智能电视自动获取应用弹窗图像的方法,包括以下步骤:电脑通过ADB连接电视,电视接入相关节目源信号,电视进入节目源正常播放;设置脚本持续检测过滤并保存电视的按键事件的keyCode及对应的按键时间;设置脚本持续检测电视的界面渲染总帧数;每次获取到渲染总帧数后,则检测最近一次获取到的总帧数与上一次获取到的总帧数是否一致,如果不一致,则对比当前事件的时间和保存的最近一次按键事件的时间,如果两个时间间隔大于预先设定的阈值,则立即截图保存,即可获取到在电视播放过程中出现的应用弹窗的截图;本发明能够抓取第三方流氓应用的弹窗行为。

技术研发人员:何宇航
受保护的技术使用者:四川长虹电器股份有限公司
技术研发日:2020.03.04
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-53536.html

最新回复(0)