后台运行程序的方法及装置的制造方法

文档序号:8361276阅读:223来源:国知局
后台运行程序的方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,特别是涉及一种后台运行程序的方法及装置。
【背景技术】
[0002]传统技术中,1S为苹果公司为其旗下的移动设备设计的一款操作系统。基于1S操作系统的智能终端包括:iPhone、iPod Touch、iPad等。在这些终端上有数量巨大、种类繁多的APP提供各种娱乐、服务等。
[0003]然而,发明人经研究发现,例如在现有的1S系统中,大部分的应用(除提供一些特殊服务如:音乐播放、定位服务等)在用户点击Home键、切换至其他应用、或锁屏后,无法在后台继续运行,被操作系统挂起,甚至在内存不足的情况下被操作系统清除出待运行的队列,导致下次运行时需要全新加载应用程序到内存,需要消耗较长的时间,使得应用切换时的耗时较长。

【发明内容】

[0004]基于此,有必要提供一种能提高应用切换速度的后台运行程序的方法。
[0005]一种后台运行程序的方法,包括:
[0006]拦截系统守护进程发起的应用挂起指令;
[0007]获取预设的支持后台运行应用集合;
[0008]获取所述应用挂起指令对应的应用,判断所述应用是否属于所述支持后台运行应用集合,若是,则将所述挂起指令替换为继续执行指令,并转发给所述应用。
[0009]此外,还有必要提供一种能够提高安全性的用户账号匹配装置。
[0010]一种后台运行程序的装置,包括:
[0011]指令拦截模块,用于拦截系统守护进程发起的应用挂起指令;
[0012]支持集合获取模块,用于获取预设的支持后台运行应用集合;
[0013]指令篡改模块,用于获取所述应用挂起指令对应的应用,判断所述应用是否属于所述支持后台运行应用集合,若是,则将所述挂起指令替换为继续执行指令,并转发给所述应用。
[0014]上述后台运行程序的方法及装置,通过将系统守护进程发送给后台运行的应用挂起指令替换为继续执行指令,使得在后台运行的应用可以在操作系统的后台持续运行,而不会有生命期的限制,该应用可在系统守护进程每次针对超时发起应用挂起指令时,仍然保持后台运行状态,使得后台运行的应用不会处于挂起状态,从而不会被清理出内存,当再次切换到或运行该应用时,不需要重新加载应用,从而提高了应用切换的速度。
【附图说明】
[0015]图1为一个实施例中后台运行程序的方法的流程图;
[0016]图2为一个实施例中后台运行程序的装置的结构示意图;
[0017]图3为另一个实施例中后台运行程序的装置的结构示意图;
[0018]图4为一个实施例中后台运行程序的方法的运行环境示意图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020]除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组口 ο
[0021]在一个实施例中,如图1所示,一种后台运行程序的方法,包括:
[0022]步骤S102,拦截系统守护进程发起的应用挂起指令。
[0023]例如,对于非音乐播放、定位服务、电话、短信、邮件等系统应用,在用户点击1S设备上的Home键时,该应用将被系统守护进程转移到后台运行,1S设备则切换到桌面状态。在1S系统中,系统守护进程会监视处于后台运行的应用的生命周期,当运行时间超过最多10分钟时,向应用发起应用挂起指令。
[0024]在本实施例中,本方法的运行基于1S操作系统,可预先在1S系统进程桌面管理进程(即Spring Board进程)中注入具有预设的拦截逻辑的动态库代码。1S系统进程桌面管理进程在初始化过程中即加载了该动态库代码。在1S系统运行时,即可通过该已加载的注入的动态库代码拦截1S系统中的系统守护进程发送给处于后台超时运行的应用的挂起指令。
[0025]步骤S104,获取预设的支持后台运行应用集合。
[0026]支持后台运行应用集合可由用户预先设置。在一个实施例中,获取支持后台运行应用选取指令,提取选中的应用;将选中的应用添加到预设的支持后台运行应用集合中。
[0027]在本实施例中,可以列表的形式展示1S系统中已经安装的多个应用,用户可在列表中对列表项进行勾选,通过输入支持后台运行应用选取指令选中需要在后台运行的应用。用户选中并点击确认后,即可将选中的应用添加到预设的支持后台运行应用表(即支持后台运行应用集合)中。相应的,若用户希望某个应用不再在后台运行,则可在列表中取消勾选并点击确认,从而将其从支持后台运行应用集合中移除。
[0028]步骤S106,获取应用挂起指令对应的应用,判断应用是否属于支持后台运行应用集合,若是,则执行步骤S108。
[0029]步骤S108,将应用挂起指令替换为继续执行指令,并转发给应用。
[0030]在本实施例中,若应用挂起指令对应的应用属于支持后台运行应用集合,则通过前述注入的动态库代码将应用挂起指令的字符串替换成继续执行指令的字符串,然后将替换后的继续执行指令发送给应用。应用接收到继续执行指令后,则可继续在后台运行最多10分钟。当该应用下次运行超时(后台运行再次超过10分钟)后,则注入的动态库代码将再次接收到系统守护进程发起的应用挂起指令,从而再次开始执行步骤S102。
[0031]若应用挂起指令对应的应用不属于支持后台运行应用集合,则执行步骤SllO:放行该应用挂起指令。当应用接收到该应用挂起指令后,则转为挂起状态。
[0032]在本实施例中,拦截系统守护进程发起的应用挂起指令的步骤之前还包括:
[0033]获取应用清理事件,获取应用清理事件对应的应用;判断应用是否属于支持后台运行应用集合,若是,则通过系统守护进程加载应用清理事件对应的应用。
[0034]在本实施例中,若用户通过点击“退出”主动结束应用的运行或在应用被1S系统的系统守护进程清理出内存时,还可通过注入的动态库代码获取1S系统抛出的应用清理事件。应用清理事件即为1S系统在将应用由内存中清理出去(回收为应用分配的内存区域)后触发的事件。注入的动态库代码在监听到该应用清理事件后,重新加载该应用,当该应用必要的程序文件被加载完毕后,系统守护进程则会向其发送应用挂起指令,此时,注入的动态库代码拦截该应用挂起指令,即开始执行步骤S102。
[0035]进一步的,获取应用清理事件对应的应用的步骤还包括:获取应用清理事件对应的应用的内存堆栈信息并缓存。
[0036]在本实施例中,通过1S系统的系统守护进程加载应用清理事件对应的应用的步骤之后还包括:
[0037]由缓存中读取与应用对应的内存堆栈信息,根据内存堆栈信息还原应用的内存环境。
[0038]也就是说,在用户通过点击“退出”主动结束应用的运行或在应用被1S的系统守护进程清理出内存时,记录下回收应用占用的内存区域时在相应的内存区域中的内存堆栈信息,并可将其缓存在其他内存区域或磁盘中。在通过1S系统的系统守护进程加载应用清理事件对应的应用后,可由缓存中读取与该应用对应的内存堆栈信息,并将其覆盖该已加载的应用在内存中对应的内存区域,从而使得重新加载的应用与用户通过点击“退出”主动结束应用的运行或在应用被1S的系统守护进程清理出内存之前的应用具有相同的内存环境,从而对于处于运行状态中的应用,当用户主动退出后,下次再次运行该应用时,可直接跳到退出时的运行状态,展示退出时应用的运行界面,从而提高了速度。
[0039]例如,若用户在手机上玩游戏时切换到桌面编辑短信,为了防止剩余系统内存过小,则1S系统守护进程将该游戏应用清理出内存,并触发应用清理事件。注入的动态库代码将该游戏应用重新加载到内存中,并还原其内存环境。当用户结束编辑短信点击游戏应用的图标继续运行该游戏应用时,则可直接回到其切换时的游戏界面,从而提高了切换速度。
[0040]在一个实施例中,如图3所示,一种后台运行程序的装置,包括:
[0041]指令拦截模块102,用于拦截系统守护进程发起的应用挂起指令。
[0042]支持集合获取模块104,用于获取预设的支持后台运行应用集合。
[0043]指令篡改模块106,用于获取应用挂起指令对应的应用,判断应用是否属于支持后台运行应用集合,若是,则将挂起指令替换为继续执行指令,并转发给应用。
[0044]在本实施例中,如图3所示,后台运行程序的装置还包括应用配置模块108。应用配置模块108用于获取支持后台运行应用选取指令,提取选中的应用;将选中的应用添加到预设的支持后台运行应用集合中。
[0045]在本实施例中,如图3所示,后台运行程序的装置还包括应用重加载模块
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1