掌桥专利:专业的专利平台
掌桥专利
首页

安卓系统下提高应用程序在后台存活率的方法及移动终端

文献发布时间:2023-06-19 11:19:16


安卓系统下提高应用程序在后台存活率的方法及移动终端

技术领域

本申请属于软件领域,尤其涉及一种安卓系统下提高应用程序在后台存活率的方法、装置、计算机可读存储介质及移动终端。

背景技术

目前行业内应用程序(Application,APP)主要通过如下方案提高APP在后台的存活率:例如利用系统广播拉活、利用第三方应用广播拉活、利用计算机函数Native进程拉活、使用JobScheduler拉活和通过安装有特殊APP的硬件与APP建立连接。然而随着安卓(Android)版本的不断更新和迭代,包括权限的收拢,回收机制的不断优化,强化隐私的保护,以及越来越严格的后台管理机制,目前行业内提高App在后台存活率的方案已经在高版本上失去了作用。

发明内容

本申请的目的在于提供一种安卓系统下提高应用程序在后台存活率的方法、装置、计算机可读存储介质及移动终端,旨在解决目前行业内提高App在后台存活率的方案已经在高版本上失去了作用的问题。

第一方面,本申请提供了一种安卓系统下提高应用程序在后台存活率的方法,所述方法包括:

应用程序在后台运行时,将应用程序在安卓系统中的服务设置为前台服务;

在通知栏中自定义一个挂件,并在挂件上循环播放无声音的音频文件,控制应用程序的信息与自定义的挂件进行交互。

第二方面,本申请提供了一种安卓系统下提高应用程序在后台存活率的装置,包括:

设置模块,用于应用程序在后台运行时,将应用程序在安卓系统中的服务设置为前台服务;

保活模块,用于在通知栏中自定义一个挂件,并在挂件上循环播放无声音的音频文件,控制应用程序的信息与自定义的挂件进行交互。

第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如所述的安卓系统下提高应用程序在后台存活率的方法的步骤。

第四方面,本申请提供了一种移动终端,包括:

一个或多个处理器;

存储器;以及

一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如所述的安卓系统下提高应用程序在后台存活率的方法的步骤。

在本申请中,由于APP在后台运行时,将APP在安卓系统中的服务设置为前台服务;在通知栏中自定义一个挂件widget,并在widget上播放无声音的音乐文件,从而提高APP进程的优先级;控制APP的信息与自定义的widget进行交互,从而保证APP一直是前台进程,从而提高APP在后台存活率。本申请的方法能够很好的适应于新的安卓系统的版本(例如Android4.0至Android11)以及兼容旧的版本,并且在不修改APK的前提下,能够适配google新发布的Android系统。

附图说明

图1是本申请一实施例提供的安卓系统下提高应用程序在后台存活率的方法的流程图。

图2是本申请一实施例提供的安卓系统下提高应用程序在后台存活率的装置的功能模块框图。

图3是本申请一实施例提供的移动终端的具体结构框图。

具体实施方式

为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。

请参阅图1,是本申请一实施例提供的安卓系统下提高应用程序在后台存活率的方法的流程图,本实施例主要以该安卓系统下提高应用程序在后台存活率的方法应用于移动终端为例来举例说明。本申请一实施例提供的安卓系统下提高应用程序在后台存活率的方法包括以下步骤:

S101、APP在后台运行时,将APP在安卓系统中的服务设置为前台服务。

在本申请一实施例中,S101具体可以为:

在权限清单文件里申请以下权限:“允许一个程序获取信息有关当前或最近运行的任务android.permission.GET_TASK”、“允许一个应用程序检索私有信息是当前最顶级的活动android.permission.GET_TOP_ACTIVITY_INFO”、“重新排序系统Z轴运行中的任务android.permission.REORDER_TASKS”和“允许应用可以通过固件的签名密钥签名android.permission.INTERACT_ACROSS_USERS_FULL”,然后获取APP前后台切换的状态,当APP切换到后台运行时,将APP在安卓系统中的服务设置为前台服务,当APP切换回前台运行时,结束流程。

