CN115828227A - 识别广告弹窗的方法、电子设备及存储介质 - Google Patents
识别广告弹窗的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115828227A CN115828227A CN202310011634.6A CN202310011634A CN115828227A CN 115828227 A CN115828227 A CN 115828227A CN 202310011634 A CN202310011634 A CN 202310011634A CN 115828227 A CN115828227 A CN 115828227A
- Authority
- CN
- China
- Prior art keywords
- application
- popup
- request
- window
- pop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了识别广告弹窗的方法、电子设备及存储介质,涉及终端技术领域,该方法包括:确定第一应用对应的弹窗路径的数量;当检测到数量大于预设阈值时,确定弹窗路径对应的弹窗为广告弹窗。正常应用通常会采用一种发起弹窗请求的方式调起弹窗,通常会产生一条弹窗路径,而流氓应用会通常采用多种发起弹窗请求的方式调起弹窗,通常会产生多条弹窗路径。因此本申请提供的识别广告弹窗的方法,通过确定第一应用对应的弹窗路径的数量,再比较弹窗路径的数量与预设阈值之间的大小,当检测到弹窗路径的数量大于预设阈值时,就可以准确地确定弹窗路径对应的弹窗为广告弹窗。
Description
技术领域
本申请涉及终端技术领域,尤其涉及识别广告弹窗的方法、电子设备及存储介质。
背景技术
目前,流氓应用程序(Application,APP)经常通过弹出广告弹窗来向用户推广各种产品。例如,在用户使用的电子设备(如手机)的锁屏界面、桌面以及运行的APP界面频繁弹出广告弹窗,给用户带来极大困扰。
当前采用名单机制判断是否对弹窗进行拦截。例如,预先设置流氓APP的包名列表、广告窗口的活动名称列表等,当某一弹窗对应的包名或者活动名称在列表内时,对该弹窗进行拦截。然而,这种拦截广告弹窗的方式,容易出现漏拦截的问题,导致拦截效果不好。
发明内容
本申请提供了识别广告弹窗的方法、电子设备及存储介质,该识别广告弹窗的方法,基于弹窗路径的数量识别是否为流氓(或称恶意)应用后台弹窗行为,由此可以准确地判断出广告弹窗。
第一方面,本申请提供一种识别广告弹窗的方法,该方法包括:确定第一应用对应的弹窗路径的数量,弹窗路径用于表示第一应用发起弹窗请求的方式,弹窗请求用于调起弹窗;当检测到数量大于预设阈值时,确定弹窗路径对应的弹窗为广告弹窗。
可选地,第一应用表示同一应用,即表示同一个应用。
可选地,弹窗路径由第一应用发起弹窗请求的过程中产生。
可选地,预设阈值可根据实际情况进行设置,在本申请实施例中,预设阈值可以设置为1。
第一方面提供的识别广告弹窗的方法,先确定第一应用对应的弹窗路径的数量;之后当检测到数量大于预设阈值时,确定弹窗路径对应的弹窗为广告弹窗。正常应用通常会采用一种发起弹窗请求的方式调起弹窗,通常会产生一条弹窗路径,而流氓(或称恶意)应用会通常采用多种发起弹窗请求的方式调起弹窗,通常会产生多条弹窗路径。因此本申请提供的识别广告弹窗的方法,通过确定第一应用对应的弹窗路径的数量,再比较弹窗路径的数量与预设阈值之间的大小,当检测到弹窗路径的数量大于预设阈值时,就可以准确地确定该弹窗路径对应的弹窗为广告弹窗。在准确地确定出广告弹窗的基础上,有利于后续对该广告弹窗进行准确地拦截,进而提升了拦截效果,给用户带来了更好地体验。
一种可能的实现方式中,确定第一应用对应的弹窗路径的数量,包括:在快照集合中查找第一应用对应的变量值,变量值用于标识弹窗路径;统计第一应用对应的变量值的数量,得到第一应用对应的弹窗路径的数量。
可选地,快照集合由多个快照构成。在本申请实施例中,每发生一次弹窗行为,对应生成一个快照。
可选地,每个快照中记录了该应用发起的弹窗请求的应用名称(本实施方式中也称应用名、应用包名等)、活动名称(本实施方式中也称Activity名)以及变量值。
这种实现方式中,由于变量值可以用来标识弹窗路径,通过统计第一应用对应的变量值的数量,有利于快速确定第一应用对应的弹窗路径的数量,进而有利于后续利用该弹窗路径的数量判断弹窗路径对应的弹窗是否属于广告弹窗。
一种可能的实现方式中,在快照集合中查找第一应用对应的变量值之前,本申请提供的识别广告弹窗的方法还包括:接收第二应用的弹窗请求,第二应用表示任意一个应用;当检测到活动名称未在黑名单内时,存储第二应用的弹窗请求的应用名称、活动名称以及变量值,得到第二应用的快照;根据多个快照生成快照集合。
可选地,第二应用表示任意一个应用,弹窗请求包括应用名称、活动名称以及变量值。
可选地,可在AMS中新建一个记录模块,该记录模块用于在记录第二应用的弹窗请求的应用名称、活动名称以及变量值,生成第二应用本次弹窗行为所对应的快照。
可选地,在一种可能的实现方式中,记录模块还用于存储快照集合。
可选地,在另一种可能的实现方式中,记录模块中预先存储有空的快照集合,每生成一个快照,记录模块便将新生成的快照加入快照集合中。
这种实现方式中,检测到弹窗请求的活动名称未在黑名单内时,生成本次弹窗行为对应的快照,并基于同样的方法生成快照集合,有利于后续基于该快照集合及时确定出弹窗路径的数量。
一种可能的实现方式中,本申请提供的识别广告弹窗的方法还包括:当检测到第一快照的存储时长超过预设时长时,在快照集合中删除第一快照。
可选地,第一快照表示快照集合中的任意一个快照。
这种实现方式中,每隔一段时间便对快照集合进行一次清理,剔除存储时间过长的快照,避免快照集合过大,而影响电子设备的处理速度。
一种可能的实现方式中,在确定弹窗路径对应的弹窗为广告弹窗之后,本申请提供的识别广告弹窗的方法还包括:获取广告弹窗对应的活动名称;将活动名称添加至黑名单。
可选地,黑名单用于再次接收到广告弹窗对应的弹窗请求时,拦截广告弹窗。
这种实现方式中,可以有效地对广告弹窗进行拦截,提升了拦截效果,提高了用户体验。
一种可能的实现方式中,在接收第二应用的弹窗请求之后,本申请提供的识别广告弹窗的方法还包括:当检测到活动名称在黑名单内时,拦截第二应用的弹窗请求对应的弹窗。
这种实现方式中,可以有效地对广告弹窗进行拦截,提升了拦截效果,提高了用户体验。
一种可能的实现方式中,在接收第二应用的弹窗请求之后,本申请提供的识别广告弹窗的方法还包括:判断第二应用的弹窗请求是否符合预设规定;若判定第二应用的弹窗请求符合预设规定,则显示第二应用的弹窗请求对应的弹窗。
应理解,为了避免正常应用的弹窗请求对应的弹窗被拦截,而影响用户正常使用应用,在本申请实施例中,在接收到第二应用的弹窗请求时,先判断第二应用的弹窗请求是否符合预设规定。
其中,预设规定可以预先设置。例如,预设规定可以是Android原生所允许的弹窗行为。
这种实现方式中,可以有效避免正常应用的弹窗被拦截,从而保证了用户正常使用应用。
一种可能的实现方式中,显示第二应用的弹窗请求对应的弹窗,包括:若第二应用为目标应用,则判定第二应用的弹窗请求符合预设规定,并显示第二应用的弹窗请求对应的弹窗。
其中,目标应用指被允许进行弹窗的应用。例如,目标应用可以包括当前置顶应用、***应用以及预设的白名单应用中的至少一种。
应理解,如果想要拉起的弹窗所属的应用为当前置顶应用,那么跳转至该当前置顶应用的任何界面都应当是被允许的。
应理解,如果第二应用处于交互状态,说明第二应用正在与用户进行交互,那么该第二应用也可以自由跳转属于该第二应用的任何界面,以此保证用户能够正常使用该第二应用。
应理解,第二应用为当前置顶应用时,即发起弹窗请求的应用为当前置顶应用时,可能会存在从当前置顶应用跳转至其他应用的行为。
应理解,第二应用为***应用时,即发起弹窗请求的应用为***应用时,可能会存在从***应用调起窗口的行为。
应理解,第二应用为白名单应用时,即发起弹窗请求的应用为白名单应用时,可能会存在预设的白名单应用启动其他窗口的行为,白名单应用为***或用户授权的应用,该白名单应用的弹窗行为也为***或用户授权允许的行为,对此不应该进行拦截。
值得说明的是,当前置顶应用或处于交互状态的应用跳转至广告页面,均属于正常行为,对此不进行拦截。
一种可能的实现方式中,显示第二应用的弹窗请求对应的弹窗,包括:确定第二应用的弹窗请求对应的弹窗所属的应用;若应用为当前置顶应用,则判定第二应用的弹窗请求符合预设规定,并显示第二应用的弹窗请求对应的弹窗。
这种实现方式中,可以有效避免允许进行弹窗的应用发起的弹窗请求被拦截,从而保证能够用户正常使用应用。
第二方面,本申请提供了一种通信装置,该通信装置包含在电子设备中,该通信装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,记录模块或单元、拦截模块或单元、判断模块或单元等。
第三方面,本申请提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面提供的技术方案中任意一种方法。
第四方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
可选的,芯片还包括存储器,存储器与处理器通过电路或电线连接。
可选的,芯片还包括通信接口。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法。
第六方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法。
附图说明
图1为本申请一示例性实施例示出的一种弹出广告弹窗的示意图;
图2为本申请一示例性实施例示出的另一种弹出广告弹窗的示意图;
图3是本申请一示例性实施例示出的电子设备的结构示意图;
图4是本申请一示例性实施例示出的电子设备的软件结构框图;
图5是本申请实施例提供的一种弹窗流程示意图;
图6是本申请实施例提供的一种识别广告弹窗的方法的流程示意图;
图7是本申请实施例提供的一种识别广告弹窗的方法的步骤S201的具体流程图;
图8是本申请实施例提供的一种生成快照集合的方法的流程示意图;
图9是本申请一示例性实施例示出的识别广告弹窗的方法示意图;
图10为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
首先,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、消息传递对象(Intent)
Intent是一个消息传递对象,使用它可以向其他安卓(Android)组件请求操作。Intent的基本用途主要包括:启动活动(Activity)、启动服务、传递广播等。Intent对象可以封装传递组件名称(ComponentName)、动作(Action)、种类(Category)、数据(Data)、附件信息(Extra)以及标志(Flag)等。
2、活动(Activity)
Activity是安卓(Android)的四大组件之一。其是用户操作的可视化界面,为用户提供了一个完成操作指令的窗口。在Android App 中只要能看见的界面几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。
3、软件开发工具包(Software Development Kit,SDK)
通常指一些软件工程师为特定的软件包、软件框架、硬件平台、操作***等建立应用软件时的开发工具的集合。可以将其理解为,由第三方服务商提供的实现软件产品某项功能的工具包,里面有很多类型文件。
4、通知(Notification)
通知是安卓(Android)***中的一个特色功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。例如,发出一条通知后,电子设备(如手机)最上方的状态栏中会显示一个通知的图标,下拉状态栏可以看到详细的内容。
5、流氓(或称恶意)应用程序(Application,APP)
本申请实施例中,将未运行在前台还弹出广告弹窗的应用称为流氓(或称恶意)应用程序。
6、消息响应函数(OnCreate)
OnCreate用于表示一个窗口正在生成。
7、***用户界面(SystemUI)
SystemUI为***提供了基础的显示界面。譬如屏幕顶端的状态栏、屏幕底部的导航栏、下拉界面的快速设置栏、通知栏、锁屏界面、截屏显示界面以及音量调节对话框等界面。
8、桌面启动器(Launcher)
Launcher是安卓(Android)***中的桌面启动器,是Android***中的主要程序组件之一,Android***中如果没有Launcher就无法启动安卓桌面。
以上是对本申请实施例所涉及的名词的简单介绍,以下不再赘述。
为了本申请各实施例的描述清楚简洁,下面先结合附图对不同场景下的广告弹窗进行描述。
目前,流氓(或称恶意)应用程序(Application,APP)经常通过弹出广告弹窗来向用户推广各种产品。例如,在用户使用的电子设备(如手机)的锁屏界面、桌面以及运行的应用界面频繁弹出广告弹窗,给用户带来极大困扰。
为了便于理解,下面本申请实施例以电子设备是手机为例,结合附图对不同场景下的广告弹窗进行描述。在一个示例中,流氓(或称恶意)应用会在手机主界面(或称手机桌面)中弹出广告弹窗。请参阅图1,图1为本申请一示例性实施例示出的一种弹出广告弹窗的示意图。如图1中(a)所示的为手机主界面(或称手机桌面),流氓(或称恶意)应用在手机主界面(或称手机桌面)中弹出广告弹窗,即如图1中(b)所示的广告弹窗。
在另一个示例中,流氓(或称恶意)应用会在手机锁屏界面中弹出广告弹窗。请参阅图2,图2为本申请一示例性实施例示出的另一种弹出广告弹窗的示意图。如图2中(a)所示的为手机锁屏界面,流氓(或称恶意)应用在手机锁屏界面中弹出广告弹窗,即如图2中(b)所示的广告弹窗。
上面结合附图对不同场景下的广告弹窗进行了描述,下面本申请实施例对相关技术中弹出广告弹窗的方式进行简单介绍。
示例性地,目前网络上很多流氓(或称恶意)应用试图采用多种方式调起广告弹窗,方式如下:
在一个示例中,流氓(或称恶意)应用可以为某个清理电子设备(如手机)垃圾的应用,譬如该应用的包名为:com.android.ptcctxxxx.ofctsjxx,该应用主要通过将后台应用置顶的方式,实现在电子设备(如手机)中弹出广告弹窗,具体可通过下述代码段实现:
在该代码段中,“appTask.moveTaskToFront()”用于找到当前应用的Task,并启动Task的栈顶活动(Activity),实现将本应用置顶到前台。
在另一个示例中,流氓(或称恶意)应用可以通过Transact调起Activity,从而实现在电子设备(如手机)中弹出广告弹窗。其中,Transact在代码中有处理的含义,通过Transact调起Activity,可以理解为通过Transact发送弹窗请求,具体可以通过下述代码段实现:
在又一个示例中,流氓(或称恶意)应用可以为某个清理电子设备(如手机)内存的应用,譬如该应用的包名为:Com.allpowxxful.exxseclean,该应用主要通过在sorryList.a中循环输入intent作为参数调用不同方法,实现在电子设备(如手机)中弹出广告弹窗,具体可通过下述代码段实现:
在该代码段中,“this.a.add(new O8o0OO())……this.a.add(new O80())}”表示调用的8种不同的方法,即主要通过调用这些不同的方法,实现在电子设备(如手机)中弹出广告弹窗。
在另一个示例中,流氓(或称恶意)应用可以利用通知(Notification)白名单,实现在电子设备(如手机)中弹出广告弹窗,具体可通过下述代码段实现:
在又一个示例中,流氓(或称恶意)应用可以利用任务调度器(JobScheduler),实现在电子设备(如手机)中弹出广告弹窗,具体可通过下述代码段实现:
上面为本申请实施例对相关技术中弹出广告弹窗的方式进行的介绍。用户若误点了这些广告弹窗,可能会导致给电子设备(如手机)中下载更多的流氓(或称恶意)应用,或使得流氓(或称恶意)应用篡改电子设备(如手机)的***设置,进而造成用户的财产损失等。因此,拦截这些广告弹窗非常有必要。
由于在电子设备(如手机)中弹出的弹窗,不一定都是广告弹窗,也会存在正常使用场景。譬如用户当前正在使用某个聊天应用,其点击聊天信息中的链接后,电子设备(如手机)需要从当前的聊天窗口跳转至浏览器窗口。因此,拦截所有的弹窗并不现实,这可能会导致应用无法正常使用。
相关技术中,通常采用名单机制判断是否对某个弹窗进行拦截。例如,预先设置流氓应用的包名列表、广告窗口的活动名称列表、广告软件开发工具包(SoftwareDevelopment Kit,SDK)列表等,当某一弹窗对应的包名或者活动名称或者SDK在列表内时,对该弹窗进行拦截。
然而,流氓广告换皮(如更改包名)重打包的现象十分常见,且广告SDK的种类多样、不停迭代。
例如,省电类的应用经常更换包名,下面列出了一些省电类的应用经常使用的包名。
com.power.znsdg、com.power.cjsdw、com.power.clean、com.power.cqsdv、com.power.sjsdw、com.power.sjsdz、com.power.sjsdz8、com.power.prote、com.power.znsdz。
再例如,一些广告平台可使广告SDK的种类多样化。
因此,通过包名列表、广告SDK列表等判断是否为广告弹窗的方式可能会滞后,导致拦截效果不好。且这些包名列表、活动名称列表以及广告SDK列表等都需要长期维护,增加了维护成本。再者,这些包名列表、活动名称列表以及广告SDK列表等不能全面覆盖所有需要拦截的广告窗口,容易出现漏拦截的问题。
基于上述技术方案中存在的问题,结合流氓应用的动机(流氓应用不知道电子设备端会产生什么样的拦截操作,所以通常会采用多种发起弹窗请求的方式调起广告弹窗,只要这些方式中有一个成功,即可成功展示广告),再结合相关技术中正常应用的常规操作(如正常应用认为它们的弹窗请求理应被得到允许,没有动机去尝试采用多种发起弹窗请求的方式调起弹窗,正常应用通常会采用一种发起弹窗请求的方式调起弹窗),本申请提供了一种识别广告弹窗的方法,包括确定第一应用对应的弹窗路径的数量,该弹窗路径用于表示第一应用发起弹窗请求的方式,弹窗请求用于调起弹窗;当检测到数量大于预设阈值时,确定弹窗路径对应的弹窗为广告弹窗。正常应用通常会采用一种发起弹窗请求的方式调起弹窗,通常会产生一条弹窗路径,而流氓(或称恶意)应用会通常采用多种发起弹窗请求的方式调起弹窗,通常会产生多条弹窗路径。因此本申请提供的识别广告弹窗的方法,通过确定第一应用对应的弹窗路径的数量,再比较弹窗路径的数量与预设阈值之间的大小,当检测到弹窗路径的数量大于预设阈值时,就可以准确地确定该弹窗路径对应的弹窗为广告弹窗。在准确地确定出广告弹窗的基础上,有利于后续对该广告弹窗进行准确地拦截,进而提升了拦截效果。
本申请实施例提供的识别广告弹窗的方法可适用于电子设备。在本申请的一些实施例中,该电子设备可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(AugmentedReality,AR)/虚拟现实(Virtual Reality,VR)设备、手持计算机、笔记本电脑、超级移动个人计算机(Ultra-Mobile Personal Computer,UMPC)、上网本、个人数字助理(PersonalDigital Assistant,PDA)等包括触摸屏的设备,本申请实施例对该电子设备的具体类型和形态不作任何限制。
下面将结合附图对本申请实施例中涉及的电子设备的结构进行简单介绍。请参考图3,图3是本申请一示例性实施例示出的电子设备的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图3所示的部件更多或更少的部件,或者,电子设备100可以包括图3所示的部件中某些部件的组合,或者,电子设备100可以包括图3所示的部件中某些部件的子部件。图3所示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在本申请的实施例中,处理器110可以执行确定第一应用对应的弹窗路径的数量;当检测到数量大于预设阈值时,确定弹窗路径对应的弹窗为广告弹窗的步骤。譬如处理器110可以运行本申请实施例提供的识别广告弹窗的方法的软件代码,从而准确地判断出广告弹窗。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器(mobileindustry processor interface,MIPI)接口,通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
电源管理模块141用于连接电池142、充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,以及无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
图3所示的各模块间的连接关系只是示意性说明,并不构成对电子设备100的各模块间的连接关系的限定。可选地,电子设备100的各模块也可以采用上述实施例中多种连接方式的组合。
电子设备100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等器件实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/2G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC ,FM,和/或IR技术等。GNSS可以包括全球卫星定位***(global positioning system ,GPS),全球导航卫星***(global navigation satellite system,GLONASS),北斗卫星导航***(beidounavigation satellite system,BDS),准天顶卫星***(quasi-zenith satellitesystem,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。可以理解,本申请实施例中,定位或导航***中的硬件模块可称为定位传感器。
电子设备100可以通过GPU、显示屏194以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU还可以用于执行数学和位姿计算,用于图形渲染等。处理器110可以包括一个或多个GPU,其执行程序指令可以生成或改变显示信息。
显示屏194可以用于显示图像或视频。还可以显示一系列图形用户界面(graphical user interface,GUI),这些GUI都是该电子设备100的主屏幕。一般来说,电子设备100的显示屏194的尺寸是固定的,只能在该电子设备100的显示屏194中显示有限的控件。控件是一种 GUI元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接操作(directmanipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、微件(Widget)等可视的界面元素。
在本申请实施例中,显示屏194可以用于显示弹窗。
显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N可以为大于1的正整数。
本申请实施例中的显示屏194可以是触摸屏。该显示屏194中可以集成有触摸传感器180K。该触摸传感器180K也可以称为“触控面板”。也就是说,显示屏194可以包括显示面板和触摸面板,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触控操作。触摸传感器180K检测到的触摸操作后,可以由内核层的驱动(如TP驱动)传递给上层,以确定触控事件类型。可以通过显示屏194提供与触控操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的APP(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。
加速度传感器180E可检测电子设备100在各个方向上(一般为x轴、y轴和z轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。加速度传感器180E还可以用于识别电子设备100的姿态,作为横竖屏切换和计步器等应用程序的输入参数。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现解锁、访问应用锁、拍照和接听来电等功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。在本申请实施例中,电子设备100在线播放视频时,若屏幕左侧用于控制屏幕亮度,那么,屏幕右侧就用于控制音量。若屏幕右侧用于控制屏幕亮度,那么,屏幕左侧就用于控制音量。例如,用户通过触控物体(如用户手指或者触控笔等)轻按电子设备100的屏幕左侧并向上或向下滑动,电子设备100响应该触控操作,将屏幕亮度增强或变暗。用户通过触控物体轻按电子设备100的屏幕右侧并向上或向下滑动,电子设备100响应该触控操作,将电子设备100的声音调大或调小。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
另外,在上述部件之上,运行有各种类型的操作***。例如iOS操作***、Android开源操作***、Windows操作***等。此次仅为示例性说明,对此不做限定。在这些操作***上可以安装运行应用程序。
上述各实施例中的方法均可以在具有上述硬件结构的电子设备100中实现。
上面对本申请实施例涉及的电子设备100的结构进行了简单介绍,下面对本申请实施例涉及的软件结构进行简单介绍。请参考图4,图4是本申请一示例性实施例示出的电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,以电子设备100是Android***为例进行说明,Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。如图4所示,应用程序包可以包括相机、日历、地图、无线局域网(wireless local area networks,WLAN)、音乐、短信息、购物、聊天、浏览器、清理应用等应用程序。
在本申请的一些实施例中,应用程序可以包括应用程序(Application,APP),在本申请中,APP可以发出弹窗请求,该弹窗请求用于调起弹窗,或称为拉起弹窗。譬如APP可以通过发送Intent来拉起Activity。
Android的框架(Framework)是应用程序层之下的一层,叫做应用程序框架层。该应用程序框架层为应用程序层的应用程序提供应用编程接口(Application ProgrammingInterface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数。
作为本申请的一个示例,如图4所示,应用程序框架层可以包括活动管理器服务(Activity Manager Service ,AMS)。该AMS是Android中很重要的一个服务,它统筹管理着Android的四大组件,统一调度各应用进程。在本申请中,AMS可以包括记录模块、拦截模块以及判断模块,这些模块运行在该AMS所在的进程中。
其中,记录模块用于在应用发起弹窗请求的过程中,记录/存储弹窗请求的应用名称、活动名称以及变量值等,得到该应用对应的快照。记录模块还可用于将记录/存储的快照存储至快照集合中。
拦截模块用于在应用发起弹窗请求的过程中,判断该次弹窗请求是否需要被拦截处理,当某次弹窗请求需要被拦截处理时,拦截该次弹窗请求想要调起的弹窗。例如,若检测到弹出的Activity在黑名单列表中,表示需要被拦截,则拦截该次弹窗请求想要调起的弹窗。弹出的Activity在黑名单列表中,表明该次弹窗请求想要调起的弹窗属于广告弹窗,因此需要拦截该广告弹窗。
判断模块用于定时基于收集到的快照,判断应用是否存在多种弹窗路径的后台弹窗行为。如果应用存在多种弹窗路径的后台弹窗行为,则将快照中记录的活动名称加入到黑名单中。若再次接收到与该活动名称相关的弹窗请求时,拦截与该活动名称相关的弹窗请求所要调起的弹窗。
判断模块还可以用于判断Activity是否属于当前置顶应用;还可以用于判断发起Intent的应用是否属于当前置顶应用;还可以用于判断发起Intent的应用是否属于***应用;还可以用于判断发起Intent的应用是否属于预设的白名单应用;还可以用于判断弹窗请求所要调起的弹窗是否属于广告弹窗。
可选地,应用程序框架层还可以包括内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***可以包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示短信通知图标的视图,包括显示文字的视图,以及包括显示图片的视图。
电话管理器用于提供电子设备100的通信功能,例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,例如本地化字符串,图标,图片,布局文件,视频文件等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。例如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或滚动条文本形式出现在***顶部状态栏的通知,比如后台运行的应用程序的通知。通知管理器还可以是以对话窗口形式出现在屏幕上的通知,比如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块,比如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(比如:OpenGL ES),2D图形引擎(比如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层可以包括显示驱动,显示驱动可用于显示不同的窗口,譬如正常应用请求调起的各种窗口。
内核层还可以包括摄像头驱动,音频驱动、传感器驱动等。
上面对本申请实施例涉及的软件结构进行了简单介绍,下面本申请各实施例将以具有图3和图4所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的识别广告弹窗的方法进行具体阐述。
首先,对本申请实施例涉及到的弹窗流程进行阐述。请参阅图5,图5是本申请实施例提供的一种弹窗流程示意图。如图5所示,APP(应用程序)发送Intent,也就是说弹窗请求可以是APP发送的Intent。其中,Intent可以用于Android应用的各项组件之间的通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将intent传递给被调用的组件,并完成组件的调用。
需要说明的是,APP在发送Intent时,可以选择采用多种方式发送Intent,即采用不同的代码发送Intent,或者说发送Intent的API不同。不同的API可以决定弹窗以什么样的方式弹出。在本实施方式中,APP可以选择任意一种方式发送Intent至AMS,试图拉起一个Activity。可以通俗理解为,APP可以选择任意一种方式发送弹窗请求至AMS,试图调起一个弹窗。
Framework层的AMS接收到APP发送的该Intent后,AMS中的ActivityStarter类根据发送该Intent方式的不同,使用不同的代码分支处理该Intent。例如,AMS中的ActivityStarter类,选择与该Intent内容以及调用的发送该Intent的API均对应的代码分支,处理该Intent。
示例性地,AMS接收到APP发送的Intent后,可以先通过代码段创建Activity,具体可通过下述代码段实现:
值得说明的是,在上述这段代码中,“return mActivityStartController.obtainStarter
(intent,“startActivityAsUser”)”,用于给intent添加参数,该参数决定intent之后走哪条代码分支,即决定之后的弹窗路径是什么。
之后,AMS中的ActivityStarter类根据发送该Intent方式的不同,使用不同的代码分支处理该Intent,具体可通过下述代码段实现:
可以理解的是,在上述这段代码中,“private static final String……privatestatic final int INWALID_LAUNCH_MODE=-1”,表示不同的代码分支,对应不同的成员变量的值(本实施方式中也称为变量值)。
ActivityStarter类执行不同的代码分支,代表着ActivityStarter类中拥有不同的成员变量的值作为分支判断条件。因此,可以通过记录每次弹窗请求发生后,执行ActivityStarter类时,ActivityStarter类中的成员变量的值来标示每次弹窗请求使用的弹窗路径。
其中,弹窗路径在APP发起弹窗请求的过程中产生,用于表示APP发起弹窗请求的方式。可以通俗理解为,APP在发送Intent时调用了API,对应的Android***中依次会运行哪些代码用以实现本次弹窗功能。
如图5所示,应用前台弹窗,其可能产生不同的弹窗路径。譬如应用在前台运行时发起弹窗请求的过程中,其可能产生的弹窗路径为:应用前台弹窗路径1、应用前台弹窗路径2等。应用后台弹窗,其也可能产生不同的弹窗路径。譬如应用在后台运行时发起弹窗请求的过程中,其可能产生的弹窗路径为:应用后台弹窗路径1、应用后台弹窗路径2、应用后台弹窗路径3、应用后台弹窗路径4等。
若APP本次发送的弹窗请求允许被响应,也就是说该弹窗请求想要调起的弹窗不属于广告弹窗,则AMS正常处理Intent,并发送消息给对应的应用的主线程(ActivityThread),执行启动Activity操作,以显示Activity窗口,之后执行Activity的消息响应函数(OnCreate),以实现APP中显示该弹窗请求对应的弹窗。
值得说明的是,电子设备(如手机)的***为了用户体验,会从各种途径封堵、拦截后台弹窗的路径。而流氓(或称恶意)应用的终极目标是尽可能提高展示广告的成功率,实现广告流量变现。对于流氓(或称恶意)应用的开发者来说,他们并不能预先知道该流氓(或称恶意)应用最终会运行在哪些厂商的电子设备(如手机)中,也不知道这些厂商在电子设备(如手机)中做了什么样的拦截操作。因此,对于流氓(或称恶意)应用的开发者,他们有动机在这些应用中集成多种弹窗路径,这样即使在不同厂商的拦截方案下,都有可能弹出广告弹窗,展示广告。例如,当有某一条弹窗路径没有被厂商拦截时,流氓(或称恶意)应用就可以通过这条弹窗路径成功弹出广告弹窗。
然而,正常应用认为他们的操作是可以理应被得到用户允许,或者可以引导用户同意,没有动机去尝试采用多种方式调起弹窗。
基于流氓(或称恶意)应用与正常应用动机的差异,本申请的发明人想到了同样是弹出弹窗,流氓(或称恶意)应用与正常应用会使用到的弹窗路径的数量是有区别的。因此,本申请提供了一种识别广告弹窗的方法,基于弹窗路径的数量识别是否为流氓(或称恶意)应用后台弹窗行为,由此可以准确地判断出广告弹窗。在准确地确定出广告弹窗的基础上,有利于后续对该广告弹窗进行准确地拦截,进而提升了拦截效果。值得说明的是,流氓(或称恶意)应用使用多种弹窗路径的行为,在代码中的实现即为采用多种方式和参数发送Intent。
上面对本申请实施例涉及到的弹窗流程进行了阐述,下面对本申请实施例中的识别广告弹窗的流程进行说明。请参阅图6,图6是本申请实施例提供的一种识别广告弹窗的方法的流程示意图。该方法包括:
S201:确定第一应用对应的弹窗路径的数量。
需要说明的是,在本申请实施例中,第一应用表示同一应用,即表示同一个应用。弹窗路径用于表示该第一应用发起弹窗请求的方式,该弹窗请求用于调起弹窗。应理解,弹窗请求对应的弹窗可以是Intent对应的Activity。
示例性地,对于不同的应用,可以采用不同的方式发起弹窗请求。第一应用在发起弹窗请求时,可以采用一种方式发起弹窗请求,AMS中的ActivityStarter类,选择与该方式对应的代码分支处理该弹窗请求。记录本次处理过程中ActivityStarter类中的成员变量的值(本实施方式中也称为变量值),即得到本次弹窗请求对应的弹窗路径。用同样的方式,记录第一应用每次发起弹窗请求的过程中产生的弹窗路径,即记录第一应用每次发起弹窗请求的过程中产生的变量值。统计第一应用对应的变量值的数量,得到第一应用对应的弹窗路径的数量。
S202:当检测到数量大于预设阈值时,确定弹窗路径对应的弹窗为广告弹窗。
示例性地,预设阈值可根据实际情况进行设置,在本申请实施例中,预设阈值可以设置为1。
比较弹窗路径的数量与预设阈值之间的大小。当检测到弹窗路径的数量小于或等于预设阈值时,确定弹窗路径对应的弹窗不属于广告弹窗。证明需要正常响应该弹窗请求,即在电子设备(如手机)中正常显示第一应用的弹窗请求所对应的弹窗。
当检测到弹窗路径的数量大于预设阈值时,确定弹窗路径对应的弹窗属于广告弹窗。证明需要拦截该弹窗请求对应的弹窗,即不在电子设备(如手机)中显示第一应用的弹窗请求所对应的弹窗。
值得说明的是,当检测到弹窗路径的数量大于预设阈值时,证明弹窗路径有多条,相应地,弹窗请求也对应有多个。那么这种情况下,这些弹窗请求想要调起的弹窗均属于广告弹窗。需要分别拦截这些弹窗请求对应的弹窗,即不在电子设备(如手机)中显示这些弹窗请求所对应的弹窗。
这种实现方式中,先确定第一应用对应的弹窗路径的数量;之后当检测到数量大于预设阈值时,确定弹窗路径对应的弹窗为广告弹窗。正常应用通常会采用一种发起弹窗请求的方式调起弹窗,通常会产生一条弹窗路径,而流氓(或称恶意)应用会通常采用多种发起弹窗请求的方式调起弹窗,通常会产生多条弹窗路径。因此本申请提供的识别广告弹窗的方法,通过确定第一应用对应的弹窗路径的数量,再比较弹窗路径的数量与预设阈值之间的大小,当检测到弹窗路径的数量大于预设阈值时,就可以准确地确定该弹窗路径对应的弹窗为广告弹窗。在准确地确定出广告弹窗的基础上,有利于后续对该广告弹窗进行准确地拦截,进而提升了拦截效果,给用户带来了更好地体验。
可选地,在一种可能的实现方式中,在确定弹窗路径对应的弹窗为广告弹窗后,也可以判定该弹窗路径对应的第一应用为流氓(或称恶意)应用。这种实现方式中,有利于电子设备后续对流氓(或称恶意)应用采取有效地拦截措施。
请参见图7,图7是本申请实施例提供的一种识别广告弹窗的方法的步骤S201的具体流程图,上述S201可包括S2011~S2012,具体如下。
S2011:在快照集合中查找第一应用对应的变量值。
该变量值用于标识第一应用发起的弹窗请求对应的弹窗路径。在本申请实施例中,变量值可以为AMS的StartActivityAsUser中set函数涉及到的成员变量,譬如caller、callingPackage、resolvedType、 resultTo、resultWho、 requestCode、 startFlags、profilerInfo、bOptions、userId等值。此处仅为示例性说明,对此不做限定。
快照集合由多个快照构成。在本申请实施例中,每发生一次弹窗行为,对应生成一个快照。譬如某个应用发起一次弹窗请求,对应生成一个该应用对应的快照。每个快照中记录了该应用发起的弹窗请求的应用名称(本实施方式中也称应用名、应用包名等)、活动名称(本实施方式中也称Activity名)以及变量值。值得说明的是,弹窗请求的应用名称、活动名称以及变量值这些信息,是在应用发起弹窗请求时,该弹窗请求中所携带的。
在一个示例中,在快照集合中查找第一应用对应的变量值。例如,以第一应用的应用名称(本实施方式中也称应用名、应用包名等)为关键词,遍历快照集合,查找出与该第一应用相关联的变量值。这种实现方式中,在快照集合中深度查找与该第一应用相关联的变量值,便于后续根据查找到的变量值统计弹窗路径的数量,进而有利于后续准确地确定出第一应用的弹窗请求想要调起的弹窗是否属于广告弹窗。
在另一个示例中,为了避免快照集合过大,对于每个第一快照,当检测到第一快照的存储时长超过预设时长时,在快照集合中删除该第一快照。其中,第一快照表示快照集合中的任意一个快照。其中,预设时长可根据实际运营时的要求进行设置,在本申请实施例中,预设时长可以设置为24小时、12小时等。第一快照的存储时长从该第一快照添加至快照集合时起算。例如,某个快照在快照集合中的存储时长超过了24小时,则在快照集合中移除该快照。
在这种情况下,每间隔目标预设时长在快照集合中查找第一应用对应的变量值。目标预设时长可根据实际情况进行设置,在本申请实施例中,目标预设时长可以设置为12小时、6小时。例如,以第一应用的应用名称(本实施方式中也称应用名、应用包名等)为关键词,每隔12个小时遍历一次快照集合,查找出与该第一应用相关联的变量值。
这种实现方式中,每隔一段时间便对快照集合进行一次清理,剔除存储时间过长的快照,避免快照集合过大,而影响电子设备的处理速度。基于此,每间隔目标预设时长在快照集合中查找第一应用对应的变量值,保证了查找变量值的速度和准确性,提升了电子设备的效率。
S2012:统计第一应用对应的变量值的数量,得到第一应用对应的弹窗路径的数量。
需要说明的是,在统计第一应用对应的变量值的数量时,对于相同的变量值,数量记为1。可以理解为,对于相同的变量值,当做是一个变量值。而对于不同的变量值,数量每次递增1。将统计得到的第一应用对应的变量值的数量,作为第一应用对应的弹窗路径的数量。
这种实现方式中,由于变量值可以用来标识弹窗路径,通过统计第一应用对应的变量值的数量,有利于快速确定第一应用对应的弹窗路径的数量,进而有利于后续利用该弹窗路径的数量判断弹窗路径对应的弹窗是否属于广告弹窗。
可选地,在一种可能的实现方式中,本申请实施例提供的识别广告弹窗的方法,在图6对应的实施例的基础上还可包括S203至S204,具体如下。
S203:获取广告弹窗对应的活动名称。
示例性地,获取广告弹窗对应的活动名称,即为获取该广告弹窗对应的弹窗请求的活动名称(本实施方式中也称Activity名)。
第一应用在发起弹窗请求时,弹窗请求中携带有应用名称、活动名称以及变量值。在一种可能的实现方式中,获取广告弹窗对应的活动名称可以为,获取弹窗请求中携带的活动名称。应理解,被判定弹窗路径对应的弹窗为广告弹窗,是因为检测到弹窗路径的数量大于预设阈值,证明弹窗路径有多条,相应地,弹窗请求也对应有多个。那么这种情况下,在获取广告弹窗对应的活动名称时,应该分别获取这些广告弹窗对应的弹窗请求的活动名称。
在另一种可能的实现方式中,获取广告弹窗对应的活动名称可以为,在快照集合中查找该广告弹窗对应的弹窗请求的活动名称。例如,快照集合包括多个快照,每个快照中记录了应用发起的弹窗请求的应用名称、活动名称以及变量值,以第一应用的应用名称为关键词在快照集合中查找,可查找到与第一应用相关的弹窗请求的活动名称。
S204:将活动名称添加至黑名单。
黑名单用于再次接收到广告弹窗对应的弹窗请求时,拦截广告弹窗。
示例性地,将获取到的活动名称添加至黑名单中。本申请实施例中,在应用后台弹窗的流程中加入了基于黑名单的拦截点,将活动名称添加至黑名单中,当某个应用发起弹窗请求时,判断该弹窗请求的活动名称是否在黑名单中。若该弹窗请求的活动名称在黑名单中,则终止弹窗流程,电子设备也不会显示该弹窗请求对应的弹窗。
这种实现方式中,可以有效地对广告弹窗进行拦截,提升了拦截效果,提高了用户体验。
下面对上述实施例涉及到的快照集合的生成方法进行介绍。请参见图8,图8是本申请实施例提供的一种生成快照集合的方法的流程示意图。该方法包括:
S301:接收第二应用的弹窗请求。
第二应用表示任意一个应用,弹窗请求包括应用名称、活动名称以及变量值。
示例性地,一个或多个第二应用发起弹窗请求,也可以说,一个或多个第二应用分别发送Intent。AMS分别接收一个或多个第二应用发送的Intent。Intent内容包括应用名称、活动名称以及变量值。
S302:当检测到活动名称未在黑名单内时,存储第二应用的弹窗请求的应用名称、活动名称以及变量值,得到第二应用的快照。
示例性地,检测该弹窗请求的活动名称是否在黑名单内,也可以说,检测Intent的Activity是否在黑名单内。若检测到该弹窗请求的活动名称在黑名单内,则直接中断弹窗流程,避免弹出广告弹窗。若检测到该弹窗请求的活动名称未在黑名单内,则在AMS中的ActivityStarter类被执行时,对当前弹窗请求对应的ActivityStarter类的变量值进行记录,即存储第二应用的弹窗请求的应用名称、活动名称以及变量值,得到第二应用本次弹窗行为所对应的快照。
可选地,在一种可能的实现方式中,可以在AMS中新建一个记录模块,该记录模块用于在记录第二应用的弹窗请求的应用名称、活动名称以及变量值,生成第二应用本次弹窗行为所对应的快照。
生成快照之后,在一种可能的实现方式中,还可按照正常Intent的启动流程,返回第二应用的进程。例如,AMS正常处理Intent,并发送消息给对应的应用的主线程(ActivityThread),执行onStart操作加载页面,即调用onStart() ,使Activity对用户可见,实现第二应用中显示该弹窗请求对应的弹窗。
S303:根据多个快照生成快照集合。
示例性地,对接收到的每个第二应用的弹窗请求,都分别以S301、S302中所描述的处理方法进行处理,可以得到多个快照。将这些快照存储在一起,构成快照集合。
可选地,在一种可能的实现方式中,记录模块还用于存储快照集合。
可选地,在另一种可能的实现方式中,记录模块中预先存储有空的快照集合,每生成一个快照,记录模块便将新生成的快照加入快照集合中。此处仅为示例性说明,对此不做限定。
这种实现方式中,检测到弹窗请求的活动名称未在黑名单内时,生成本次弹窗行为对应的快照,并基于同样的方法生成快照集合,有利于后续基于该快照集合及时确定出弹窗路径的数量。
可选地,在一种可能的实现方式中,本申请实施例提供的识别广告弹窗的方法,在上述S301之后,还可包括S304和S305,具体如下。
S304:判断第二应用的弹窗请求是否符合预设规定。
可以理解的是,为了避免正常应用的弹窗请求对应的弹窗被拦截,而影响用户正常使用应用,在本申请实施例中,在接收到第二应用的弹窗请求时,先判断第二应用的弹窗请求是否符合预设规定。
其中,预设规定可以预先设置。例如,预设规定可以是Android原生所允许的弹窗行为。
S305:若判定第二应用的弹窗请求符合预设规定,则显示第二应用的弹窗请求对应的弹窗。
在一个示例中,确定第二应用的弹窗请求对应的弹窗所属的应用;判断该应用是否属于当前置顶应用;若该应用属于当前置顶应用,则判定第二应用的弹窗请求符合预设规定,此时正常响应该第二应用的弹窗请求,即在电子设备(如手机)中正常显示该第二应用的弹窗请求所对应的弹窗。若该应用不属于当前置顶应用,则判定第二应用的弹窗请求不符合预设规定。
可以理解的是,如果想要拉起的弹窗所属的应用为当前置顶应用,那么跳转至该当前置顶应用的任何界面都应当是被允许的。例如,在使用购物类应用时,从商品列表页面跳转至商品详情页面。即该购物类应用为当前置顶应用,商品详情页面也是该当前置顶应用的界面,因此该跳转应当被允许。又例如,当前正在使用购物类应用,***应用中弹出了关于该购物类应用的通知信息,用户点击该通知信息后,电子设备需要从当前显示界面跳转至商品详情页面,而商品详情页面是当前置顶应用的界面,因此该跳转也应当被允许。
因此,在弹窗请求对应的弹窗所属的应用属于当前置顶应用时,该弹窗请求属于Android原生所允许的弹窗行为,可以判定该弹窗请求符合预设规定,并显示该弹窗请求对应的弹窗。
可以理解的是,如果第二应用处于交互状态,说明第二应用正在与用户进行交互,那么该第二应用也可以自由跳转属于该第二应用的任何界面,以此保证用户能够正常使用该第二应用。因此,在发起弹窗请求的第二应用处于交互状态时,或弹窗请求对应的弹窗所属的应用处于交互状态时,该弹窗请求属于Android原生所允许的弹窗行为,可以判定该弹窗请求符合预设规定,并显示该弹窗请求对应的弹窗。
值得说明的是,当前置顶应用或处于交互状态的应用跳转至广告页面,均属于正常行为,对此不进行拦截。
这种实现方式中,可以有效避免正常应用的弹窗被拦截,从而保证了用户正常使用应用。
在另一个示例中,为了避免允许进行弹窗的应用发起的弹窗请求被拦截,本申请实施例中还可判断发起弹窗请求的应用是否属于目标应用。
示例性地,判断发起弹窗请求的应用是否属于目标应用;若发起弹窗请求的应用属于目标应用,则判定第二应用的弹窗请求符合预设规定,此时正常响应该第二应用的弹窗请求,即在电子设备(如手机)中正常显示该第二应用的弹窗请求所对应的弹窗。若发起弹窗请求的应用不属于目标应用,则判定第二应用的弹窗请求不符合预设规定。
其中,目标应用指被允许进行弹窗的应用。例如,目标应用可以包括当前置顶应用、***应用以及预设的白名单应用中的至少一种。
在本申请实施例中,第二应用发起弹窗请求,因此可以判断第二应用是否属于目标应用。若第二应用属于目标应用,则判定第二应用的弹窗请求符合预设规定,此时正常响应该第二应用的弹窗请求,即在电子设备(如手机)中正常显示该第二应用的弹窗请求所对应的弹窗。若第二应用不属于目标应用,则判定第二应用的弹窗请求不符合预设规定。
示例性地,第二应用为当前置顶应用时,即发起弹窗请求的应用为当前置顶应用时,可能会存在从当前置顶应用跳转至其他应用的行为。例如,在使用某个聊天应用时,点击聊天应用内聊天记录中的链接,通过该链接跳转至浏览器应用,这种跳转行为是通过当前置顶应用主动发起的,也属于Android原生所允许的弹窗行为,对此不应该进行拦截。
示例性地,第二应用为***应用时,即发起弹窗请求的应用为***应用时,可能会存在从***应用调起窗口的行为。例如,点击通知界面,由SystemUI启动应用窗口;又例如,点击桌面图标,由Launcher启动应用窗口等,这些跳转行为均由***应用主动发起,也属于Android原生所允许的弹窗行为,对此不应该进行拦截。
示例性地,第二应用为白名单应用时,即发起弹窗请求的应用为白名单应用时,可能会存在预设的白名单应用启动其他窗口的行为,白名单应用为***或用户授权的应用,该白名单应用的弹窗行为也为***或用户授权允许的行为,对此不应该进行拦截。
这种实现方式中,可以有效避免允许进行弹窗的应用发起的弹窗请求被拦截,从而保证能够用户正常使用应用。
下面结合图9,对本申请实施例提供的识别广告弹窗的方法再次进行描述。请参考图9,图9是本申请一示例性实施例示出的识别广告弹窗的方法示意图。该方法包括:
S401:发送Intent。
APP(应用程序)发送Intent,试图拉起一个Activity。Framework层的AMS接收到APP发送的该Intent后,开始后续的判断流程。
S402:判断Activity是否为当前置顶应用。
AMS判断Activity是否属于当前置顶应用。若判定Activity属于当前置顶应用,则执行步骤S406;若判定Activity不属于当前置顶应用,则执行步骤S403。
可以理解的是,如果Activity为当前置顶应用,那么跳转至该当前置顶应用的任何界面都应当是被允许的,这属于Android原生所允许的弹窗行为,对此不应该进行拦截。具体可以参考上述S305中的描述,此次不再赘述。
在一种可能的实现方式中,若判定Activity不属于当前置顶应用,但检测到Activity名在黑名单中,则直接中断弹窗流程,避免弹出广告弹窗。该过程可以由AMS中的拦截模块实现。
S403:判断发起Intent的应用是否为当前置顶应用。
AMS判断发起Intent的应用是否属于当前置顶应用。若判定发起Intent的应用属于当前置顶应用,则执行步骤S406;若判定发起Intent的应用不属于当前置顶应用,则执行步骤S404。
可以理解的是,如果发起Intent的应用属于当前置顶应用,可能会存在从当前置顶应用跳转至其他应用的行为,这属于Android原生所允许的弹窗行为,对此不应该进行拦截。具体可以参考上述S305中的描述,此次不再赘述。
在一种可能的实现方式中,若判定发起Intent的应用不属于当前置顶应用,但检测到Intent对应的Activity名在黑名单中,则直接中断弹窗流程,避免弹出广告弹窗。该过程可以由AMS中的拦截模块实现。
S404:判断发起Intent的应用是否为***应用。
AMS判断发起Intent的应用是否属于***应用。若判定发起Intent的应用属于***应用,则执行步骤S406;若判定发起Intent的应用不属于***应用,则执行步骤S405。
可以理解的是,如果发起Intent的应用属于***应用,可能会存在从***应用调起窗口的行为,这属于Android原生所允许的弹窗行为,对此不应该进行拦截。具体可以参考上述S305中的描述,此次不再赘述。
在一种可能的实现方式中,若判定发起Intent的应用不属于***应用,但检测到Intent对应的Activity名在黑名单中,则直接中断弹窗流程,避免弹出广告弹窗。该过程可以由AMS中的拦截模块实现。
S405:判断发起Intent的应用是否为白名单应用。
AMS判断发起Intent的应用是否属于白名单应用。若判定发起Intent的应用属于白名单应用,则执行步骤S406;若判定发起Intent的应用不属于白名单应用,则执行步骤S407。
可以理解的是,如果发起Intent的应用属于白名单应用,可能会存在预设的白名单应用启动其他窗口的行为,白名单应用为***或用户授权的应用,该白名单应用的弹窗行为也为***或用户授权允许的行为,对此不应该进行拦截。
值得说明的是,对S402、S403、S404以及S405这几个判断步骤的顺序不做限定,可根据实际情况调整这几个判断步骤的执行顺序。
S406:显示Activity窗口。
若APP本次发送的弹窗请求允许被响应,进入正常的Activity启动流程。AMS正常处理Intent,并根据Intent内容发送消息给对应的应用的主线程(ActivityThread),执行启动Activity操作,以显示Activity窗口,实现APP中显示该弹窗请求对应的弹窗。
S407:根据黑名单判断是否需要拦截当前Intent。
本申请实施例中,在应用后台弹窗的流程中加入了基于黑名单的拦截点,根据该黑名单判断是否需要拦截当前Intent。若检测到当前Intent的Activity名在黑名单中,则需要拦截当前Intent,此时可直接终止弹窗流程。若检测到当前Intent的Activity名未在黑名单中,则不需要拦截当前Intent,继续执行步骤S408。该过程可以由AMS中的拦截模块实现。
S408:根据当前Intent生成快照。
当AMS中的ActivityStarter类被执行时,对当前Intent对应的ActivityStarter类的变量值进行记录,即存储当前Intent的应用名称、活动名称以及变量值,得到本次弹窗行为所对应的快照。该过程可以由AMS中的记录模块实现。
可选地,在一种可能的实现方式中,为了避免快照集合过大,对于每个快照,当检测到快照的存储时长超过预设时长时,在快照集合中删除该快照。
S409:执行APP进程中的操作。
AMS正常处理Intent,并发送消息给对应的应用的主线程(ActivityThread),执行onStart操作加载页面,即调用onStart() ,使Activity对用户可见,实现APP中显示弹窗请求对应的弹窗。
值得说明的是,上述S401至S409中的步骤为记录快照的流程,每次进行后台弹窗流程时都会触发。
S410:每隔目标预设时长遍历快照集合。
每间隔目标预设时长遍历一次快照集合,即在快照集合中查找一次同一应用对应的变量值。例如,以应用包名(PackageName)为关键词,每间隔目标预设时长遍历一次快照集合,试图鉴别出在目标预设时长内,使用多种弹窗路径进行后台弹窗的应用。
S411:判断弹窗路径的数量是否大于预设阈值。
在遍历快照集合的过程中,对于来自同一应用(PackageName相同)的后台弹窗请求的快照,统计这些快照中记录的变量值的数量,得到弹窗路径的数量。判断弹窗路径的数量是否大于预设阈值,当检测到弹窗路径的数量小于或等于预设阈值时,执行步骤S413。当检测到弹窗路径的数量大于预设阈值时,执行步骤S412。
应理解,对于同一个应用,若存在多组不同的变量值,那么证明这个应用在过去的目标预设时长内,尝试采用多种弹窗路径进行后台弹窗,此时执行步骤S412。若不存在多组不同的变量值,譬如只有一组变量值,或者变量值都相同,那么证明这个应用在过去的目标预设时长内,未尝试采用多种弹窗路径进行后台弹窗,此时执行步骤S413。
S412:将弹窗路径对应的弹窗请求的活动名称加入黑名单。
若在步骤S411中判定弹窗路径的数量大于预设阈值,则将这些弹窗路径分别对应的弹窗请求的活动名称均加入黑名单中。例如,对于某个应用,若存在多组不同的变量值,将快照中记录的与该应用相关的所有Activity名全部加入黑名单中。
S413:判定该弹窗路径对应的应用正常,流程结束。
若在步骤S411中判定弹窗路径的数量小于或等于预设阈值,那么证明这个应用在过去的目标预设时长内,没有尝试采用多种弹窗路径进行后台弹窗,也就证明这个应用正常,流程结束。
值得说明的是,在本申请实施例中,上述步骤S410至步骤S413均可以由AMS中的判断模块实现。
还需说明的是,上述步骤S410至步骤S413为鉴别广告弹窗的流程,每间隔目标预设时长会重复执行一遍。
上文详细介绍了本申请实施例提供的识别广告弹窗的方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如记录模块、拦截模块以及判断模块等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述识别广告弹窗的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、WiFi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图3所示结构的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的识别广告弹窗的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的识别广告弹窗的方法。
本申请实施例还提供了一种芯片。请参阅图10,图10为本申请实施例提供的一种芯片的结构示意图。图10所示的芯片可以为通用处理器,也可以为专用处理器。该芯片包括处理器510。其中,处理器510用于执行上述任一实施例的识别广告弹窗的方法。
可选的,该芯片还包括收发器520,该收发器520用于接受处理器的控制,用于支持通信装置执行前述所示的技术方案。
可选的,图10所示的芯片还可以包括:存储介质530。
需要说明的是,图10所示的芯片可以使用下述电路或者器件来实现:一个或多个现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种识别广告弹窗的方法,其特征在于,包括:
确定第一应用对应的弹窗路径的数量,所述弹窗路径用于表示所述第一应用发起弹窗请求的方式,所述弹窗请求用于调起弹窗;
当检测到所述数量大于预设阈值时,确定所述弹窗路径对应的弹窗为广告弹窗。
2.如权利要求1所述的方法,其特征在于,所述确定第一应用对应的弹窗路径的数量,包括:
在快照集合中查找所述第一应用对应的变量值,所述变量值用于标识弹窗路径;
统计所述第一应用对应的变量值的数量,得到所述第一应用对应的弹窗路径的数量。
3.如权利要求2所述的方法,其特征在于,所述在快照集合中查找所述第一应用对应的变量值之前,所述方法还包括:
接收第二应用的弹窗请求,所述第二应用表示任意一个应用,所述弹窗请求包括应用名称、活动名称以及变量值;
当检测到所述活动名称未在黑名单内时,存储所述第二应用的弹窗请求的应用名称、活动名称以及变量值,得到所述第二应用的快照;
根据多个快照生成所述快照集合。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
当检测到第一快照的存储时长超过预设时长时,在所述快照集合中删除所述第一快照,所述第一快照表示所述快照集合中的任意一个快照。
5.如权利要求1至4任一项所述的方法,其特征在于,在确定所述弹窗路径对应的弹窗为广告弹窗之后,所述方法还包括:
获取所述广告弹窗对应的活动名称;
将所述活动名称添加至黑名单,所述黑名单用于再次接收到所述广告弹窗对应的弹窗请求时,拦截所述广告弹窗。
6.如权利要求3所述的方法,其特征在于,所述接收第二应用的弹窗请求之后,所述方法还包括:
当检测到所述活动名称在所述黑名单内时,拦截所述第二应用的弹窗请求对应的弹窗。
7.如权利要求3所述的方法,其特征在于,所述接收第二应用的弹窗请求之后,所述方法还包括:
判断所述第二应用的弹窗请求是否符合预设规定;
若判定所述第二应用的弹窗请求符合预设规定,则显示所述第二应用的弹窗请求对应的弹窗。
8.如权利要求7所述的方法,其特征在于,所述显示所述第二应用的弹窗请求对应的弹窗,包括:
若所述第二应用为目标应用,则判定所述第二应用的弹窗请求符合预设规定,并显示所述第二应用的弹窗请求对应的弹窗,所述目标应用包括当前置顶应用、***应用以及白名单应用中的至少一种。
9.如权利要求7所述的方法,其特征在于,所述显示所述第二应用的弹窗请求对应的弹窗,包括:
确定所述第二应用的弹窗请求对应的弹窗所属的应用;
若所述应用为当前置顶应用,则判定所述第二应用的弹窗请求符合预设规定,并显示所述第二应用的弹窗请求对应的弹窗。
10.一种通信装置,其特征在于,所述通信装置包括用于执行权利要求1至9中任一项所述的方法的单元。
11.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个程序,当所述一个或者多个程序被所述一个或多个处理器执行时,使得所述电子设备执行权利要求1至9中任一项所述的方法。
12.一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的电子设备执行如权利要求1至9中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310011634.6A CN115828227B (zh) | 2023-01-05 | 2023-01-05 | 识别广告弹窗的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310011634.6A CN115828227B (zh) | 2023-01-05 | 2023-01-05 | 识别广告弹窗的方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115828227A true CN115828227A (zh) | 2023-03-21 |
CN115828227B CN115828227B (zh) | 2023-07-07 |
Family
ID=85520163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310011634.6A Active CN115828227B (zh) | 2023-01-05 | 2023-01-05 | 识别广告弹窗的方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115828227B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070244748A1 (en) * | 2006-04-17 | 2007-10-18 | Tony Smith | Domains template management system |
CN104036030A (zh) * | 2014-06-27 | 2014-09-10 | 上海二三四五网络科技股份有限公司 | 基于浏览器的弹窗广告拦截方法、***及相关浏览器 |
US20160063244A1 (en) * | 2013-04-08 | 2016-03-03 | Beijing Qihoo Technology Company Limited | Method and system for recognizing advertisement plug-ins |
CN107256147A (zh) * | 2017-05-22 | 2017-10-17 | 努比亚技术有限公司 | 应用窗口的弹窗控制方法、终端及计算机可读存储介质 |
CN111080354A (zh) * | 2019-12-10 | 2020-04-28 | 杭州古点网络科技有限公司 | 一种动态选择广告商的智能移动广告*** |
CN111753192A (zh) * | 2020-06-04 | 2020-10-09 | 珠海豹趣科技有限公司 | 广告弹窗拦截方法、装置、电子设备及存储介质 |
CN111753191A (zh) * | 2020-06-04 | 2020-10-09 | 珠海豹趣科技有限公司 | 广告弹窗拦截方法、装置、电子设备及存储介质 |
CN114579966A (zh) * | 2022-03-10 | 2022-06-03 | 李海军 | 基于互联网的数据采集方法和可读存储介质*** |
CN115495737A (zh) * | 2021-06-18 | 2022-12-20 | 北京安云世纪科技有限公司 | 恶意程序失效方法、装置、设备及存储介质 |
-
2023
- 2023-01-05 CN CN202310011634.6A patent/CN115828227B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070244748A1 (en) * | 2006-04-17 | 2007-10-18 | Tony Smith | Domains template management system |
US20160063244A1 (en) * | 2013-04-08 | 2016-03-03 | Beijing Qihoo Technology Company Limited | Method and system for recognizing advertisement plug-ins |
CN104036030A (zh) * | 2014-06-27 | 2014-09-10 | 上海二三四五网络科技股份有限公司 | 基于浏览器的弹窗广告拦截方法、***及相关浏览器 |
CN107256147A (zh) * | 2017-05-22 | 2017-10-17 | 努比亚技术有限公司 | 应用窗口的弹窗控制方法、终端及计算机可读存储介质 |
CN111080354A (zh) * | 2019-12-10 | 2020-04-28 | 杭州古点网络科技有限公司 | 一种动态选择广告商的智能移动广告*** |
CN111753192A (zh) * | 2020-06-04 | 2020-10-09 | 珠海豹趣科技有限公司 | 广告弹窗拦截方法、装置、电子设备及存储介质 |
CN111753191A (zh) * | 2020-06-04 | 2020-10-09 | 珠海豹趣科技有限公司 | 广告弹窗拦截方法、装置、电子设备及存储介质 |
CN115495737A (zh) * | 2021-06-18 | 2022-12-20 | 北京安云世纪科技有限公司 | 恶意程序失效方法、装置、设备及存储介质 |
CN114579966A (zh) * | 2022-03-10 | 2022-06-03 | 李海军 | 基于互联网的数据采集方法和可读存储介质*** |
Also Published As
Publication number | Publication date |
---|---|
CN115828227B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102470275B1 (ko) | 음성 제어 방법 및 전자 장치 | |
CN111543042B (zh) | 通知消息的处理方法及电子设备 | |
US11861382B2 (en) | Application starting method and apparatus, and electronic device | |
EP3876506B1 (en) | Method for presenting video on electronic device when incoming call comes, and electronic device | |
CN110825301A (zh) | 一种界面切换方法及电子设备 | |
CN110839096A (zh) | 一种具有折叠屏的设备的触控方法与折叠屏设备 | |
US20220358089A1 (en) | Learning-Based Keyword Search Method and Electronic Device | |
CN113805797B (zh) | 网络资源的处理方法、电子设备及计算机可读存储介质 | |
CN112352239A (zh) | 一种应用权限的管理方法及电子设备 | |
CN110569080B (zh) | 一种应用的控制方法与电子设备 | |
CN113645341A (zh) | 电源键误触检测方法及电子设备 | |
EP4407421A1 (en) | Device collaboration method and related apparatus | |
EP4345669A1 (en) | User privacy protection method and apparatus | |
CN112835495B (zh) | 开启应用程序的方法、装置及终端设备 | |
CN116049820A (zh) | 流氓应用检测方法、电子设备及通信*** | |
CN116028148A (zh) | 一种界面处理方法、装置及电子设备 | |
CN115828227B (zh) | 识别广告弹窗的方法、电子设备及存储介质 | |
CN112286596A (zh) | 消息显示方法及电子设备 | |
CN116700813B (zh) | 微件的加载方法、电子设备及可读存储介质 | |
CN117009023B (zh) | 显示通知信息的方法及相关装置 | |
CN115952564B (zh) | 数据写入方法和终端设备 | |
CN116662150B (zh) | 应用启动耗时检测方法及相关装置 | |
CN114006969B (zh) | 一种窗口启动方法和电子设备 | |
CN117076089B (zh) | 应用管理方法、终端设备及存储介质 | |
WO2023036001A1 (zh) | 一种呼叫方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |