CN106681768A - 一种进程控制方法及电子设备 - Google Patents

一种进程控制方法及电子设备 Download PDF

Info

Publication number
CN106681768A
CN106681768A CN201611245227.8A CN201611245227A CN106681768A CN 106681768 A CN106681768 A CN 106681768A CN 201611245227 A CN201611245227 A CN 201611245227A CN 106681768 A CN106681768 A CN 106681768A
Authority
CN
China
Prior art keywords
communication event
event
strategy
communication
program
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.)
Pending
Application number
CN201611245227.8A
Other languages
English (en)
Inventor
李爵宇
李军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201611245227.8A priority Critical patent/CN106681768A/zh
Publication of CN106681768A publication Critical patent/CN106681768A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading

Abstract

本发明实施例公开了一种进程控制方法,包括:电子设备触发针对目标应用的程序冻结事件;基于所述程序冻结事件,获取运行所述目标应用的至少一个目标进程,控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,使所述至少一个目标进程处于冻结状态;检测到基于进程间的通信事件,其中,所述基于进程间的通信事件能够触发处于冻结状态的所述至少一个目标进程重新启动;判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理。本发明实施例同时还公开了一种电子设备。

Description

一种进程控制方法及电子设备
技术领域
本发明涉及电子技术,尤其涉及一种进程控制方法及电子设备。
背景技术
现有技术中,在应用程序对应的进程冻结时,即应用程序对应的进程停止运行,并释放内存空间,此时,若发起进程间调用,如进行binder调用时,会导致被冻结的应用程序解冻,而且,在现有操作系统,如安卓(android)系统中的跨进程组件通信、接口通信(AIDL,Android Interface Definition Language)、访问系统服务等过程均需要是通过binder调用来完成的。这样,必然会导致进程频繁被冻结和解冻,消耗CPU资源,且达不到冻结的效果。
发明内容
有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种进程控制方法及电子设备。
本发明实施例的技术方案是这样实现的:
本发明实施例第一方面提供了一种进程控制方法,所述方法包括:
电子设备触发针对目标应用的程序冻结事件;
基于所述程序冻结事件,获取运行所述目标应用的至少一个目标进程,控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,使所述至少一个目标进程处于冻结状态;
检测到基于进程间的通信事件,其中,所述基于进程间的通信事件能够触发处于冻结状态的所述至少一个目标进程重新启动;
判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理。
上述方案中,所述基于进程间的通信事件对应的类型至少包括第一类型和第二类型;所述第一类型表征所述通信事件属于基于通信标准的进程间的通信事件;所述第二类型表征所述通信事件不属于基于通信标准的进程间的通信事件;对应地,所述处理策略至少包括第一策略和第二策略;所述根据所属类型确定出对所述基于进程间的通信事件的处理策略,包括:
当所述基于进程间的通信事件属于所述第一类型时,选取所述第一策略,并基于所述第一策略对所述通信事件进行拦截处理;
当所述基于进程间的通信事件属于所述第二类型时,选择所述第二策略,并基于所述第二策略触发所述基于进程间的通信事件运行。
上述方案中,所述方法还包括:
当所述基于进程间的通信事件属于所述第二类型,并运行所述基于进程间的通信事件时,触发所述至少一个目标进程进行解冻处理,以控制所述至少一个目标进程重新运行所述目标应用对应的程序,使所述至少一个目标进程处于解冻状态。
上述方案中,所述方法还包括:
检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理;
根据检测结果确定是否重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间。
上述方案中,所述方法还包括:
设置预设时间间隔;
判断所述预设时间间隔是否到达;
当到达时,检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理。
本发明实施例第二方面提供了一种电子设备,所述电子设备包括:
处理单元,用于触发针对目标应用的程序冻结事件,基于所述程序冻结事件,获取运行所述目标应用的至少一个目标进程,控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,使所述至少一个目标进程处于冻结状态;
检测单元,用于检测到基于进程间的通信事件,其中,所述基于进程间的通信事件能够触发处于冻结状态的所述至少一个目标进程重新启动;
对应地,所述处理单元,还用于判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理。
上述方案中,所述基于进程间的通信事件对应的类型至少包括第一类型和第二类型;所述第一类型表征所述通信事件属于基于通信标准的进程间的通信事件;所述第二类型表征所述通信事件不属于基于通信标准的进程间的通信事件;所述处理策略至少包括第一策略和第二策略;对应地,
所述处理单元,还用于当所述基于进程间的通信事件属于所述第一类型时,选取所述第一策略,并基于所述第一策略对所述通信事件进行拦截处理;还用于当所述基于进程间的通信事件属于所述第二类型时,选择所述第二策略,并基于所述第二策略触发所述基于进程间的通信事件运行。
上述方案中,所述处理单元,还用于当所述基于进程间的通信事件属于所述第二类型,并运行所述基于进程间的通信事件时,触发所述至少一个目标进程进行解冻处理,以控制所述至少一个目标进程重新运行所述目标应用对应的程序,使所述至少一个目标进程处于解冻状态。
上述方案中,所述检测单元,还用于检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理;
对应地,所述处理单元,还用于根据检测结果确定是否重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间。
上述方案中,所述处理单元,还用于设置预设时间间隔;判断所述预设时间间隔是否到达;
对应地,所述检测单元,还用于当到达时,检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理。
本发明实施例所述的进程控制方法及电子设备,通过电子设备触发针对目标应用的程序冻结事件,基于程序冻结事件,获取运行所述目标应用的至少一个目标进程,并对所述至少一个目标进程进行冻结处理,使所述至少一个目标进程处于冻结状态,此时,若检测到基于进程间的通信事件,则判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理,如此,实现有针对性的对该通信事件进行处理的目的,为最大化避免程序冻结事件期间处于冻结状态的进程由于通信事件而被解冻的问题奠定了基础,同时,也为降低CPU资源奠定了基础。
附图说明
图1为实现本发明各个实施例的一个可选的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3为本发明实施例一进程控制方法的实现流程示意图;
图4为本发明实施例电子设备的组成结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明的技术方案,并不用于限定本发明的保护范围。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA)、平板电脑(PAD)、便携式多媒体播放器(PMP)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的移动终端100的硬件结构示意,如图1所示,移动终端100可以包括无线通信单元110、音频/视频(A/V)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端100,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端100的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元110可以包括广播接收模块111、移动通信模块112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播系统、地面数字广播综合服务(ISDB-T)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端100的无线互联网接入。无线互联网模块113可以内部或外部地耦接到终端。无线互联网模块113所涉及的无线互联网接入技术可以包括无线局域网(WLAN)、无线相容性认证(Wi-Fi)、无线宽带(Wibro)、全球微波互联接入(Wimax)、高速下行链路分组接入(HSDPA)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
位置信息模块115是用于检查或获取移动终端100的位置信息的模块。位置信息模块115的典型示例是全球定位系统(GPS)模块。根据当前的技术,作为GPS的位置信息模块115计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,作为GPS的位置信息模块115能够通过实时地连续计算当前位置信息来计算速度信息。
A/V输入单元120用于接收音频或视频信号。A/V输入单元120可以包括相机121和麦克风122,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元151上。经相机121处理后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发送,可以根据移动终端100的构造提供两个或更多相机121。麦克风122可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端100的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口(典型示例是通用串行总线USB端口)、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为“识别装置”)可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。
接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端100的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端100是否准确地安装在底座上的信号。
输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示单元151、音频输出模块152、警报单元153等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端100可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
音频输出模块152可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块152可以包括扬声器、蜂鸣器等等。
警报单元153可以提供输出以将事件的发生通知给移动终端100。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报单元153可以以不同的方式提供输出以通知事件的发生。例如,警报单元153可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incoming communication)时,警报单元153可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报单元153也可以经由显示单元151或音频输出模块152提供通知事件的发生的输出。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储已经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM,Read Only Memory)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。
控制器180通常控制移动终端100的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现或回放多媒体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,已经按照其功能描述了移动终端100。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端100等等的各种类型的移动终端100中的滑动型移动终端100作为示例。因此,本发明能够应用于任何类型的移动终端100,并且不限于滑动型移动终端100。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明的移动终端100能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到BS270的BSC275形成接口。回程线路可以根据若干已知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM、IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC275。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子系统(BTS)或者其它等效术语。在这样的情况下,术语“基站”可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为“蜂窝站”。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个卫星300,例如可以采用GPS卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。如图1中所示的作为GPS的位置信息模块115通常被构造为与卫星300配合以获得想要的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端100的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定BS270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC275提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC280与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
移动终端中无线通信单元110的移动通信模块112基于移动终端内置的接入移动通信网络(如2G/3G/4G等移动通信网络)的必要数据(包括用户识别信息和鉴权信息)接入移动通信网络为移动终端用户的网页浏览、网络多媒体播放等业务传输移动通信数据(包括上行的移动通信数据和下行的移动通信数据)。
无线通信单元110的无线互联网模块113通过运行无线热点的相关协议功能而实现无线热点的功能,无线热点支持多个移动终端(移动终端之外的任意移动终端)接入,通过复用移动通信模块112与移动通信网络之间的移动通信连接为移动终端用户的网页浏览、网络多媒体播放等业务传输移动通信数据(包括上行的移动通信数据和下行的移动通信数据),由于移动终端实质上是复用移动终端与通信网络之间的移动通信连接传输移动通信数据的,因此移动终端消耗的移动通信数据的流量由通信网络侧的计费实体计入移动终端的通信资费,从而消耗移动终端签约使用的通信资费中包括的移动通信数据的数据流量。
基于上述移动终端100硬件结构以及通信系统,提出本发明方法各个实施例。
实施例一
本实施例提供了一种进程控制方法,具体地,图3为本发明实施例一进程控制方法的实现流程示意图,如图3所示,该进程控制方法包括:
步骤301:电子设备触发针对目标应用的程序冻结事件;
本实施例中,所述电子设备可以具体为以上所述的移动终端;所述目标应用可以具体为所述电子设备中安装的任一应用程序。进一步地,当所述电子设备获取到针对所述目标应用的程序冻结事件后,需要获取运行该目标应用的进程,这里,在实际应用中,运行该应用程序的进程可以具体为一个,也可以为多个;进一步地,当所述电子设备获取到所述针对目标应用的程序冻结事件后,所述电子设备确定出所述目标应用对应的至少一个目标进程,进而将所述至少一个目标进程进行冻结处理,即控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放所述至少一个目标进程所占用的内存空间,使所述至少一个目标进程处于冻结状态。
步骤302:基于所述程序冻结事件,获取运行所述目标应用的至少一个目标进程,控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,使所述至少一个目标进程处于冻结状态;
本实施例中,当所述至少一个目标进程处于冻结状态时,所述电子设备检测到进程间的通信事件,例如,在一具体实施例中,所述电子设备设置有安卓系统,且所述电子设备中的某一应用对应的进程被冻结后,所述电子设备检测到了binder调用,此时,所述电子设备会基于所述binder调用将处于冻结状态的进程进行解冻处理,以使处于冻结状态的进程重新启动,运行对应的程序。这里,本实施例为避免被冻结的进程由于binder调用而被解冻的问题,需要去判断该binder调用,也即该基于进程间的通信事件所属的类型,进而根据所属类型有针对性的对该通信事件进行处理,为最大化避免程序冻结事件期间处于冻结状态的进程由于通信事件而被解冻的问题奠定基础。
步骤303:检测到基于进程间的通信事件,其中,所述基于进程间的通信事件能够触发处于冻结状态的所述至少一个目标进程重新启动;
步骤304:判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理。
在一具体实施例中,所述基于进程间的通信事件对应的类型可以至少包括第一类型和第二类型;进一步地,所述第一类型表征所述通信事件属于基于通信标准的进程间的通信事件;所述第二类型表征所述通信事件不属于基于通信标准的进程间的通信事件;对应地,所述处理策略也至少包括两种,即第一策略和第二策略;此时,当所述基于进程间的通信事件属于所述第一类型时,也即检测到的该通信事件为基于通信标准的进程间的通信事件时,所述电子设备选取出所述第一策略,并基于所述第一策略对所述通信事件进行拦截处理;或者,当所述基于进程间的通信事件属于所述第二类型,也即检测到的该通信事件不属于基于通信标准的进程间的通信事件时,所述电子设备选择所述第二策略,并基于所述第二策略触发所述基于进程间的通信事件运行。这样,实现有针对性拦截通信事件的目的,进而降低程序冻结事件期间处于冻结状态的进程由于通信事件而被解冻处理的概率,为降低CPU资源的消耗奠定了基础。
本实施例中,所述电子设备在所述基于进程间的通信事件属于所述第二类型,且运行所述基于进程间的通信事件时,会触发所述至少一个目标进程进行解冻处理,以控制所述至少一个目标进程重新运行所述目标应用对应的程序,使所述至少一个目标进程处于解冻状态。
进一步地,在另一具体实施例中,为了避免第二策略下,处于冻结状态的所述至少一个目标进程被解冻处理,所述电子设备还需要检测是否对处于冻结状态的所述至少一个目标进程进行解冻处理,进而根据检测结果确定是否重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间。例如,当检测到对处于冻结状态的所述至少一个目标进程进行解冻处理后,使所述至少一个目标进程重新运行相应的程序,此时,所述电子设备会重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,最大化地避免程序冻结事件期间处于冻结状态的进程由于通信事件而被解冻的问题。
以下通过具体应用场景对本发明实施例做进一步详细说明;具体地,
电子设备检测到binder调用时,对发起频度高的binder调用进行拦截处理,这里,属于现有标准中的基于进程间的binder调用的为高频段的binder调用,如,启动服务(startService),广播(broadcast),报警(Alarm),定位(location),配置(configuration)等等的binder调用,均为频度高的调用,此时,所述电子设备屏蔽该类频度高的binder调用。相应地,对发起频度低的binder调用进行放行,如开发人员自行定义的binder调用属于低频度的调用,此时放行,即允许频度低的binder调用,同时,在中控中增加冻结检测,当发现冻结的应用已经被解冻时,重新触发冻结的流程。这样,解决binder调用导致解冻的场景。
这样,本发明实施例所述的方法,通过电子设备触发针对目标应用的程序冻结事件,基于程序冻结事件,获取运行所述目标应用的至少一个目标进程,并对所述至少一个目标进程进行冻结处理,使所述至少一个目标进程处于冻结状态,此时,若检测到基于进程间的通信事件,则判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理,实现有针对性的对该通信事件进行处理的目的,为最大化避免程序冻结事件期间处于冻结状态的进程由于通信事件而被解冻的问题奠定了基础,同时,也为降低CPU资源奠定了基础。
实施例二
基于实施例一所述的方法,本实施例中,所述电子设备还需要设置预设时间间隔,进而判断所述预设时间间隔是否到达,当到达时,才去检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理,进而根据检测结果确定是否重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间。例如,当检测到对处于冻结状态的所述至少一个目标进程进行解冻处理后,使所述至少一个目标进程重新运行相应的程序,此时,所述电子设备会重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,最大化地避免程序冻结事件期间处于冻结状态的进程由于通信事件而被解冻的问题。
以下通过具体应用场景对本发明实施例做进一步详细说明;具体地,
电子设备检测到binder调用时,对发起频度高的binder调用进行拦截处理,这里,属于现有标准中的基于进程间的binder调用的为高频段的binder调用,如,启动服务(startService),广播(broadcast),报警(Alarm),定位(location),配置(configuration)等等的binder调用,均为频度高的调用,此时,所述电子设备屏蔽该类频度高的binder调用。相应地,对发起频度低的binder调用进行放行,如开发人员自行定义的binder调用属于低频度的调用,此时放行,即允许频度低的binder调用,同时,在中控中增加周期性冻结检测,当发现冻结的应用已经被解冻时,重新触发冻结的流程。这样,解决binder调用导致解冻的场景。
实施例三
本实施例提供了一种电子设备,如图4所示,所述电子设备包括:
处理单元41,用于触发针对目标应用的程序冻结事件,基于所述程序冻结事件,获取运行所述目标应用的至少一个目标进程,控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,使所述至少一个目标进程处于冻结状态;
检测单元42,用于检测到基于进程间的通信事件,其中,所述基于进程间的通信事件能够触发处于冻结状态的所述至少一个目标进程重新启动;
对应地,所述处理单元41,还用于判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理。
在一实施例中,所述基于进程间的通信事件对应的类型至少包括第一类型和第二类型;所述第一类型表征所述通信事件属于基于通信标准的进程间的通信事件;所述第二类型表征所述通信事件不属于基于通信标准的进程间的通信事件;所述处理策略至少包括第一策略和第二策略;对应地,
所述处理单元41,还用于当所述基于进程间的通信事件属于所述第一类型时,选取所述第一策略,并基于所述第一策略对所述通信事件进行拦截处理;还用于当所述基于进程间的通信事件属于所述第二类型时,选择所述第二策略,并基于所述第二策略触发所述基于进程间的通信事件运行。
在另一实施例中,所述处理单元41,还用于当所述基于进程间的通信事件属于所述第二类型,并运行所述基于进程间的通信事件时,触发所述至少一个目标进程进行解冻处理,以控制所述至少一个目标进程重新运行所述目标应用对应的程序,使所述至少一个目标进程处于解冻状态。
在另一实施例中,所述检测单元42,还用于检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理;
对应地,所述处理单元41,还用于根据检测结果确定是否重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间。
在另一实施例中,所述处理单元41,还用于设置预设时间间隔;判断所述预设时间间隔是否到达;
对应地,所述检测单元42,还用于当到达时,检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理。
这里需要指出的是:以上电子设备实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果,因此不做赘述。对于本发明电子设备实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种进程控制方法,其特征在于,所述方法包括:
电子设备触发针对目标应用的程序冻结事件;
基于所述程序冻结事件,获取运行所述目标应用的至少一个目标进程,控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,使所述至少一个目标进程处于冻结状态;
检测到基于进程间的通信事件,其中,所述基于进程间的通信事件能够触发处于冻结状态的所述至少一个目标进程重新启动;
判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理。
2.根据权利要求1所述的方法,其特征在于,所述基于进程间的通信事件对应的类型至少包括第一类型和第二类型;所述第一类型表征所述通信事件属于基于通信标准的进程间的通信事件;所述第二类型表征所述通信事件不属于基于通信标准的进程间的通信事件;对应地,所述处理策略至少包括第一策略和第二策略;所述根据所属类型确定出对所述基于进程间的通信事件的处理策略,包括:
当所述基于进程间的通信事件属于所述第一类型时,选取所述第一策略,并基于所述第一策略对所述通信事件进行拦截处理;
当所述基于进程间的通信事件属于所述第二类型时,选择所述第二策略,并基于所述第二策略触发所述基于进程间的通信事件运行。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述基于进程间的通信事件属于所述第二类型,并运行所述基于进程间的通信事件时,触发所述至少一个目标进程进行解冻处理,以控制所述至少一个目标进程重新运行所述目标应用对应的程序,使所述至少一个目标进程处于解冻状态。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理;
根据检测结果确定是否重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
设置预设时间间隔;
判断所述预设时间间隔是否到达;
当到达时,检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理。
6.一种电子设备,其特征在于,所述电子设备包括:
处理单元,用于触发针对目标应用的程序冻结事件,基于所述程序冻结事件,获取运行所述目标应用的至少一个目标进程,控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间,使所述至少一个目标进程处于冻结状态;
检测单元,用于检测到基于进程间的通信事件,其中,所述基于进程间的通信事件能够触发处于冻结状态的所述至少一个目标进程重新启动;
对应地,所述处理单元,还用于判断所述基于进程间的通信事件所属类型,根据所属类型确定出对所述基于进程间的通信事件的处理策略,以避免所述程序冻结事件期间处于冻结状态的所述至少一个目标进程被解冻处理。
7.根据权利要求6所述的电子设备,其特征在于,所述基于进程间的通信事件对应的类型至少包括第一类型和第二类型;所述第一类型表征所述通信事件属于基于通信标准的进程间的通信事件;所述第二类型表征所述通信事件不属于基于通信标准的进程间的通信事件;所述处理策略至少包括第一策略和第二策略;对应地,
所述处理单元,还用于当所述基于进程间的通信事件属于所述第一类型时,选取所述第一策略,并基于所述第一策略对所述通信事件进行拦截处理;还用于当所述基于进程间的通信事件属于所述第二类型时,选择所述第二策略,并基于所述第二策略触发所述基于进程间的通信事件运行。
8.根据权利要求7所述的电子设备,其特征在于,所述处理单元,还用于当所述基于进程间的通信事件属于所述第二类型,并运行所述基于进程间的通信事件时,触发所述至少一个目标进程进行解冻处理,以控制所述至少一个目标进程重新运行所述目标应用对应的程序,使所述至少一个目标进程处于解冻状态。
9.根据权利要求7或8所述的电子设备,其特征在于,所述检测单元,还用于检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理;
对应地,所述处理单元,还用于根据检测结果确定是否重新触发针对所述目标应用的程序冻结事件,以重新控制所述至少一个目标进程停止运行所述目标应用对应的程序,并释放占用的内存空间。
10.根据权利要求9所述的电子设备,其特征在于,所述处理单元,还用于设置预设时间间隔;判断所述预设时间间隔是否到达;
对应地,所述检测单元,还用于当到达时,检测所述电子设备是否对处于冻结状态的所述至少一个目标进程进行解冻处理。
CN201611245227.8A 2016-12-29 2016-12-29 一种进程控制方法及电子设备 Pending CN106681768A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611245227.8A CN106681768A (zh) 2016-12-29 2016-12-29 一种进程控制方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611245227.8A CN106681768A (zh) 2016-12-29 2016-12-29 一种进程控制方法及电子设备