在本申请一实施例中,针对Android9.0及以上版本,还需要在权限清单文件里申请以下权限:"前台服务权限android.permission.FOREGROUND_SERVICE",否则无法将APP在安卓系统中的服务设置为前台服务。

S102、在通知栏中自定义一个挂件(Web widget,简称widget),并在widget上循环播放无声音的音频文件,从而提高APP进程的优先级;控制APP的信息与自定义的widget进行交互,从而保证APP一直是前台进程,从而提高APP在后台存活率。

在本申请一实施例中,S102具体可以包括以下步骤:

S1021、开启保活服务进程;

S1022、检测APP是否获取到了发送通知的权限,具体可以通过通知管理工具来对权限进行检测,通知管理工具已经针对不同版本的通知做了适配;只有获取了该权限,发送的通知才能够在通知栏里显示,不同的Android系统版本,在获取权限上有比较大的区别;

S1023、如果检测到APP获取到了发送通知的权限,则在通知栏中自定义一个挂件(Web widget,简称widget),并在widget上循环播放无声音的音频文件(具体可以将无声音的音频文件预置到APP的资源(assets)文件夹下面,然后通过Android的媒体播放器播放所述无声音的音频文件),然后APP向通知栏发送自定义的挂件,使保活服务变更为前台进程服务;如果检测到APP没有获取到发送通知的权限,则引导用户去设置页面里手动进行打开,为了确认发送通知的权限正常打开,需要返回S1022再进行一次权限确认检测。

S1024、控制APP的信息与自定义的widget进行交互,将APP的信息(例如时间、步数等)发送到通知栏。

在本申请一实施例中,S102之后,所述方法还可以包括以下步骤:

判断APP对应的进程是否处于存活状态,如果不是,则通过任务中心复活APP对应的进程。

所述判断APP对应的进程是否处于存活状态,如果不是,则通过任务中心复活APP对应的进程具体可以包括以下步骤:

启动保活检测服务,开启第一进程和第二进程,并将第一进程和第二进程设置为前台进程,在第一进程里,检测第二进程和保活服务的进程是否还存活,如果检测到第二进程和保活服务还存活,则通过定时任务来预约下一次检测时间,如此循环下去,如果检测到第二进程和保活服务被系统回收了,则通知任务中心将第二进程和保活服务重新复活;同理,在第二进程里,检测第一进程和保活服务的进程是否还存活,如果检测到第一进程和保活服务还存活,则通过定时任务来预约下一次检测时间,如此循环下去,如果检测到第一进程和保活服务被系统回收了,则通知任务中心将第一进程和保活服务重新复活。

为了防范保活检测服务也被系统停止的情况,在本申请一实施例中,通过接入封装好的厂商推送SDK(VendorPush SDK)服务,在所述SDK里接入预设手机品牌(例如目前市面上流行的手机品牌)的推送服务,手机品牌商的推送服务是系统级别的通道,当APP被停止了,通过VendorPuhsdk,APP还是可以收到消息,类似于IOS的(Apple Push NotificationService,简称APNS)。当有消息到来时,再检测保活服务以及保活检测服务是否生效,如果失效,则通知任务中心将保活服务和保活检测服务重新复活。

在本申请一实施例中,S101之前,所述方法还可以包括以下步骤:

检测当前的APP是否加入了移动终端预设的白名单,如果是,则将当前的APP切换到后台运行。

所述检测当前的APP是否加入了移动终端的白名单具体可以为:

通过API(Application Programming Interface,应用程序接口)检测当前的APP是否加入了移动终端预设的白名单。

所述检测当前的APP是否加入了移动终端预设的白名单之后,所述方法还可以包括:

