显示组件控制方法、装置、设备、存储介质和程序产品与流程

专利2024-03-13  109



1.本技术涉及计算机技术领域,特别是涉及一种显示组件控制方法、装置、设备、存储介质和程序产品。


背景技术:

2.随着android系统占有率的逐年提高,基于android系统的应用也呈现出爆炸式增加。基于android系统的activity指的是布满整个窗口或者悬浮于其他窗口上的人机交互界面,应用的界面展示主要靠activity来提供管理。
3.目前对于android系统下的显示内容,某些具有攻击性的应用可以通过后台服务随时启动,这样就会覆盖或遮挡用户当前浏览操作的交互显示界面,造成用户无法正常浏览页面。或者,某些具有攻击性的应用可以通过后台服务随时启动后,会伪装成用户当前浏览操作的交互显示界面,从而造成用户的财产损失或系统受损。
4.基于上述存在的问题,可见目前急需一种对基于android系统下的显示内容进行控制的方法。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够屏蔽掉非用户主动行为的启动应用和显示组件,保证用户的正常页面浏览,以及保护用户的财产和系统安全的显示组件控制方法、装置、设备、存储介质和程序产品。
6.第一方面,本技术提供了一种显示组件控制方法,该方法包括:
7.在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;
8.根据上述触发源检测第一显示组件是否为用户自主触发;
9.若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
10.本实施例中,由于可以通过检测待启动的显示组件的触发源是否为用户自主触发,并在显示组件为非用户自主触发时禁止该显示组件启动,这样就可以禁止或屏蔽非用户主动触发的显示组件的启动,维持页面显示原本的显示组件,从而可以保证用户的正常页面浏览,降低对用户的骚扰;同时禁止或屏蔽非用户主动触发的显示组件的启动,这样用户的财产或系统也就不会被影响,从而可以保证用户财产和系统安全。
11.在其中一个实施例中,上述获取第一显示组件对应的触发源,包括:
12.获取第一显示组件被触发时所在的第一应用的包名,以及获取第二显示组件所在的第二应用的包名;
13.上述根据触发源检测第一显示组件是否为用户自主触发,包括:
14.根据第一应用的包名和第二应用的包名的一致性判断结果,确定第一显示组件是否为用户自主触发。
15.本实施例中,通过将获取的第一显示组件所在应用的包名以及第二显示组件所在
应用的包名进行一致性比对,并根据一致性比对结果确定第一显示组件是否为用户自主触发,这样可以便于快速获知第一显示组件的触发行为是否与用户相关,以便快速进行后续的显示组件控制流程,提升显示组件控制的效率。
16.在其中一个实施例中,上述根据第一应用的包名和第二应用的包名的一致性判断结果,确定第一显示组件是否为用户自主触发,包括:
17.若第一应用的包名和第二应用的包名一致,则确定第一显示组件为用户自主触发;
18.若第一应用的包名和第二应用的包名不一致,则确定第一显示组件为非用户自主触发。
19.本实施例中,通过在包名一致时确定第一显示组件为用户自主触发,包名不一致时确定为非用户自主触发,这样可以准确判定第一显示组件的触发行为,提升对第一显示组件的触发行为进行判断的准确性。
20.在其中一个实施例中,上述根据触发源检测第一显示组件是否为用户自主触发之前,上述方法还包括:
21.获取第二显示组件所在的第二应用的包名;
22.检测第二应用的包名是否在预设的第一监听列表中;该第一监听列表中包括至少一个被监听的应用的包名;
23.若上述第二应用的包名不在第一监听列表中,则允许第一显示组件启动;或者,若上述第二应用的包名在第一监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
24.本实施例中,通过检测获取的第二显示组件所在应用的包名是否在第一监听列表中,并在应用的包名不在第一监听列表中时允许第一显示组件启动,这样可以使得不属于被监听的应用的显示组件进行启动,满足实际需求以及降低监听的功耗。
25.在其中一个实施例中,上述根据触发源检测第一显示组件是否为用户自主触发之前,上述方法还包括:
26.获取第一显示组件所在的第一应用的包名;
27.检测第一应用的包名是否在预设的第二监听列表中;该第二监听列表中包括至少一个被监听的应用的包名;
28.若第一应用的包名不在第二监听列表中,则允许第一显示组件启动;或者,若第一应用的包名在第二监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
29.本实施例中,通过在第一监听列表中判断第一显示组件所在应用的包名是否在第二监听列表中,并在不在监听列表中时继续检测第一显示组件是否为用户自主触发,使得对第一显示组件的启动的控制更加精准,即可以提升对第一显示组件进行控制的准确性。
30.在其中一个实施例中,上述根据触发源检测第一显示组件是否为用户自主触发之前,上述方法还包括:
31.检测第一显示组件是否属于第二显示组件所在的第二应用;
32.若属于,则允许第一显示组件启动;或者,若不属于,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
33.本实施例中,通过检测第一显示组件是否属于第二显示组件所在的应用,并在属于时允许第一显示组件启动,这样可以提高显示组件的启动效率;另外在不属于时需要继续对该第一显示组件是否为用户自主触发进行检测,这样可以提升对第一显示组件的启动进行检测的准确性。
34.在其中一个实施例中,上述方法还包括:
35.若第一显示组件为用户自主触发,则允许第一显示组件启动。
36.本实施例中,在第一显示组件是用户自主触发时允许其启动,这样可以满足用户的实际需求,提升用户的使用体验。
37.在其中一个实施例中,上述第一显示组件和第二显示组件为android系统下的显示组件。
38.本实施例中,通过两个显示组件均为android系统下的组件,这样可以实现对android系统下的显示组件的控制。
39.第二方面,本技术还提供了一种显示组件控制装置,该装置包括:
40.触发源获取模块,用于在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;
41.检测模块,用于根据上述触发源检测第一显示组件是否为用户自主触发;
42.控制模块,用于若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
43.第三方面,本技术还提供了一种计算机设备,该计算机设备包括存储器和处理器,该存储器存储有计算机程序,该处理器执行所述计算机程序时实现以下步骤:
44.在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;
45.根据上述触发源检测第一显示组件是否为用户自主触发;
46.若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
47.第四方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
48.在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;
49.根据上述触发源检测第一显示组件是否为用户自主触发;
50.若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
51.第五方面,本技术还提供了一种计算机程序产品,该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
52.在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;
53.根据上述触发源检测第一显示组件是否为用户自主触发;
54.若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
55.上述显示组件控制方法、装置、设备、存储介质和程序产品,通过在监听到待启动的第一显示组件被触发后,获取第一显示组件对应的触发源,根据触发源检测第一显示组件是否为用户自主触发,若为非用户自主触发,则禁止第一显示组件启动,并保持页面显示
当前展现的第二显示组件。在该方法中,由于可以通过检测待启动的显示组件的触发源是否为用户自主触发,并在显示组件为非用户自主触发时禁止该显示组件启动,这样就可以禁止或屏蔽非用户主动触发的显示组件的启动,维持页面显示原本的显示组件,从而可以保证用户的正常页面浏览,降低对用户的骚扰;同时禁止或屏蔽非用户主动触发的显示组件的启动,这样用户的财产或系统也就不会被影响,从而可以保证用户财产和系统安全。
附图说明
56.图1为一个实施例中现有技术中activity的启动流程;
57.图2为一个实施例中计算机设备的内部结构图;
58.图3为一个实施例中显示组件控制方法的流程示意图;
59.图4为一个实施例中增加监听后的activity的启动流程;
60.图5为另一个实施例中显示组件控制方法的流程示意图;
61.图6为另一个实施例中显示组件控制方法的流程示意图;
62.图7为另一个实施例中显示组件控制方法的流程示意图;
63.图8为另一个实施例中显示组件控制方法的流程示意图;
64.图9为另一个实施例中显示组件控制方法的流程示意图;
65.图10为一个实施例中显示组件控制装置的结构框图。
具体实施方式
66.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
67.目前对于android系统下的显示内容,某些具有攻击性的应用可以通过后台服务随时启动,这样就会覆盖或遮挡用户当前浏览操作的交互显示界面,造成用户无法正常浏览页面。或者,某些具有攻击性的应用可以通过后台服务随时启动后,会伪装成用户当前浏览操作的交互显示界面,从而造成用户的财产损失或系统受损。因此目前急需一种对基于android系统下的显示内容进行控制的方法。
68.现有android系统下的显示组件的启动流程可以参见图1所示,这里的显示组件主要指的是activity显示组件,activity是一个应用程序组件,其可以提供一个屏幕,用户可以用来交互以完成某项任务。activity中所有操作都与用户密切相关,是一个负责与用户交互的显示组件,可以通过set content view(设置内容视图)来显示指定组件。具体的启动流程为:android系统开始启动后,应用进程请求执行启动activity,接着进行binder进程间通信,activity manager service(activity管理服务)接收启动activity的请求,轮询执行栈顶activity的on pause(临时终止)方法,之后启动activity所属的应用进程。
69.由上述描述可知,在现有android系统下,当前一个activity显示组件的启动流程中,是直接在应用进程请求启动activity显示组件时,轮询执行栈顶的activity显示组件的临时终止方法,即临时终止栈顶的activity显示组件,启动当前一个activity显示组件所属的应用进程。
70.本技术实施例提供的显示组件控制方法,可以应用于计算机设备,该计算机设备
可以是终端或服务器,以终端为例,该计算机设备的内部结构图可以如图2所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种显示组件控制方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
71.本领域技术人员可以理解,图2中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
72.在一个实施例中,如图3所示,提供了一种显示组件控制方法,以该方法应用于图1中的计算机设备为例进行说明,该方法可以包括以下步骤:
73.s202,在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源。
74.在本步骤中,参见图4所示的activity显示组件启动流程,在图1的启动流程的基础上,本方案在轮询执行栈顶的activity显示组件的临时终止方法以启动activity显示组件所属的应用进程之前,加入了对activity显示组件的监听流程。具体为:检测是否开启activity监听,在检测到开启监听时,可以在现有的启动流程中注入监听对象,即注入需要监听的activity显示组件,之后,对监听的activity显示组件执行显示组件控制策略(即后续的控制监听的activity显示组件的显示),并判断监听的activity显示组件是否可以启动,若不可以启动,则直接结束流程;若可以启动,则返回执行轮询执行栈顶的activity显示组件的临时终止方法以启动activity显示组件所属的应用进程。另外,在检测到不开启监听时,直接进入现有的启动流程,即轮询执行栈顶的activity显示组件的临时终止方法以启动activity显示组件所属的应用进程,最终实现对activity显示组件的启动流程。
75.由上述描述可知,计算机设备在预先对显示组件进行控制之前,可以对显示组件进行监听,通过监听流程就可以获知是否有显示组件被触发启动,这里将监听到被触发启动的显示组件记为第一显示组件。需要说明的是,这里只是监听到第一显示组件被触发启动,但是该第一显示组件还未真正启动,即处于待启动状态。这里的第一显示组件可以是一个或多个。
76.另外,在监听到第一显示组件被触发启动之后,相应的就可以获得该第一显示组件被触发时的触发源。触发源可以包括用户自主触发或非用户自主触发,其中用户自主触发指的是用户主动点击或输入一些指令等来触发第一显示组件启动;非用户自主触发指的是用户未进行任何操作但是第一显示组件被触发启动,属于非人为的触发,该触发行为可能会带有攻击性,因此需要后续进行进一步处理。
77.s204,根据上述触发源检测第一显示组件是否为用户自主触发。
78.在本步骤中,在上述获得第一显示组件的触发源之后,就可以通过对触发源进行
判断,获得第一显示组件属于用户自主触发启动的,还是属于非用户自主触发启动的。
79.s206,若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
80.在本步骤中,在上述获得第一显示组件的触发源判断结果之后,在一种可能的实施方式中,若第一显示组件属于非用户自主触发启动的,该触发行为可能会带有攻击性,可能会影响当前用户浏览的页面,或者可能对会用户财产和系统安全造成影响,因此需要禁止该触发行为所引起的显示组件的启动,即需要禁止该第一显示组件启动。同时,为了保证用户当前的浏览操作不受影响,可以保持用户浏览的页面保持显示当前展现的第二显示组件。这里的第二显示组件与第一显示组件一般不是同一个组件,不过,可选的,这里第一显示组件和第二显示组件可以均为android系统下的显示组件,即同系统下的显示组件,这样可以便于计算机设备快速实现对同系统下的显示组件的控制。
81.在另一种可能的实施方式中,可选的,若第一显示组件为用户自主触发,则允许第一显示组件启动。也就是说,该第一显示组件为用户主动触发启动的,表明用户想要/需要在页面上显示该第一显示组件,那么可以允许该第一显示组件启动,在页面上显示该第一显示组件时,可以是采用第一显示组件覆盖掉第二显示组件的全部或部分,也可以是暂时退出第二显示组件,页面当前只展现第一显示组件。示例地,例如页面当前展现的是聊天界面,但是用户可能需要看聊天界面中一个新闻链接中的新闻内容,那么用户可以通过点击该新闻链接,允许聊天界面跳转到新闻内容的界面,即页面当前允许显示该新闻内容的页面。这样可以保证用户自主行为的触发显示组件启动时,仍然允许该显示组件启动,这样可以满足用户的不同需求,提升用户的使用体验。
82.这里在允许第一显示组件启动之后,还可以判断该第一显示组件是否成功启动(具体可以通过页面上是否成功显示第一显示组件来判断),若第一显示组件成功启动,则将当前展现的第二显示组件替换为该第一显示组件,即该第一显示组件成为了当前展现的第二显示组件。
83.上述显示组件控制方法中,通过在监听到待启动的第一显示组件被触发后,获取第一显示组件对应的触发源,根据触发源检测第一显示组件是否为用户自主触发,若为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。在该方法中,由于可以通过检测待启动的显示组件的触发源是否为用户自主触发,并在显示组件为非用户自主触发时禁止该显示组件启动,这样就可以禁止或屏蔽非用户主动触发的显示组件的启动,维持页面显示原本的显示组件,从而可以保证用户的正常页面浏览,降低对用户的骚扰;同时禁止或屏蔽非用户主动触发的显示组件的启动,这样用户的财产或系统也就不会被影响,从而可以保证用户财产和系统安全。
84.上述实施例中提到了可以获取显示组件的触发源并进行检测,以下实施例就对获取触发源的具体过程以及具体的检测过程进行详细说明。
85.在另一个实施例中,提供了另一种显示组件控制方法,如图5所示,上述s202可以包括以下步骤:
86.s302,获取第一显示组件被触发时所在的第一应用的包名,以及获取第二显示组件所在的第二应用的包名。
87.在本步骤中,一般被触发启动的显示组件通常是由于一个应用被触发启动后携带
的,也就是说,在某一个第一显示组件被触发启动后,一般是因为某一个应用被触发启动后引起该第一显示组件被触发启动,那么就可以获得该第一显示组件被触发启动时,其所被携带的应用及其包名,该应用记为第一应用,其包名记为第一应用的包名。
88.这里应用的包名在这里指的是package name,其可以作为应用的唯一标识。一个包名代表一个应用,一般不允许两个应用使用同样的包名,即两个不同的应用的包名一般是不一致的。
89.具体的,在第一显示组件被触发启动时可以获得其所在的第一应用的包名以及在页面显示第二显示组件时,也可以获得第二显示组件所在的第二应用的包名,这里的第一应用和第二应用可能是同一个应用。
90.相应地,上述s204可以包括以下步骤:
91.s304,根据第一应用的包名和第二应用的包名的一致性判断结果,确定第一显示组件是否为用户自主触发。
92.在本步骤中,在获得第一应用的包名和第二应用的包名之后,可以将这两个包名进行一致性比对,获得比对结果。
93.在一种可能的实施方式中,若第一应用的包名和第二应用的包名一致,则确定第一显示组件为用户自主触发。也就是说,若比对结果获得的是两个应用的包名相同,那么可以说明第一应用和第二应用为同一个应用,通常是页面当前显示第二显示组件,用户在该页面上通过自主行为触发了第一显示组件启动,即第一显示组件为用户自主触发。
94.在另一种可能的实施方式中,若第一应用的包名和第二应用的包名不一致,则确定第一显示组件为非用户自主触发。也就是说,若比对结果获得的是两个应用的包名不相同,那么可以说明第一应用和第二应用为不同的两个应用,此时就可以判定该第一显示组件被触发时是非用户自主触发的,即有可能是属于某些具有攻击性的应用触发的,因此需要禁止。
95.本实施例中,通过将获取的第一显示组件所在应用的包名以及第二显示组件所在应用的包名进行一致性比对,并根据一致性比对结果确定第一显示组件是否为用户自主触发,这样可以便于快速获知第一显示组件的触发行为是否与用户相关,以便快速进行后续的显示组件控制流程,提升显示组件控制的效率。另外,通过在包名一致时确定第一显示组件为用户自主触发,包名不一致时确定为非用户自主触发,这样可以准确判定第一显示组件的触发行为,提升对第一显示组件的触发行为进行判断的准确性。
96.上述实施例中提到了通过判断是否为用户自主触发行为去控制是否允许第一显示组件启动,以下实施例对在此之前还可以通过判断第一显示组件或第二显示组件是否属于被监听的组件,来进一步判断是否允许第一显示组件启动的具体过程进行说明。
97.在另一个实施例中,提供了另一种显示组件控制方法,如图6所示,在上述s204之前,上述方法还可以包括以下步骤:
98.s402,获取第二显示组件所在的第二应用的包名。
99.本步骤的解释说明可以参见上述s302中关于第二显示组件处的解释说明,这里不再赘述。
100.s404,检测第二应用的包名是否在预设的第一监听列表中。
101.其中,该第一监听列表中包括至少一个被监听的应用的包名。这里的第一监听列
表可以称为carelist,第一监听列表中包括被监听的应用的包名以及应用对应的显示组件的名称;这里第一监听列表中包括的应用可以是计算机设备在android系统中可以监听的全部或部分应用(这里的可以监听指的是能够实现监听的应用,因为通常情况下,android系统中有一些应用是无法被监听的,这里监听的应用一般默认为是需要关注的应用,即有可能存在被攻击风险的应用)。
102.这里可以预先建立第一监听列表,即将在android系统中可以监听的全部或部分应用的包名添加至第一监听列表中,同时也可以将该第一监听列表中的应用对应的显示组件及其名称也获取到,并将各显示组件的名称与对应的应用的包名绑定起来,之后对应添加至第一监听列表中。这里的第一监听列表可由用户预先动态自由配置。
103.具体的,计算机设备在获得第二应用的包名之后,可以将该第二应用的包名输入至第一监听列表中进行应用的包名的匹配,判断第一监听列表中是否有匹配的应用的包名;这里的是否匹配指的是应用的包名是否相同。
104.s406,若上述第二应用的包名不在第一监听列表中,则允许第一显示组件启动。
105.在本步骤中,若第一监听列表中没有与第二应用的包名相匹配/相同的应用的包名,即该第二应用的包名不在第一监听列表中,则表明该第二显示组件所在的第二应用不是需要被监听的应用,该第二显示组件也不是需要被关注的组件,该第二显示组件被覆盖掉的影响不大,因此,这时第一显示组件被触发启动后,可以允许第一显示组件启动,后续不再检测该第一显示组件是否为用户自主触发。
106.s408,若上述第二应用的包名在第一监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
107.在本步骤中,若第一监听列表中存在与第二应用的包名相匹配/相同的应用的包名,即该第二应用的包名在第一监听列表中,则表明该第二显示组件所在的第二应用是需要被监听的应用,该第二显示组件也是需要被关注的组件。该第二显示组件被覆盖掉可能会产生较大的影响,因此,这时第一显示组件被触发启动后,需要继续判断被触发启动的第一显示组件是否为用户自主触发,即需要返回执行上述s204的步骤。
108.本实施例中,通过检测获取的第二显示组件所在应用的包名是否在第一监听列表中,并在应用的包名不在第一监听列表中时允许第一显示组件启动,这样可以使得不属于被监听的应用的显示组件进行启动,满足实际需求以及降低监听的功耗。
109.进一步地,为了提高监听效率,在另一个实施例中,提供了另一种显示组件控制方法,如图7所示,在上述s204之前,上述方法还可以包括以下步骤:
110.s502,获取第一显示组件所在的第一应用的包名。
111.本步骤的解释说明可以参见上述s302中关于第一显示组件处的解释说明,这里不再赘述。
112.s504,检测第一应用的包名是否在预设的第二监听列表中。
113.其中,该第二监听列表中包括至少一个被监听的应用的包名,第二监听列表与第一监听列表存在交集,即第二监听列表可以是第一监听列表的一部分。
114.这里的第二监听列表可以称为watchlist,第二监听列表中包括被监听的应用的包名以及应用对应的显示组件的名称;这里第二监听列表中包括的应用可以是计算机设备在android系统中需要重点监听的全部或部分应用(这里第二监听列表中被监听的应用一
般是需要重点关注的应用,即大概率存在被攻击风险的应用)。
115.这里可以预先建立第二监听列表,即将在android系统中需要重点监听的全部或部分应用的包名添加至第二监听列表中,同时也可以将该第二监听列表中的应用对应的显示组件及其名称也获取到,并将各显示组件的名称与对应的应用的包名绑定起来,之后对应添加至第二监听列表中。这里的第二监听列表也可由用户预先动态自由配置。
116.具体的,若第二应用的包名在第一监听列表中,则计算机设备可以将第一应用的包名获取到,同时将该第一应用的包名输入至第二监听列表中进行应用的包名的匹配,判断第二监听列表中是否有匹配的应用的包名;这里的是否匹配指的是应用的包名是否相同。
117.s506,若第一应用的包名不在第二监听列表中,则允许第一显示组件启动。
118.在本步骤中,若第二监听列表中没有与第一应用的包名相匹配/相同的应用的包名,即该第一应用的包名不在第二监听列表中,则表明该第一显示组件所在的第一应用不是需要被重点监听的应用,该第一显示组件也不是需要被重点关注的组件,或者说该第一显示组件不太可能具有攻击性,即可能不会对用户的财产或系统造成危害,那么这时第一显示组件被触发启动后,可以允许第一显示组件启动,后续不再检测该第一显示组件是否为用户自主触发。
119.s508,若第一应用的包名在第二监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
120.在本步骤中,若第二监听列表中存在与第一应用的包名相匹配/相同的应用的包名,即该第一应用的包名在第二监听列表中,则表明该第一显示组件所在的第一应用是需要被重点监听的应用,该第一显示组件也是需要被重点关注的组件。因此,这时第一显示组件被触发启动后,需要继续判断被触发启动的第一显示组件是否为用户自主触发,即需要返回执行上述s204的步骤。
121.本实施例中,通过在第一监听列表中判断第一显示组件所在应用的包名是否在第二监听列表中,并在不在监听列表中时继续检测第一显示组件是否为用户自主触发,使得对第一显示组件的启动的控制更加精准,即可以提升对第一显示组件进行控制的准确性。
122.需要说明的是,本技术上述实施例s402-s408以及s502-s508中主要是通过反射activity manager native显示组件本地管理器中的activity显示组件控制器来实时监听activity显示组件的启动操作,这样就不必定时轮询位于栈顶的activity显示组件是哪个,只需要监听第一监听列表以及第二监听列表中的应用及其对应的显示组件即可,不必全部监听或轮询查看,这样可大大节省系统资源消耗。
123.在另一个实施例中,如图8所示,在上述s204之前,上述方法还可以包括:
124.s602,检测第一显示组件是否属于第二显示组件所在的第二应用。
125.在本步骤中,可以通过判断第一应用的包名与第二显示组件所在的第二应用的包名是否一致,获得第一显示组件是否属于第二显示组件所在的第二应用。对于采用两个应用的包名进行一致性判断的过程,可以参见上述s304中的判断过程,这里不再赘述。
126.s604,若属于,则允许第一显示组件启动。
127.在本步骤中,若第一应用的包名和第二应用的包名一致,则确定第一显示组件属于第二显示组件所在的第二应用,此时说明第一应用和第二应用为同一个应用,通常是页
面当前显示第二显示组件,第二显示组件和第一显示组件相关,该第一显示组件大概率不会具有攻击性,因此可以允许该第一显示组件启动。
128.s606,若不属于,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
129.在本步骤中,若第一应用的包名和第二应用的包名不一致,则确定第一显示组件不属于第二显示组件所在的第二应用,此时说明第一应用和第二应用不是同一个应用,那么就需要继续对该第一显示组件是否为用户自主触发进行检测,即需要返回执行上述s204步骤。
130.需要说明的是,这里的s602-s606和上述s402-s408以及s502-s508均可以并列执行,也可以是顺序执行,例如先执行s402-s408,接着执行s502-s508,最终执行s602-s606,当然还可以是其他顺序,这里不作具体限定。
131.本实施例中,通过检测第一显示组件是否属于第二显示组件所在的应用,并在属于时允许第一显示组件启动,这样可以提高显示组件的启动效率;另外在不属于时需要继续对该第一显示组件是否为用户自主触发进行检测,这样可以提升对第一显示组件的启动进行检测的准确性。
132.进一步地,为了便于对本技术的技术方案进行更为详细的说明,以下结合一个具体的实施例进行说明,在上述实施例的基础上,参见图9所示,上述方法可以包括以下步骤:
133.s1,监听全部的显示组件中是否存在被触发启动的显示组件。
134.s2,在监听到待启动的第一显示组件被触发后,获取当前展现的第二显示组件所在的第二应用的包名。
135.s3,判断第二应用的包名是否在第一监听列表中,若是,则执行s4,否则执行s9;第一监听列表包括至少一个被监听的应用的包名。
136.s4,判断第一应用的包名是否在第二监听列表中,若是,则执行s5,否则执行s9;第二监听列表包括至少一个被监听的应用的包名。
137.s5,判断第一显示组件是否属于第二显示组件所在的第二应用,若否,则执行s6,若是则执行s9。
138.s6,获取第一显示组件对应的触发源。
139.s7,根据触发源判断第一应用是否为用户自主触发,若是,则执行s9,否则执行s8。
140.s8,禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
141.s9,允许第一显示组件启动。
142.s10,判断第一显示组件是否启动成功,若是,则执行s11,否则返回执行s1。
143.s11,将当前展现的第二显示组件替换为第一显示组件。
144.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
145.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的显示组件控制方法的显示组件控制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个显示组件控制装置实施例中的具体限定可以参见上文中对于显示组件控制方法的限定,在此不再赘述。
146.在一个实施例中,如图10所示,提供了一种显示组件控制装置,包括触发源获取模块11、检测模块12和控制模块13,其中:
147.触发源获取模块11,用于在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;
148.检测模块12,用于根据上述触发源检测第一显示组件是否为用户自主触发;
149.控制模块13,用于若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
150.可选的,上述控制模块13,还用于若第一显示组件为用户自主触发,则允许第一显示组件启动。
151.可选的,上述第一显示组件和第二显示组件为android系统下的显示组件。
152.在另一个实施例中,提供了另一种显示组件控制装置,在上述实施例的基础上,上述触发源获取模块11可以包括组件包名获取单元,该组件包名获取单元,用于获取第一显示组件被触发时所在的第一应用的包名,以及获取第二显示组件所在的第二应用的包名;
153.相应地,上述检测模块12可以包括判断单元,该判断单元,用于根据第一应用的包名和第二应用的包名的一致性判断结果,确定第一显示组件是否为用户自主触发。
154.可选的,上述判断单元,具体用于若第一应用的包名和第二应用的包名一致,则确定第一显示组件为用户自主触发;若第一应用的包名和第二应用的包名不一致,则确定第一显示组件为非用户自主触发。
155.在另一个实施例中,提供了另一种显示组件控制装置,在上述实施例的基础上,在上述检测模块12根据上述触发源检测第一显示组件是否为用户自主触发之前,上述装置还可以包括:应用包名获取模块和列表检测模块,其中:
156.应用包名获取模块,用于获取第二显示组件所在的第二应用的包名;
157.列表检测模块,用于检测第二应用的包名是否在预设的第一监听列表中;该第一监听列表中包括至少一个被监听的应用的包名;
158.上述控制模块13,还用于若上述第二应用的包名不在第一监听列表中,则允许第一显示组件启动;或者,若上述第二应用的包名在第一监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
159.可选的,上述控制模块13可以包括包名检测单元和控制单元,其中:
160.包名检测单元,用于若第二应用的包名在第一监听列表中,则检测第一应用的包名是否在预设的第二监听列表中;该第二监听列表中包括至少一个被监听的应用的包名,第二监听列表与第一监听列表存在交集;
161.控制单元,用于若第一应用的包名不在第二监听列表中,则允许第一显示组件启动;或者,若第一应用的包名在第二监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
162.在另一个实施例中,提供了另一种显示组件控制装置,在上述实施例的基础上,在
上述检测模块12根据上述触发源检测第一显示组件是否为用户自主触发之前,上述装置还可以包括:组件检测模块,其中:
163.组件检测模块,用于检测第一显示组件是否属于第二显示组件所在的第二应用;
164.上述控制模块13,还用于若属于,则允许第一显示组件启动;或者,若不属于,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
165.上述显示组件控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
166.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
167.在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;根据上述触发源检测第一显示组件是否为用户自主触发;若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
168.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
169.获取第一显示组件被触发时所在的第一应用的包名,以及获取第二显示组件所在的第二应用的包名;根据第一应用的包名和第二应用的包名的一致性判断结果,确定第一显示组件是否为用户自主触发。
170.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
171.若第一应用的包名和第二应用的包名一致,则确定第一显示组件为用户自主触发;若第一应用的包名和第二应用的包名不一致,则确定第一显示组件为非用户自主触发。
172.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
173.获取第二显示组件所在的第二应用的包名;检测第二应用的包名是否在预设的第一监听列表中;该第一监听列表中包括至少一个被监听的应用的包名;若上述第二应用的包名不在第一监听列表中,则允许第一显示组件启动;或者,若上述第二应用的包名在第一监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
174.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
175.若第二应用的包名在第一监听列表中,则检测第一应用的包名是否在预设的第二监听列表中;该第二监听列表中包括至少一个被监听的应用的包名,第二监听列表与第一监听列表存在交集;若第一应用的包名不在第二监听列表中,则允许第一显示组件启动;或者,若第一应用的包名在第二监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
176.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
177.检测第一显示组件是否属于第二显示组件所在的第二应用;若属于,则允许第一显示组件启动;或者,若不属于,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
178.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
179.若第一显示组件为用户自主触发,则允许第一显示组件启动。
180.在一个实施例中,上述第一显示组件和第二显示组件为android系统下的显示组件。
181.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
182.在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;根据上述触发源检测第一显示组件是否为用户自主触发;若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
183.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
184.获取第一显示组件被触发时所在的第一应用的包名,以及获取第二显示组件所在的第二应用的包名;根据第一应用的包名和第二应用的包名的一致性判断结果,确定第一显示组件是否为用户自主触发。
185.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
186.若第一应用的包名和第二应用的包名一致,则确定第一显示组件为用户自主触发;若第一应用的包名和第二应用的包名不一致,则确定第一显示组件为非用户自主触发。
187.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
188.获取第二显示组件所在的第二应用的包名;检测第二应用的包名是否在预设的第一监听列表中;该第一监听列表中包括至少一个被监听的应用的包名;若上述第二应用的包名不在第一监听列表中,则允许第一显示组件启动;或者,若上述第二应用的包名在第一监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
189.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
190.若第二应用的包名在第一监听列表中,则检测第一应用的包名是否在预设的第二监听列表中;该第二监听列表中包括至少一个被监听的应用的包名,第二监听列表与第一监听列表存在交集;若第一应用的包名不在第二监听列表中,则允许第一显示组件启动;或者,若第一应用的包名在第二监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
191.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
192.检测第一显示组件是否属于第二显示组件所在的第二应用;若属于,则允许第一显示组件启动;或者,若不属于,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
193.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
194.若第一显示组件为用户自主触发,则允许第一显示组件启动。
195.在一个实施例中,上述第一显示组件和第二显示组件为android系统下的显示组件。
196.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
197.在监听到待启动的第一显示组件被触发后,获取该第一显示组件对应的触发源;根据上述触发源检测第一显示组件是否为用户自主触发;若上述第一显示组件为非用户自主触发,则禁止第一显示组件启动,并保持页面显示当前展现的第二显示组件。
198.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
199.获取第一显示组件被触发时所在的第一应用的包名,以及获取第二显示组件所在的第二应用的包名;根据第一应用的包名和第二应用的包名的一致性判断结果,确定第一
显示组件是否为用户自主触发。
200.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
201.若第一应用的包名和第二应用的包名一致,则确定第一显示组件为用户自主触发;若第一应用的包名和第二应用的包名不一致,则确定第一显示组件为非用户自主触发。
202.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
203.获取第二显示组件所在的第二应用的包名;检测第二应用的包名是否在预设的第一监听列表中;该第一监听列表中包括至少一个被监听的应用的包名;若上述第二应用的包名不在第一监听列表中,则允许第一显示组件启动;或者,若上述第二应用的包名在第一监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
204.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
205.若第二应用的包名在第一监听列表中,则检测第一应用的包名是否在预设的第二监听列表中;该第二监听列表中包括至少一个被监听的应用的包名,第二监听列表与第一监听列表存在交集;若第一应用的包名不在第二监听列表中,则允许第一显示组件启动;或者,若第一应用的包名在第二监听列表中,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
206.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
207.检测第一显示组件是否属于第二显示组件所在的第二应用;若属于,则允许第一显示组件启动;或者,若不属于,则返回执行上述根据触发源检测第一显示组件是否为用户自主触发的步骤。
208.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
209.若第一显示组件为用户自主触发,则允许第一显示组件启动。
210.在一个实施例中,上述第一显示组件和第二显示组件为android系统下的显示组件。
211.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
212.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,
不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
213.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
214.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种显示组件控制方法,其特征在于,所述方法包括:在监听到待启动的第一显示组件被触发后,获取所述第一显示组件对应的触发源;根据所述触发源检测所述第一显示组件是否为用户自主触发;若所述第一显示组件为非用户自主触发,则禁止所述第一显示组件启动,并保持页面显示当前展现的第二显示组件。2.根据权利要求1所述的方法,其特征在于,所述获取所述第一显示组件对应的触发源,包括:获取所述第一显示组件被触发时所在的第一应用的包名,以及获取所述第二显示组件所在的第二应用的包名;所述根据所述触发源检测所述第一显示组件是否为用户自主触发,包括:根据所述第一应用的包名和所述第二应用的包名的一致性判断结果,确定所述第一显示组件是否为用户自主触发。3.根据权利要求2所述的方法,其特征在于,所述根据所述第一应用的包名和所述第二应用的包名的一致性判断结果,确定所述第一显示组件是否为用户自主触发,包括:若所述第一应用的包名和所述第二应用的包名一致,则确定所述第一显示组件为用户自主触发;若所述第一应用的包名和所述第二应用的包名不一致,则确定所述第一显示组件为非用户自主触发。4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述触发源检测所述第一显示组件是否为用户自主触发之前,所述方法还包括:获取所述第二显示组件所在的第二应用的包名;检测所述第二应用的包名是否在预设的第一监听列表中;所述第一监听列表中包括至少一个被监听的应用的包名;若所述第二应用的包名不在所述第一监听列表中,则允许所述第一显示组件启动;或者,若所述第二应用的包名在所述第一监听列表中,则返回执行所述根据所述触发源检测所述第一显示组件是否为用户自主触发的步骤。5.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述触发源检测所述第一显示组件是否为用户自主触发之前,所述方法还包括:获取所述第一显示组件所在的第一应用的包名;检测所述第一应用的包名是否在预设的第二监听列表中;所述第二监听列表中包括至少一个被监听的应用的包名;若所述第一应用的包名不在所述第二监听列表中,则允许所述第一显示组件启动;或者,若所述第一应用的包名在所述第二监听列表中,则返回执行所述根据所述触发源检测所述第一显示组件是否为用户自主触发的步骤。6.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述触发源检测所述第一显示组件是否为用户自主触发之前,所述方法还包括:检测所述第一显示组件是否属于所述第二显示组件所在的第二应用;若属于,则允许所述第一显示组件启动;或者,若不属于,则返回执行所述根据所述触发源检测所述第一显示组件是否为用户自主触发的步骤。
7.一种显示组件控制装置,其特征在于,所述装置包括:触发源获取模块,用于在监听到待启动的第一显示组件被触发后,获取所述第一显示组件对应的触发源;检测模块,用于根据所述触发源检测所述第一显示组件是否为用户自主触发;控制模块,用于若所述第一显示组件为非用户自主触发,则禁止所述第一显示组件启动,并保持页面显示当前展现的第二显示组件。8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

技术总结
本申请涉及一种显示组件控制方法、装置、设备、存储介质和程序产品。所述方法包括:在监听到待启动的第一显示组件被触发后,获取所述第一显示组件对应的触发源;根据所述触发源检测所述第一显示组件是否为用户自主触发;若所述第一显示组件为非用户自主触发,则禁止所述第一显示组件启动,并保持页面显示当前展现的第二显示组件。采用本方法能够屏蔽掉非用户主动行为的启动应用和显示组件,保证用户的正常页面浏览,以及保护用户的财产和系统安全。以及保护用户的财产和系统安全。以及保护用户的财产和系统安全。


技术研发人员:吴聪聪 王艳萍 王云鹏
受保护的技术使用者:中科曙光国际信息产业有限公司
技术研发日:2022.07.12
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7083.html

最新回复(0)