Publications (1)

Publication Number Publication Date
CN106681768A true CN106681768A (zh) 2017-05-17

Family

ID=58873363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611245227.8A Pending CN106681768A (zh) 2016-12-29 2016-12-29 一种进程控制方法及电子设备

Country Status (1)

Country Link
CN (1) CN106681768A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664285A (zh) * 2018-05-10 2018-10-16 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN109753352A (zh) * 2019-01-04 2019-05-14 Oppo广东移动通信有限公司 应用冻结的处理方法、电子装置及计算机可读存储介质
WO2020024732A1 (zh) * 2018-08-01 2020-02-06 Oppo广东移动通信有限公司 进程处理方法、电子设备、计算机可读存储介质
WO2020224381A1 (zh) * 2019-05-06 2020-11-12 中兴通讯股份有限公司 应用状态控制方法、装置、终端及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137630A (zh) * 2012-02-28 2014-11-05 高通股份有限公司 为后台应用优化信令负载开销和电池消耗
CN106125882A (zh) * 2016-06-15 2016-11-16 深圳市万普拉斯科技有限公司 一种应用程序的管理方法以及电子设备
CN106125896A (zh) * 2016-06-29 2016-11-16 宇龙计算机通信科技(深圳)有限公司 一种应用程序冻结方法及移动终端
CN106200876A (zh) * 2016-07-11 2016-12-07 珠海市魅族科技有限公司 应用程序处理方法及系统
CN106227590A (zh) * 2016-07-27 2016-12-14 西安酷派软件科技有限公司 应用进程的控制方法、应用进程的控制装置和终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137630A (zh) * 2012-02-28 2014-11-05 高通股份有限公司 为后台应用优化信令负载开销和电池消耗
CN106125882A (zh) * 2016-06-15 2016-11-16 深圳市万普拉斯科技有限公司 一种应用程序的管理方法以及电子设备
CN106125896A (zh) * 2016-06-29 2016-11-16 宇龙计算机通信科技(深圳)有限公司 一种应用程序冻结方法及移动终端
CN106200876A (zh) * 2016-07-11 2016-12-07 珠海市魅族科技有限公司 应用程序处理方法及系统
CN106227590A (zh) * 2016-07-27 2016-12-14 西安酷派软件科技有限公司 应用进程的控制方法、应用进程的控制装置和终端

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664285A (zh) * 2018-05-10 2018-10-16 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
WO2020024732A1 (zh) * 2018-08-01 2020-02-06 Oppo广东移动通信有限公司 进程处理方法、电子设备、计算机可读存储介质
CN109753352A (zh) * 2019-01-04 2019-05-14 Oppo广东移动通信有限公司 应用冻结的处理方法、电子装置及计算机可读存储介质
WO2020224381A1 (zh) * 2019-05-06 2020-11-12 中兴通讯股份有限公司 应用状态控制方法、装置、终端及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN105718027A (zh) 后台应用程序的管理方法及移动终端
CN106844029A (zh) 一种自管理的Android进程冻结和解冻的装置及方法
CN105721002B (zh) 一种终端滤波方法、系统、装置和可滤波终端
CN106304037A (zh) 虚拟sim卡的管理方法和装置
CN104968027B (zh) Wi-Fi控制方法及装置
CN105760057A (zh) 截屏装置和方法
CN106210279A (zh) 显示屏切换装置及方法
CN104967573A (zh) 一种数据流量的监控方法及终端
CN106681768A (zh) 一种进程控制方法及电子设备
CN105975052A (zh) 屏幕切换方法及装置
CN105791561A (zh) 一种实现移动终端的控制方法和装置
CN105764085A (zh) 一种异常耗电的检测方法及终端
CN106507185A (zh) 一种信息处理方法及投影终端
CN104735254B (zh) 终端锁屏方法和系统
CN106681722A (zh) 一种进程处理方法及电子设备
CN106162651A (zh) 一种识别伪基站的方法和装置
CN106302992A (zh) 一种移动终端及屏幕点亮方法
CN105808049A (zh) 一种实现移动终端的控制方法和装置
CN105100408B (zh) 一种控制移动终端的方法和装置
CN106507460A (zh) 一种智能省电方法、终端
CN106020677A (zh) 一种信息处理方法及移动终端
CN104935728A (zh) 一种处理提示事件的方法及移动终端
CN105974437B (zh) 一种提升终端应用性能的方法、装置和终端
CN107135298A (zh) 来电拦截方法和装置
CN106569796A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170517