如果当前的APP没有加入移动终端预设的白名单,则在主界面弹出供用户选择是否加入移动终端预设的白名单的对话框,如果接收到用户选择不加入移动终端预设的白名单的指令,则关闭对话框,并将此次操作记录在APP的日志文件里;当APP下次启动时再重复执行所述检测当前的APP是否加入了移动终端预设的白名单的步骤,为了不影响用户的体验,可以设置次数限制,达到阈值时,就不做检测了,从而可以防止频繁弹窗。如果接收到用户选择加入移动终端预设的白名单的指令,则获取当前移动终端的品牌、型号、安卓系统的版本和设备ID信息,经过权限管理软件开发工具包SDK(例如LLGO SDK)跳转到对应品牌对应系统的添加白名单的设置页面,如果用户已经将APP添加到手机系统白名单内了,将此次操作记录在APP的日志文件里。

这里需要特别要注意的是,同一个厂商下,不同Android系统版本打开添加白名单的设置页面不一样,如果处理不当会引发系统崩溃。目前市面上很多方案为了方便,大部分是直接跳转到设置页面。而本申请是在APP的权限清单文件里注册获取手机状态的权限。在这里特别要注意的是,不同的Android版本对权限的处理方式也有差别,Android M以下的,只要注册了这个权限,就可以通过API取得移动终端品牌、型号等信息。Android M及以上当APP中注册了该权限,在APP启动时,需要开发人员动态去申请这个权限,当申请这个权限后,系统会弹出一个权限选择的对话框,供用户选择,如果用户未授予这个权限,则无法获取到移动终端的ID信息。

在本申请一实施例中,所述方法还可以包括以下步骤:

在APP中动态注册监听屏幕解锁的广播接收者;

当用户解锁屏幕后,所述监听屏幕解锁的广播接收者收到系统的回调,启动保活检测服务对保活服务和保活进程进行检测,如果保活服务或保活进程被回收了,发送指令给任务中心将对应的保活服务或保活进程进行复活,如果保活服务或保活进程是存活的,则不作任何操作。

请参阅图2,本申请一实施例提供的安卓系统下提高应用程序在后台存活率的装置可以是运行于计算机设备中的一个计算机程序或一段程序代码,例如该安卓系统下提高应用程序在后台存活率的装置为一个应用软件;该安卓系统下提高应用程序在后台存活率的装置可以用于执行本申请实施例提供的安卓系统下提高应用程序在后台存活率的方法中的相应步骤。本申请一实施例提供的安卓系统下提高应用程序在后台存活率的装置包括:

设置模块11,用于APP在后台运行时,将APP在安卓系统中的服务设置为前台服务;

保活模块12,用于在通知栏中自定义一个挂件,并在挂件上循环播放无声音的音频文件,控制APP的信息与自定义的挂件进行交互。

本申请一实施例提供的安卓系统下提高应用程序在后台存活率的装置与本申请一实施例提供的安卓系统下提高应用程序在后台存活率的方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。

本申请一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请一实施例提供的安卓系统下提高应用程序在后台存活率的方法的步骤。

图3示出了本申请一实施例提供的移动终端的具体结构框图,一种移动终端100包括:一个或多个处理器101、存储器102、以及一个或多个计算机程序,其中所述处理器101和所述存储器102通过总线连接,所述一个或多个计算机程序被存储在所述存储器102中,并且被配置成由所述一个或多个处理器101执行,所述处理器101执行所述计算机程序时实现如本申请一实施例提供的安卓系统下提高应用程序在后台存活率的方法的步骤。移动终端可以包括手机、平板电脑、笔记本电脑、个人数字助理和穿戴式设备等中的至少一种。

在本申请中,由于APP在后台运行时,将APP在安卓系统中的服务设置为前台服务;在通知栏中自定义一个挂件widget,并在widget上播放无声音的音乐文件,从而提高APP进程的优先级;控制APP的信息与自定义的widget进行交互,从而保证APP一直是前台进程,从而提高APP在后台存活率。本申请的方法能够很好的适应于新的安卓系统的版本(例如Android4.0至Android11)以及兼容旧的版本,并且在不修改APK的前提下,能够适配google新发布的Android系统。

应该理解的是,本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

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

相关技术
  • 安卓系统下提高应用程序在后台存活率的方法及移动终端
  • 一种安卓系统禁止应用程序后台自启的方法及终端
技术分类

06120112881088