阻止推送平台应用启动的方法及装置的制造方法
【专利摘要】本发明实施例公开了一种阻止推送平台应用启动的方法,包括:通过操作系统的包管理服务采集已安装应用的APK文件的包信息,根据包信息确定相应的APK文件包含的第一组件信息;在第一组件信息中查找与预设的第三方推送平台SDK组件名单匹配的目标组件信息,将查找到的目标组件信息对应的应用标记为实现第三方推送平台SDK的应用;通过操作系统的启动管理服务检测应用启动请求,获取应用启动请求对应的目标应用;在目标应用为实现第三方推送平台SDK的应用时,拒绝响应应用启动请求。另外,本发明实施例还公开了一种阻止推送平台应用启动的装置。采用本发明,可有效识别三方推送平台的应用并阻止其后台启动,提高终端的安全性。
【专利说明】
阻止推送平台应用启动的方法及装置
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种阻止推送平台应用启动的方法及装置。
【背景技术】
[0002]随着互联网技术的兴起,越来越多的互联网企业、电商平台将应用程序作为盈利的主战场之一,目前各种系统平台上的应用越来越多,用户在终端上安装的应用程序也越来越多。目前,智能系统己经是用户群最大的智能终端操作系统平台,智能终端是目前许多用户最常用最重要的电子设备,用户经常会安装各种第三方应用,但是这些第三方应用经常会在后台偷偷启动,在后台偷偷地进行各种对用户有影响的行为,并且消耗用户的流量与终端的电量,这些三方应用有一种比较隐蔽特殊的方式来进行后台自启动,就是通过实现各种三方推送平台SDK的方式来实现,现有的智能系统对这种情况没有限制,也没有有效的识别方法,很多三方应用都会通过实现各种三方推送平台SDK来实现相互启动,关联启动,后台自启动,这样在用户不知情的情况下,会被一些流氓应用所利用,造成耗电耗流量,还有各种损失,不利于用户的操作体验与安全。
[0003]三方推送平台SDK是指市场上一些公司提供给其它三方APK应用,用于推送消息,统计数据,推送配置信息等功能的JAR包或公共服务包,这种三方三方推送平台SDK—般都有公布给其它三方APK应用的标准接口与实现接入标准。其它三方APK应用通过实现三方推送平台SDK的接入标准,并实现SDK的标准接口,就可以使用这些三方推送平台SDK来进行推送消息,统计数据,推送配置信息等功能。实现了三方推送平台SDK的应用是指在自己的APK应用中使用了这些三方推送平台SDK公共服务包的应用。
[0004]
【申请人】经研究发现,上述实现了三方推送平台SDK的应用对android系统来说,会有下面一些不良作用:
[0005]1、实现了三方推送平台SDK的应用可能会通过推送平台SDK实现的服务,去启动其它不相关的三方应用,实现它的非法目的,会耗电耗流量,并且不安全;
[0006]2、实现了三方推送平台SDK的应用可能会通过推送平台SDK实现的服务,在实现同一个三方推送平台的各种应用间可能会相互启动,后台自启动,关联启动,达到它们常驻,不被系统回收的目的,会耗电耗流量,并且不安全;
[0007]3、实现了三方推送平台SDK的应用可能会通过推送平台SDK实现的服务,推送大量信息,弹出界面,状态栏通知,锁屏通知等,骚扰用户,会耗电耗流量,并且不安全;
[0008]4、其它非法目的,导致系统不安全。
[0009]综上所述,现有技术中三方应用通过实现各种三方推送平台SDK来实现相互启动、关联启动、后台自启动等非法启动的方案存在安全性不足的问题。
【发明内容】
[0010]基于此,为解决传统技术中三方应用通过实现各种三方推送平台SDK来实现相互启动、关联启动、后台自启动等非法启动的方案存在安全性不足的技术问题,特提出了一种阻止推送平台应用启动的方法。
[0011]—种阻止推送平台应用启动的方法,包括:
[0012]通过操作系统的包管理服务采集已安装应用的APK文件的包信息,根据所述已安装应用的APK文件的包信息确定相应的APK文件包含的第一组件信息;
[0013]在所述第一组件信息中查找与预设的第三方推送平台SDK组件名单匹配的第一组件信息作为目标组件信息,将所述查找到的目标组件信息对应的应用标记为实现第三方推送平台SDK的应用;
[0014]通过操作系统的启动管理服务检测应用启动请求,获取所述应用启动请求对应的目标应用;
[0015]在所述目标应用为所述实现第三方推送平台SDK的应用时,拒绝响应所述应用启动请求。
[0016]可选的,在其中一个实施例中,所述通过操作系统的包管理服务采集已安装应用的APK文件的包信息的步骤具体为:
[0017]通过PackageManagerServi ce 类的 get Instal IedPackage s 函数得到所述已安装应用的APK文件的包信息。
[0018]可选的,在其中一个实施例中,所述拒绝响应所述应用启动请求的步骤之后还包括:
[0019]获取所述应用启动请求对应的调用者应用;
[0020]获取所述调用者应用创建的与所述应用启动请求对应的中间对象,回收所述中间对象。
[0021]可选的,在其中一个实施例中,所述拒绝响应所述应用启动请求的步骤之后还包括:
[0022]通过展示弹出窗或在通知栏提示用户已将所述应用启动请求屏蔽;
[0023 ]接收输入的强制启动指令,重新响应所述已拒绝的应用启动请求。
[0024]可选的,在其中一个实施例中,所述预设的第三方推送平台SDK组件名单存储于本地或云服务器上。
[0025]可选的,在其中一个实施例中,所述方法还包括:
[0026]在安装应用时,通过操作系统的包管理服务采集需要安装应用的APK文件的包信息,根据需要安装应用的APK文件的包信息确定所述需要安装应用的APK文件包含的第二组件信息;
[0027]在所述第二组件信息中查找与所述预设的第三方推送平台SDK组件名单匹配的组件信息,若查找到,则拒绝安装。
[0028]此外,为解决传统技术中三方应用通过实现各种三方推送平台SDK来实现相互启动、关联启动、后台自启动等非法启动的方案存在安全性不足的技术问题,还提出了一种阻止推送平台应用启动的装置。
[0029]7、一种阻止推送平台应用启动的装置,其特征在于,包括:
[0030]组件信息获取模块,用于通过操作系统的包管理服务采集已安装应用的APK文件的包信息,根据所述已安装应用的APK文件的包信息确定相应的APK文件包含的第一组件信息;
[0031]应用标识模块,用于在所述第一组件信息中查找与预设的第三方推送平台SDK组件名单匹配的第一组件信息作为目标组件信息,将所述查找到的目标组件信息对应的应用标记为实现第三方推送平台SDK的应用;
[0032]应用启动请求检测模块,用于通过操作系统的启动管理服务检测应用启动请求,获取所述应用启动请求对应的目标应用;
[0033]拒绝响应模块,用于在所述目标应用为所述实现第三方推送平台SDK的应用时,拒绝响应所述应用启动请求。
[0034]可选的,在其中一个实施例中,所述组件信息获取模块还用于通过PackageManager Servi ce类的get Instal IedPackage s函数得到所述已安装应用的APK文件的包信息。
[0035]可选的,在其中一个实施例中,所述装置还包括中间对象回收模块,用于获取所述应用启动请求对应的调用者应用;获取所述调用者应用创建的与所述应用启动请求对应的中间对象,回收所述中间对象。
[0036]可选的,在其中一个实施例中,所述装置还包括消息通知模块和强制启动模块,其中:
[0037]所述消息通知模块用于通过展示弹出窗或在通知栏提示用户已将所述应用启动请求屏蔽;
[0038]所述强制启动模块用于接收输入的强制启动指令,重新响应所述已拒绝的应用启动请求。
[0039]可选的,在其中一个实施例中,所述预设的第三方推送平台SDK组件名单存储于本地或云服务器上。
[0040]可选的,在其中一个实施例中,所述装置还包括安装检测模块,用于在安装应用时,通过操作系统的包管理服务采集需要安装应用的APK文件的包信息,根据需要安装应用的APK文件的包信息确定所述需要安装应用的APK文件包含的第二组件信息;在所述第二组件信息中查找与所述预设的第三方推送平台SDK组件名单匹配的组件信息,若查找到,则拒绝安装。
[0041]实施本发明实施例,将具有如下有益效果:
[0042]采用了上述阻止推送平台应用启动的方法和装置之后,针对终端中已经安装的应用程序,根据预设的第三方推送平台SDK组件名单,对其对应的安装文件APK文件中包含的组件信息进行分析,判断在组件信息中是否包含了属于上述预设的第三方推送平台SDK组件名单的组件信息,若是,则将该应用标识为实现第三方推送平台SDK的应用,并在已经被标识为实现第三方推送平台SDK的应用被启动时,拒绝响应响应的应用启动请求。也就是说,对终端中已经安装的应用程序,找出其中存在安全隐患的应用并阻止这些应用的后台启动,减少了后台应用在用户不知觉的情况下的非法启动,给用户提供了一个安全的使用环境,提高了终端和用户资料的安全性,并且,提高了系统资源的有效利用率,增加了终端的续航时间和移动数据流量的有效利用率,提升了用户体验。
【附图说明】
[0043]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]其中:
[0045]图1为一个实施例中一种阻止推送平台应用启动的方法的流程示意图;
[0046]图2为一个实施例中一种阻止推送平台应用启动的.装置的结构示意图;
[0047]图3为一个实施例中运行前述阻止推送平台应用启动的方法的计算机设备的结构示意图。
【具体实施方式】
[0048]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]为解决传统技术中三方应用通过实现各种三方推送平台SDK来实现相互启动、关联启动、后台自启动等非法启动的方案存在安全性不足的技术问题,在本实施例中,特提出了一种阻止推送平台应用启动的方法,该方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机程序可以是安卓平台等系统下的阻止推送平台应用启动的程序。该计算机系统可以是运行上述计算机程序的例如智能手机、平板电脑、个人电脑等终端设备。
[0050]具体的,如图1所示,上述阻止推送平台应用启动的方法包括如下步骤S102-步骤S110:
[0051]步骤S102:通过操作系统的包管理服务采集已安装应用的APK文件的包信息,根据所述已安装应用的APK文件的包信息确定相应的APK文件包含的第一组件信息。
[0052]包管理服务(PackageManagerService)是Android的系统服务之一,主要功能实现应用包的解析、安装、更新、移动、卸载等服务。包管理服务主要通过Instal Ie、UserManager、AppDirObserver、Settings、DefauItContainerService、PackageHeIper、NativeLibraryHelper、PackageHandler、PackageParser等类实现相应的功能 D例如,Ins taller类与本地服务ins tal Id建立Local Socket连接,借助ins tall d实现包的ins tall、remove、dexopt 等功會 g 0
[0053]APK是AndroidPackage的缩写,即Android安装包,基于Android系统的应用程序在安装的过程中,将APK文件直接传到Android模拟器或Android手机中执行即可安装相应的应用程序。因此,对于终端已经安装的所有应用,在终端中一定存在对应的APK文件。
[0054]针对终端的已安装应用的APK文件,通过操作系统的包管理服务,获取APK文件中的包信息,在APK文件的包信息中包含了该已安装应用在运行的过程中需要调用的组件信息,在组件信息中包含了对应的组件名称、响应intent、所在包名等信息。例如,广播组件broadcast、服务组件service、数据存取组件con tentprovider和界面组件activity等组件,终端在启动某一个应用程序并接入到相应的应用程序的操作界面时,需要调用服务组件service、界面组件activity等界面组件。通过对已安装应用的APK文件的包信息,确定在该应用的APK文件中包含的第一组件信息,也即该已安装应用对应的组件信息。
[0055]具体的,在一个实施例中,上述通过操作系统的包管理服务采集已安装应用的APK文件的包信息的步骤具体为:通过PackageManager Serv ice类的get Ins tal IedPackage s函数得到所述已安装应用的APK文件的包信息。
[0056]通过PackageManagerService类下的PackageManager可以获取手机端已安装的apk文件的信息,也就是说,可以得到中断中安装的所有应用程序,既包括了手动安装的apk包的信息,也包括了系统预装的应用软件的信息,具体代码如下:
[0057]PackageManager packageManager = this.getPackageManager();
[0058]List<PackageInfo>packageInfoList = packageManager.getInstalIedPackages
(0);
[0059]步骤S104:在所述第一组件信息中查找与预设的第三方推送平台SDK组件名单匹配的第一组件信息作为目标组件信息,将所述查找到的目标组件信息对应的应用标记为实现第三方推送平台SDK的应用。
[0060]第三方推送平台SDK组件名单是本地存储在终端上或者存在在云服务器上的名单文件,并且该名单可以根据向外界公布了自身的公共标准与接口的三方推送平台来确定的,并且还可以通过各个用户的反馈来对已经存在的第三方推送平台SDK组件名单进行更新。
[0061]具体的,服务器通过数据分析以及人工维护等方式生成的第三方推送平台SDK组件名单,在的第三方推送平台SDK组件名单中包含了与第三方推送平台相关的SDK组件。终端可以在本地存储了第三方推送平台SDK组件名单,并可以通过向服务器请求更新对第三方推送平台SDK组件名单进行更新。或者,在终端本地并没有存储上述第三方推送平台SDK组件名单的情况下,终端在需要使用该名单时,向服务器发起访问该名单的请求。
[0062]在本实施例中,将终端的所有已安装应用对应的第一组件信息与预设的第三方推送平台SDK组件名单进行比对,若在终端的所有已安装应用对应的第一组件信息中查找到了包含在预设的第三方推送平台SDK组件名单中的组件信息,获取该组件信息为目标组件信息,并获取与目标组件信息对应的应用程序并将该应用标记为实现第三方推送平台SDK的应用。
[0063]需要说明的是,在本实施例中,会针对终端中所有的已安装应用的APK文件进行分析,判断其是否应该标识为实现第三方推送平台SDK的应用,也就是说,通过步骤S102-步骤S104,将终端中所有的已安装文件分为实现第三方推送平台SDK的应用和其他应用。
[0064]步骤S106:通过操作系统的启动管理服务检测应用启动请求,获取所述应用启动请求对应的目标应用。
[0065]启动管理服务(ActivityManagerService,简称AmS),为Android上层系统最核心的模块之一,其主要完成管理应用进程的生命周期以及进程的启动Activity,服务Service,广播 Broadcast 和存储 Provider 等。
[0066]在终端的操作系统中,启动管理服务提供的主要功能之一就是统一调度各应用程序的Activity。具体的,启动一个Activity的方式有以下几种:第一,在应用程序中调用startActi vity启动指定的Activity;第二,在Home程序中单击一个应用图标,启动新的Activity ;第三,按“Back”键,结束当前Activity,返回到上一个Activity;第四,长按“Home”键,显示出当前正在运行的程序列表,从中选择一个启动。对于上述4中启动方式来讲,其对应的主体处理流程都是按照第一中启动方式运行的,只是后面三种方式在前端消息处理上存在差异。
[0067]在本实施例中,用户主动的去打开一个应用程序,或者终端中的某个应用程序去打开另外一个应用程序,都会触发对应的应用启动请求,从而启动管理服务(Activi tyManagerService)会检测到该应用启动请求,并针对该应用启动请求做相应的进一步的处理。
[0068]应用启动请求至少包含了需要启动的目标应用的应用信息,通过获取应用启动请求中携带的目标应用的应用信息即可获知当前需要启动的目标应用。
[0069]步骤S108:在所述目标应用为所述实现第三方推送平台SDK的应用时,拒绝响应所述应用启动请求。
[0070]在操作系统的启动管理服务检测到应用启动请求时,对应用启动请求对应的目标应用进行判断,即判断该目标应用是否为已经为标识为实现第三方推送平台SDK的应用,若是,则说明该目标应用的启动可能是非法的,启动该目标应用可能存在危险,对于该目标应用的应用启动请求应当予以拒绝;若否,则说明根据预设的第三方推送平台黑名单以及已经被标识为实现第三方推送平台SDK的应用的应用列表不能将对应的目标应用的应用启动请求判定为非法的或者非用户主动的,应当予以响应并启动对应的目标应用。
[0071]在本实施例中,操作系统在启动某一个应用程序的过程中,可能需要调用或者启动或者生成某些进程或者组件才能触发该应用程序的启动指令,而在该应用程序的应用启动请求被拒绝响应之后,这些进程或者组件或者其他中间对象就被闲置了,也就是说,存在不需要的中间对象占用了终端的内存或存储空间。在此种情况下,需要对上述中间对象进行处理。
[0072]具体的,在拒绝响应所述应用启动请求的步骤之后还包括:获取所述应用启动请求对应的调用者应用;获取所述调用者应用创建的与所述应用启动请求对应的中间对象,回收所述中间对象。
[0073]在实施例中,根据需要启动的目标应用的应用信息可以获取到对应的调用者信息,也就是向启动管理服务请求启动目标应用的请求者信息,包括包名、进程信息、组件信息等相关信息。需要说明的是,在本实施例中,可以通过Acti vi tyManagerService.Java类来获取调用者信息,具体的,获取对应的cal Ier参数,根据获取到的cal Ier参数的具体值,获取对应的应用程序的包名、进程信息、组件信息等相关信息。
[0074]在应用启动请求被拒绝响应之后,根据该应用启动请求,获取与该应用启动请求对应的中间对象,即获取调用者信息对应的应用创建的与应用启动请求对应的中间对应并进行回收。例如,第三方推送平台在非法启动应用程序A时,为支持A应用的运行,需要创建与A应用对应的进程或者组件,在A应用的应用启动请求被拒绝之后,回收已创建的与A应用对应的进程或者组件。
[0075]在某些情况下,被拒绝响应的应用启动请求也可能是用户需要启动的,在此种情况下,应当提供一种再次启动对应的应用程序的机制。具体的,在上述拒绝响应所述应用启动请求的步骤之后还包括:通过展示弹出窗或在通知栏提示用户已将所述应用启动请求屏蔽;接收输入的强制启动指令,重新响应所述已拒绝的应用启动请求。
[0076]在拒绝响应应用启动请求之后,生成已拒绝响应应用启动请求的提示消息,并在终端的显示界面上,通过展示弹出窗展示上述提示消息,以提示用户已将应用启动请求屏蔽;或者,在通知栏中显示相应的提示消息,以提示用户已将应用启动请求屏蔽。
[0077]用户在接收到上述已拒绝响应应用启动请求的提示消息之后,如果依旧需要启动该应用程序,则可以通过设置在终端上的强制启动控件,并通过该强制启动空间输入针对已拒绝的响应应用请求对应的应用程序的强制启动指令,终端在接收到用户输入的强制启动指令之后,重新响应该应用启动请求,即启动操作系统的启动关系服务检测到的应用启动请求对应的目标应用程序。
[0078]可选的,在其他实施例中,根据终端将已安装的应用标识为实现第三方推送平台SDK的应用的过程,还可以在终端安装应用程序的过程中,就针对该应用进行标识,并将相应的结果告知用户,以使用户可以根据自身的需求判断是否需要继续安装该应用,从而使得用户了解终端中安装的应用的安全性。
[0079]具体的,上述方法还包括如下步骤:在安装应用时,通过操作系统的包管理服务采集需要安装应用的APK文件的包信息,根据需要安装应用的APK文件的包信息确定所述需要安装应用的APK文件包含的第二组件信息;在所述第二组件信息中查找与所述预设的第三方推送平台SDK组件名单匹配的组件信息,若查找到,则拒绝安装。
[0080]在Android模拟器或者Android手机中执行APK文件安装相应的应用程序时,针对即将安装的应用的APK文件,通过操作系统的包管理服务采集该APK文件的包信息,从而确定需要安装的应用的组件信息,即第二组件信息。
[0081]如步骤S104中将应用标记为实现第三方推送平台SDK的应用的过程,针对准备安装的应用的组件信息,若该组件信息中包含了在预设的第三方推送平台SDK组件名单中的组件,则说明准备安装的应用是实现第三方推送平台SDK的应用,若继续安装则存在危险,因此,在所述第二组件信息中查找与所述预设的第三方推送平台SDK组件名单匹配的组件信息,若查找到,则拒绝安装,反之,则继续安装流程。
[0082]在某些情况下,被拒绝安装的应用也可能是用户需要安装的,在此种情况下,应当提供一种继续安装应用程序的机制。具体的,在上述拒绝安装的步骤之后还包括:通过展示弹出窗或在通知栏提示用户已将所述应用程序的安装终止;接收输入的强制安装指令,重新安装所述已拒绝安装的应用。
[0083]此外,为解决传统技术中三方应用通过实现各种三方推送平台SDK来实现相互启动、关联启动、后台自启动等非法启动的方案存在安全性不足的技术问题,在一个实施例中,如图2所示,还提出了一种阻止推送平台应用启动的装置,包括组件信息获取模块102、应用标识模块104、应用启动请求检测模块106以及拒绝响应模块108,其中:
[0084]组件信息获取模块102,用于通过操作系统的包管理服务采集已安装应用的APK文件的包信息,根据所述已安装应用的APK文件的包信息确定相应的APK文件包含的第一组件信息;
[0085]应用标识模块104,用于在所述第一组件信息中查找与预设的第三方推送平台SDK组件名单匹配的第一组件信息作为目标组件信息,将所述查找到的目标组件信息对应的应用标记为实现第三方推送平台SDK的应用;
[0086]应用启动请求检测模块106,用于通过操作系统的启动管理服务检测应用启动请求,获取所述应用启动请求对应的目标应用;
[0087]拒绝响应模块108,用于在所述目标应用为所述实现第三方推送平台SDK的应用时,拒绝响应所述应用启动请求。
[0088]可选的,在其中一个实施例中,组件信息获取模块IO 2还用于:通过PackageManager Servi ce类的get Ins tal IedPackage s函数得到所述已安装应用的APK文件的包信息。
[0089]可选的,在其中一个实施例中,如图2所示,上述装置还包括中间对象回收模块110,用于获取所述应用启动请求对应的调用者应用;获取所述调用者应用创建的与所述应用启动请求对应的中间对象,回收所述中间对象。
[0090]可选的,在其中一个实施例中,如图2所示,上述装置还包括消息通知模块112和强制启动模块114,其中:所述消息通知模块112用于通过展示弹出窗或在通知栏提示用户已将所述应用启动请求屏蔽;所述强制启动模块114用于接收输入的强制启动指令,重新响应所述已拒绝的应用启动请求。
[0091]可选的,在其中一个实施例中,所述预设的第三方推送平台SDK组件名单存储于本地或云服务器上。
[0092]可选的,在其中一个实施例中,如图2所示,上述装置还包括安装检测模块116,用于在安装应用时,通过操作系统的包管理服务采集需要安装应用的APK文件的包信息,根据需要安装应用的APK文件的包信息确定所述需要安装应用的APK文件包含的第二组件信息;在所述第二组件信息中查找与所述预设的第三方推送平台SDK组件名单匹配的组件信息,若查找到,则拒绝安装。
[0093]实施本发明实施例,将具有如下有益效果:
[0094]采用了上述阻止推送平台应用启动的方法和装置之后,针对终端中已经安装的应用程序,根据预设的第三方推送平台SDK组件名单,对其对应的安装文件APK文件中包含的组件信息进行分析,判断在组件信息中是否包含了属于上述预设的第三方推送平台SDK组件名单的组件信息,若是,则将该应用标识为实现第三方推送平台SDK的应用,并在已经被标识为实现第三方推送平台SDK的应用被启动时,拒绝响应响应的应用启动请求。也就是说,对终端中已经安装的应用程序,找出其中存在安全隐患的应用并阻止这些应用的后台启动,减少了后台应用在用户不知觉的情况下的非法启动,给用户提供了一个安全的使用环境,提高了终端和用户资料的安全性,并且,提高了系统资源的有效利用率,增加了终端的续航时间和移动数据流量的有效利用率,提升了用户体验。
[0095]在一个实施例中,如图3所示,图3展示了一种运行上述阻止推送平台应用启动的方法的基于冯诺依曼体系的计算机系统的终端。该计算机系统可以是智能手机、平板电脑、掌上电脑、笔记本电脑或个人电脑等终端设备。具体的,可包括通过系统总线连接的外部输入接口 1001、处理器1002、存储器1003和输出接口 1004。其中,外部输入接口 1001可选的可至少包括网络接口 10012。存储器1003可包括外存储器10032(例如硬盘、光盘或软盘等)和内存储器10034。输出接口 1004可至少包括显示屏10042等设备。
[0096]在本实施例中,本方法的运行基于计算机程序,该计算机程序的程序文件存储于前述基于冯诺依曼体系的计算机系统的外存储器10032中,在运行时被加载到内存储器10034中,然后被编译为机器码之后传递至处理器1002中执行,从而使得基于冯诺依曼体系的计算机系统中形成逻辑上的组件信息获取模块102、应用标识模块104、应用启动请求检测模块106、拒绝响应模块108、中间对象回收模块110、消息通知模块112、强制启动模块114以及安装检测模块116。且在上述阻止推送平台应用启动的方法执行过程中,输入的参数均通过外部输入接口 1001接收,并传递至存储器1003中缓存,然后输入到处理器1002中进行处理,处理的结果数据或缓存于存储器1003中进行后续地处理,或被传递至输出接口 1004进行输出。
[0097]本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0098]本发明实施例终端中的单元可以根据实际需要进行合并、划分和删减。
[0099]应当理解,在本发明实施例中,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Applicat1n Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0100]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,R0M)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PR0M)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(0ne_time Programmable Read-Only Memory,0TPR0M)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPR0M)、只读光盘(CompactDisc Read-Only Memory,CD_R0M)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0101]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1.一种阻止推送平台应用启动的方法,其特征在于,包括: 通过操作系统的包管理服务采集已安装应用的APK文件的包信息,根据所述已安装应用的APK文件的包信息确定相应的APK文件包含的第一组件信息; 在所述第一组件信息中查找与预设的第三方推送平台SDK组件名单匹配的第一组件信息作为目标组件信息,将所述查找到的目标组件信息对应的应用标记为实现第三方推送平台SDK的应用; 通过操作系统的启动管理服务检测应用启动请求,获取所述应用启动请求对应的目标应用; 在所述目标应用为所述实现第三方推送平台SDK的应用时,拒绝响应所述应用启动请求。2.根据权利要求1所述的阻止推送平台应用启动的方法,其特征在于,所述通过操作系统的包管理服务采集已安装应用的APK文件的包信息的步骤具体为: 通过PackageManager Servi ce类的get Instal IedPackages函数得到所述已安装应用的APK文件的包信息。3.根据权利要求1所述的阻止推送平台应用启动的方法,其特征在于,所述拒绝响应所述应用启动请求的步骤之后还包括: 获取所述应用启动请求对应的调用者应用; 获取所述调用者应用创建的与所述应用启动请求对应的中间对象,回收所述中间对象。4.根据权利要求1所述的阻止推送平台应用启动的方法,其特征在于,所述拒绝响应所述应用启动请求的步骤之后还包括: 通过展示弹出窗或在通知栏提示用户已将所述应用启动请求屏蔽; 接收输入的强制启动指令,重新响应所述已拒绝的应用启动请求。5.根据权利要求1所述的阻止推送平台应用启动的方法,其特征在于,所述预设的第三方推送平台SDK组件名单存储于本地或云服务器上。6.根据权利要求1所述的阻止推送平台应用启动的方法,其特征在于,所述方法还包括: 在安装应用时,通过操作系统的包管理服务采集需要安装应用的APK文件的包信息,根据需要安装应用的APK文件的包信息确定所述需要安装应用的APK文件包含的第二组件信息; 在所述第二组件信息中查找与所述预设的第三方推送平台SDK组件名单匹配的组件信息,若查找到,则拒绝安装。7.—种阻止推送平台应用启动的装置,其特征在于,包括:组件信息获取模块,用于通过操作系统的包管理服务采集已安装应用的APK文件的包信息,根据所述已安装应用的APK文件的包信息确定相应的APK文件包含的第一组件信息;应用标识模块,用于在所述第一组件信息中查找与预设的第三方推送平台SDK组件名单匹配的第一组件信息作为目标组件信息,将所述查找到的目标组件信息对应的应用标记为实现第三方推送平台SDK的应用; 应用启动请求检测模块,用于通过操作系统的启动管理服务检测应用启动请求,获取所述应用启动请求对应的目标应用; 拒绝响应模块,用于在所述目标应用为所述实现第三方推送平台SDK的应用时,拒绝响应所述应用启动请求。8.根据权利要求7所述的阻止推送平台应用启动的装置,其特征在于,所述组件信息获取模块还用于通过PackageManager Servi ce类的get Instal IedPackages函数得到所述已安装应用的APK文件的包信息。9.根据权利要求7所述的阻止推送平台应用启动的装置,其特征在于,所述装置还包括中间对象回收模块,用于获取所述应用启动请求对应的调用者应用;获取所述调用者应用创建的与所述应用启动请求对应的中间对象,回收所述中间对象。10.根据权利要求7所述的阻止推送平台应用启动的装置,其特征在于,所述装置还包括消息通知模块和强制启动模块,其中: 所述消息通知模块用于通过展示弹出窗或在通知栏提示用户已将所述应用启动请求屏蔽; 所述强制启动模块用于接收输入的强制启动指令,重新响应所述已拒绝的应用启动请求。11.根据权利要求7所述的阻止推送平台应用启动的装置,其特征在于,所述预设的第三方推送平台SDK组件名单存储于本地或云服务器上。12.根据权利要求7所述的阻止推送平台应用启动的装置,其特征在于,所述装置还包括安装检测模块,用于在安装应用时,通过操作系统的包管理服务采集需要安装应用的APK文件的包信息,根据需要安装应用的APK文件的包信息确定所述需要安装应用的APK文件包含的第二组件信息;在所述第二组件信息中查找与所述预设的第三方推送平台SDK组件名单匹配的组件信息,若查找到,则拒绝安装。
【文档编号】G06F21/51GK106022104SQ201610334247
【公开日】2016年10月12日
【申请日】2016年5月18日
【发明人】林志泳
【申请人】广东欧珀移动通信有限公司