CN109726076A - 一种小程序生命周期管理方法和系统 - Google Patents
一种小程序生命周期管理方法和系统 Download PDFInfo
- Publication number
- CN109726076A CN109726076A CN201811464973.5A CN201811464973A CN109726076A CN 109726076 A CN109726076 A CN 109726076A CN 201811464973 A CN201811464973 A CN 201811464973A CN 109726076 A CN109726076 A CN 109726076A
- Authority
- CN
- China
- Prior art keywords
- small routine
- app
- small
- routine
- memory
- 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
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种小程序生命周期管理方法和系统,所述方法包括监控App中小程序的运行情况;监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放。用于解决现有技术中缺乏对小程序的生命周期管理,当APP内业务及多个小程序并发的情况下,设备内存消耗上升,APP性能下降问题;能够有效提高APP上小程序的使用流畅性。
Description
【技术领域】
本申请涉及计算机技术领域,尤其涉及一种小程序生命周期管理方法和系统。
【背景技术】
小程序本身依托在大型的App中(如微信、百度App),这些APP在运行时,因为服务众多,本身就需要消耗设备较多的内存,如果再加载多个webview并承载多个小程序,设备内存消耗上升,App性能下降。因此需要对小程序的生命周期进行管理,来控制App性能损耗。
但是,目前尚没有一种有效的小程序生命周期控制方案,无法实现App性能与小程序并发数量之间的均衡,影响了用户体验。
【发明内容】
本申请的多个方面提供一种小程序生命周期管理方法和系统,用以进行小程序生命周期管理,实现App性能与小程序并发数量之间的均衡,提升用户体验。
本申请的一方面,提供一种小程序生命周期管理方法,包括:
监控App中小程序的运行情况;
监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述App中小程序的运行情况包括:
小程序运行在App前台;小程序运行在App后台,APP使用其他业务;小程序进入App后台,App前台运行其他小程序。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,根据小程序ID对App中的小程序进行监控。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放包括:
当小程序运行在App前台,对所述小程序的页面堆栈进行控制,确定进入单web加载模式的SlaveWebview级数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放包括:
当小程序运行在App后台,APP使用其他业务时,若所述App的内存消耗达到预设警戒值,释放后台小程序。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述释放后台小程序包括:
若多个小程序运行在App后台,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放包括:
当小程序进入App后台,App前台运行其他小程序,对App的内存消耗进行监控的同时,对所述小程序的状态进行管理。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所述小程序的状态进行管理包括:
若所述小程序被释放,当所述小程序被切换回前台时,重新加载所述小程序,并调用预先存储的所述小程序的状态及信息;
若所述小程序未被释放,当所述小程序被切换回前台时,直接弹出挂起的所述小程序界面。
本发明的另一方面,提供了一种小程序生命周期管理系统,包括:
小程序监控模块,用于监控App中小程序的运行情况;
内存监控模块,用于监控App的内存消耗情况;
小程序管理模块,用于针对小程序的运行情况进行小程序页面控制和/或内存释放。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述App中小程序的运行情况包括:
小程序运行在App前台;小程序运行在App后台,APP使用其他业务;小程序进入App后台,App前台运行其他小程序。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述小程序监控模块用于根据小程序ID对App中的小程序进行监控。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述小程序管理模块具体用于:
当小程序运行在App前台,对所述小程序的页面堆栈进行控制,确定进入单web加载模式的SlaveWebview级数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述小程序管理模块具体用于:
当小程序运行在App后台,APP使用其他业务时,若所述App的内存消耗达到预设警戒值,释放后台小程序。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述小程序管理模块具体还用于:
若多个小程序运行在App后台,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述小程序管理模块具体用于:
当小程序进入App后台,App前台运行其他小程序,对App的内存消耗进行监控的同时,对所述小程序的状态进行管理。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述小程序管理模块具体还用于:
若所述小程序被释放,当所述小程序被切换回前台时,重新加载所述小程序,并调用预先存储的所述小程序的状态及信息;
若所述小程序未被释放,当所述小程序被切换回前台时,直接弹出挂起的所述小程序界面。
本发明的另一方面,提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
本发明的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
由所述技术方案可知,本申请实施例,实现了App性能与小程序并发数量之间的均衡,提升了用户体验。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的小程序生命周期管理方法的流程示意图;
图2为本申请一实施例提供的小程序生命周期管理系统的结构示意图;
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
图1为本申请一实施例提供的小程序生命周期管理方法的流程示意图,如图1所示,包括以下步骤:
步骤S11、监控App中各小程序的运行情况;
步骤S12、监控App的内存消耗情况,根据各小程序的运行情况进行小程序页面控制和/或内存释放。
所述小程序运行在如微信App的客户端上,同一App客户端上可以提供多个小程序并发,但是只有一个小程序位于前台,其他小程序进入后台,可以在前台和后台之间切换小程序。
同时,小程序可以提供多个页面,包括:MasterWebview和SlaveWebview,其中,MasterWebview为主页面,负责与前端JS接口的通信,解析数据并做行为分发。SlaveWebview为新的子页面,负责执行解析行为,展示行为结果,进一步展示页面信息。
在步骤S11的一种优选实现方式中,App中内置的小程序生命周期管理系统对App中小程序的运行情况进行监控。
在本实施例中,App中内置的小程序生命周期管理系统对App中的每一个小程序分别进行监控。接下来,以微信App中的京东购物小程序为例。
优选地,所述App中各小程序的运行情况包括:小程序运行在前台;小程序位于后台,APP处理其他业务。
优选地,小程序运行在App前台时,以页面栈的形式提供多个页面,每个页面是一个Webview,其中,Webview是一个可以用来承载网页的容器,会自动铺满整个小程序页面。所述小程序生命周期管理系统使用给定的对小程序的页面栈进行监控和管理,获取页面栈中Webview的打开情况。
优选地,小程序位于后台时,分为以下情况:
小程序进入后台,App开始使用其他业务,例如,用户退出使用微信App中提供的文字、语音聊天功能则京东购物小程序进入后台;
小程序进入后台,App启动了其他小程序,例如,用户从京东购物小程序切换到链家小程序,则京东购物小程序进入后台。
优选地,所述小程序生命周期管理系统根据小程序ID(AppID)对App中的每一个小程序分别进行监控。
在步骤S12的一种优选实现方式中,
所述小程序生命周期管理系统根据小程序的运行情况,对所述小程序进行管理。
在本申请的一个优选实施例中,小程序运行在App前台,所述小程序生命周期管理系统对运行在APP前台的小程序的页面堆栈进行管理。
优选地,对小程序的页面堆栈进行管理的管理规则如下:
1、限定每个小程序有且仅有一个MasterWebview,小程序打开的第一个Webview为MasterWeview;
2、当小程序再次打开Webview,即为SlaveWebview,根据App所在终端的内存使用情况以及App的内存消耗情况,确定SlaveWebview的个数。优选地,限定SlaveWebview的个数为5个;
3、活跃的小程序达到1级MasterWebview,5级SlaveWebview满载时,第5级SlaveWebview将进入单web加载模式,也就是不再增加更多的Webview,而是在第5级SlaveWebview中沉浸加载,回归到普通浏览器效果。
优选地,对于运行在App前台的小程序,获取其页面堆栈情况;若接收到打开新的Webview的指令,则:
若不存在打开的Webview,则打开一个MasterWebview;
若存在打开的MasterWebview,且存在少于5级SlaveWebview,则新打开一个SlaveWebview;
若达到1级MasterWebview,5级SlaveWebview满载时,将第5级SlaveWebview进入单web加载模式。
优选地,根据App的内存消耗情况确定SlaveWebview的级数,若App的内存内存消耗达到预设警戒值时,将当前SlaveWebview进入单web加载模式。
在本申请的另一个优选实施例中,小程序进入后台,App开始使用其他业务,例如,用户退出使用微信App中提供的文字、语音聊天功能则京东购物小程序进入后台;所述小程序生命周期管理系统对App的内存消耗进行监控。
优选地,所述小程序生命周期管理系统通过App所在终端的系统后台获取App的内存消耗情况;当所述App的内存消耗达到预设警戒值时,触发释放事件,释放后台小程序降低App内存消耗。
优选地,App存在多个小程序,多小程序并发,根据小程序的使用顺序组成堆栈。
优选地,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
优选地,释放后台小程序的同时,触发存储被释放的小程序的状态及信息的事件,用于小程序下次被启动时加载。其中,所述状态及信息为小程序的cookie,例如用户的登录信息、历史浏览记录等。所述小程序生命周期管理系统将小程序的cookie进行存储。
优选地,所述cookie以小程序的AppID进行标识,当小程序再次启动时,检查是否存储有其APPID对应的cookie,如果有,则加载所述cookie,提供对用户的无感知切换。用户无需再所述小程序重新启动后再次输入登录信息等。
在本申请的另一个优选实施例中,小程序进入后台,App启动了其他小程序,例如,用户从京东购物小程序切换到链家小程序,则京东购物小程序进入后台;所述小程序生命周期管理系统对App的内存消耗进行监控,同时,对小程序的状态进行管理。
优选地,所述小程序生命周期管理系统通过App所在终端的系统后台获取App的内存消耗情况;当所述App的内存消耗达到预设警戒值时,触发释放事件,释放后台小程序降低App内存消耗。
优选地,所述小程序生命周期管理系统对App的内存进行管理的同时,对运行在APP前台的小程序的页面堆栈进行管理。具体管理步骤如前所述,不再赘述。
优选地,所述小程序生命周期管理系统对运行在APP后台的小程序进行管理。其中,对运行在App后台的小程序进行管理,包括:将所述小程序设置为非活跃挂起态,所述小程序仍然可以运行,但是仅用所述小程序的部分前端能力。
优选地,小程序进入后台,App中存在多个小程序,根据小程序的使用顺序组成堆栈。优选地,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
优选地,释放后台小程序的同时,触发存储被释放的小程序的状态及信息的事件,用于小程序下次被启动时加载。其中,所述状态及信息为小程序的cookie,例如用户的登录信息、历史浏览记录等。所述小程序生命周期管理系统将小程序的cookie进行存储。
优选地,若后台小程序被释放,当所述小程序被切换回前台时,重新加载所述小程序,并调用预先存储的所述小程序的状态及信息。
优选地,所述cookie以小程序的AppID进行标识,当小程序再次启动时,检查是否存储有其APPID对应的cookie,如果有,则加载所述cookie,提供对用户的无感知切换。用户无需再所述小程序重新启动后再次输入登录信息等。
优选地,若后台小程序被挂起,未被释放,当所述小程序被切换回前台时,直接弹出挂起的小程序界面。
通过本发明所述实施例,可以对不同情况下的App中的小程序进行生命周期管理,限制小程序的内存使用或释放小程序使用的内存,实现了App性能与小程序并发数量之间的均衡,提升了用户体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。
图2为本申请一实施例提供的小程序生命周期管理系统的流程示意图,如图2所示,包括:
小程序监控模块21,用于监控App中小程序的运行情况;
内存监控模块22,用于监控App的内存消耗情况;
小程序管理模块23,用于针对小程序的运行情况进行小程序页面控制和/或内存释放。
所述小程序运行在如微信App的客户端上,同一App客户端上可以提供多个小程序并发,但是只有一个小程序位于前台,其他小程序进入后台,可以在前台和后台之间切换小程序。
同时,小程序可以提供多个页面,包括:MasterWebview和SlaveWebview,其中,MasterWebview为主页面,负责与前端JS接口的通信,解析数据并做行为分发。SlaveWebview为新的子页面,负责执行解析行为,展示行为结果,进一步展示页面信息。
在小程序监控模块21的一种优选实现方式中,小程序监控模块21对App中小程序的运行情况进行监控。
在本实施例中,A小程序监控模块21对App中的每一个小程序分别进行监控。接下来,以微信App中的京东购物小程序为例。
优选地,所述App中各小程序的运行情况包括:小程序运行在前台;小程序位于后台,APP处理其他业务。
优选地,小程序运行在App前台时,以页面栈的形式提供多个页面,每个页面是一个Webview,其中,Webview是一个可以用来承载网页的容器,会自动铺满整个小程序页面。所述小程序监控模块21对小程序的页面栈进行监控和管理,获取页面栈中Webview的打开情况。
优选地,小程序位于后台时,分为以下情况:
小程序进入后台,App开始使用其他业务,例如,用户退出使用微信App中提供的文字、语音聊天功能则京东购物小程序进入后台;
小程序进入后台,App启动了其他小程序,例如,用户从京东购物小程序切换到链家小程序,则京东购物小程序进入后台。
优选地,所述小程序监控模块21根据小程序ID(AppID)对App中的每一个小程序分别进行监控。
在内存监控模块22的一种优选实现方式中,
所述内存监控模块22,用于监控App的内存消耗情况;优选地,通过App所在终端的系统后台获取App的内存消耗情况。
在小程序管理模块23的一种优选实现方式中,
所述小程序管理模块23根据小程序的运行情况,对所述小程序进行管理。
在本申请的一个优选实施例中,小程序运行在App前台,所述小程序管理模块23对运行在APP前台的小程序的页面堆栈进行管理。
优选地,对小程序的页面堆栈进行管理的管理规则如下:
1、限定每个小程序有且仅有一个MasterWebview,小程序打开的第一个Webview为MasterWeview;
2、当小程序再次打开Webview,即为SlaveWebview,根据App所在终端的内存使用情况以及App的内存消耗情况,确定SlaveWebview的个数。优选地,限定SlaveWebview的个数为5个;
3、活跃的小程序达到1级MasterWebview,5级SlaveWebview满载时,第5级SlaveWebview将进入单web加载模式,也就是不再增加更多的Webview,而是在第5级SlaveWebview中沉浸加载,回归到普通浏览器效果。
优选地,对于运行在App前台的小程序,获取其页面堆栈情况;若接收到打开新的Webview的指令,则:
若不存在打开的Webview,则打开一个MasterWebview;
若存在打开的MasterWebview,且存在少于5级SlaveWebview,则新打开一个SlaveWebview;
若达到1级MasterWebview,5级SlaveWebview满载时,将第5级SlaveWebview进入单web加载模式。
优选地,根据App的内存消耗情况确定SlaveWebview的级数,若App的内存消耗达到预设警戒值时,将当前SlaveWebview进入单web加载模式。
在本申请的另一个优选实施例中,小程序进入后台,App开始使用其他业务,例如,用户退出使用微信App中提供的文字、语音聊天功能则京东购物小程序进入后台;所述小程序管理模块23对App的内存消耗进行监控。
优选地,所述内存监控模块22通过App所在终端的系统后台获取App的内存消耗情况;当所述App的内存消耗达到预设警戒值时,触发释放事件,释放后台小程序降低App内存消耗。
优选地,App存在多个小程序,多小程序并发,根据小程序的使用顺序组成堆栈。
优选地,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
优选地,释放后台小程序的同时,触发存储被释放的小程序的状态及信息的事件,用于小程序下次被启动时加载。其中,所述状态及信息为小程序的cookie,例如用户的登录信息、历史浏览记录等。所述小程序生命周期管理系统将小程序的cookie进行存储。
优选地,所述cookie以小程序的AppID进行标识,当小程序再次启动时,检查是否存储有其APPID对应的cookie,如果有,则加载所述cookie,提供对用户的无感知切换。用户无需再所述小程序重新启动后再次输入登录信息等。
在本申请的另一个优选实施例中,小程序进入后台,App启动了其他小程序,例如,用户从京东购物小程序切换到链家小程序,则京东购物小程序进入后台;所述内存监控模块22对App的内存消耗进行监控,同时,小程序管理模块23对小程序的状态进行管理。
优选地,所述小程序管理模块23通过App所在终端的系统后台获取App的内存消耗情况;当所述App的内存消耗达到预设警戒值时,触发释放事件,释放后台小程序降低App内存消耗。
优选地,所述小程序管理模块23对App的内存进行管理的同时,对运行在APP前台的小程序的页面堆栈进行管理。具体管理步骤如前所述,不再赘述。
优选地,所述小程序管理模块23对运行在APP后台的小程序进行管理。其中,对运行在App后台的小程序进行管理,包括:将所述小程序设置为非活跃挂起态,所述小程序仍然可以运行,但是仅用所述小程序的部分前端能力。
优选地,小程序进入后台,App中存在多个小程序,根据小程序的使用顺序组成堆栈。优选地,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
优选地,释放后台小程序的同时,触发存储被释放的小程序的状态及信息的事件,用于小程序下次被启动时加载。其中,所述状态及信息为小程序的cookie,例如用户的登录信息、历史浏览记录等。所述小程序管理模块23将小程序的cookie进行存储。
优选地,若后台小程序被释放,当所述小程序被切换回前台时,重新加载所述小程序,并调用预先存储的所述小程序的状态及信息。
优选地,所述cookie以小程序的AppID进行标识,当小程序再次启动时,检查是否存储有其APPID对应的cookie,如果有,则加载所述cookie,提供对用户的无感知切换。用户无需再所述小程序重新启动后再次输入登录信息等。
优选地,若后台小程序被挂起,未被释放,当所述小程序被切换回前台时,直接弹出挂起的小程序界面。
通过本发明所述实施例,可以对不同情况下的App中的小程序进行生命周期管理,限制小程序的内存使用或释放小程序使用的内存,实现了App性能与小程序并发数量之间的均衡,提升了用户体验。
在所述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。图3显示的计算机系统/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机系统/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图3所示,网络适配器020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图3中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元016通过运行存储在系统存储器028中的程序,从而执行本发明所描述的实施例中的功能和/或方法。
上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种小程序生命周期管理方法,其特征在于,包括:
监控App中小程序的运行情况;
监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放。
2.根据权利要求1所述的方法,其特征在于,所述App中小程序的运行情况包括:
小程序运行在App前台;小程序运行在App后台,APP使用其他业务;小程序进入App后台,App前台运行其他小程序。
3.根据权利要求2所述的方法,其特征在于,
根据小程序ID对App中的小程序进行监控。
4.根据权利要求2所述的方法,其特征在于,监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放包括:
当小程序运行在App前台,对所述小程序的页面堆栈进行控制,确定进入单web加载模式的SlaveWebview级数。
5.根据权利要求2所述的方法,其特征在于,监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放包括:
当小程序运行在App后台,APP使用其他业务时,若所述App的内存消耗达到预设警戒值,释放后台小程序。
6.根据权利要求5所述的方法,其特征在于,所述释放后台小程序包括:
若多个小程序运行在App后台,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
7.根据权利要求2所述的方法,其特征在于,监控App的内存消耗情况,针对小程序的运行情况进行小程序页面控制和/或内存释放包括:
当小程序进入App后台,App前台运行其他小程序,对App的内存消耗进行监控的同时,对所述小程序的状态进行管理。
8.根据权利要求7所述的方法,其特征在于,对所述小程序的状态进行管理包括:
若所述小程序被释放,当所述小程序被切换回前台时,重新加载所述小程序,并调用预先存储的所述小程序的状态及信息;
若所述小程序未被释放,当所述小程序被切换回前台时,直接弹出挂起的所述小程序界面。
9.一种小程序生命周期管理系统,其特征在于,包括:
小程序监控模块,用于监控App中小程序的运行情况;
内存监控模块,用于监控App的内存消耗情况;
小程序管理模块,用于针对小程序的运行情况进行小程序页面控制和/或内存释放。
10.根据权利要求9所述的系统,其特征在于,所述App中小程序的运行情况包括:
小程序运行在App前台;小程序运行在App后台,APP使用其他业务;小程序进入App后台,App前台运行其他小程序。
11.根据权利要求10所述的系统,其特征在于,所述小程序监控模块用于根据小程序ID对App中的小程序进行监控。
12.根据权利要求10所述的系统,其特征在于,所述小程序管理模块具体用于:
当小程序运行在App前台,对所述小程序的页面堆栈进行控制,确定进入单web加载模式的SlaveWebview级数。
13.根据权利要求10所述的系统,其特征在于,所述小程序管理模块具体用于:
当小程序运行在App后台,APP使用其他业务时,若所述App的内存消耗达到预设警戒值,释放后台小程序。
14.根据权利要求13所述的系统,其特征在于,所述小程序管理模块具体还用于:
若多个小程序运行在App后台,对堆栈中的多个小程序,从栈底依次进行释放,直到App的内存消耗小于预设警戒值。
15.根据权利要求10所述的系统,其特征在于,所述小程序管理模块具体用于:
当小程序进入App后台,App前台运行其他小程序,对App的内存消耗进行监控的同时,对所述小程序的状态进行管理。
16.根据权利要求15所述的系统,其特征在于,所述小程序管理模块具体还用于:
若所述小程序被释放,当所述小程序被切换回前台时,重新加载所述小程序,并调用预先存储的所述小程序的状态及信息;
若所述小程序未被释放,当所述小程序被切换回前台时,直接弹出挂起的所述小程序界面。
17.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811464973.5A CN109726076B (zh) | 2018-12-03 | 2018-12-03 | 一种小程序生命周期管理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811464973.5A CN109726076B (zh) | 2018-12-03 | 2018-12-03 | 一种小程序生命周期管理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726076A true CN109726076A (zh) | 2019-05-07 |
CN109726076B CN109726076B (zh) | 2023-01-06 |
Family
ID=66294803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811464973.5A Active CN109726076B (zh) | 2018-12-03 | 2018-12-03 | 一种小程序生命周期管理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726076B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333912A (zh) * | 2019-07-11 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 一种小程序数据预取的方法、装置及计算机可读存储介质 |
CN110888740A (zh) * | 2019-11-22 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 小程序的增量内存确定方法、装置、设备及存储介质 |
CN111026462A (zh) * | 2019-12-10 | 2020-04-17 | 百度在线网络技术(北京)有限公司 | 小程序控制方法、装置、设备和介质 |
CN111209033A (zh) * | 2020-01-10 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 小程序包的下载方法及相关设备 |
CN113377504A (zh) * | 2020-03-10 | 2021-09-10 | 成都龙兵科技有限公司 | 一种小程序的后台切换管理系统 |
CN113434222A (zh) * | 2021-06-30 | 2021-09-24 | 青岛海尔科技有限公司 | 应用程序的控制方法、装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192346A (ja) * | 2002-12-11 | 2004-07-08 | Seiko Epson Corp | メモリ管理装置、プロキシサーバ、ブラウザ端末、メモリ管理プログラム、サーバ用プログラム、端末用プログラム及び監視プログラム、並びにメモリ管理方法 |
CN104252389A (zh) * | 2013-06-27 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 应用程序运行方法、系统及应用程序 |
CN105893149A (zh) * | 2016-03-30 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种内存优化方法和装置 |
CN107943593A (zh) * | 2018-01-03 | 2018-04-20 | 上海传英信息技术有限公司 | 一种用于智能终端的内存自动清理方法 |
-
2018
- 2018-12-03 CN CN201811464973.5A patent/CN109726076B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192346A (ja) * | 2002-12-11 | 2004-07-08 | Seiko Epson Corp | メモリ管理装置、プロキシサーバ、ブラウザ端末、メモリ管理プログラム、サーバ用プログラム、端末用プログラム及び監視プログラム、並びにメモリ管理方法 |
CN104252389A (zh) * | 2013-06-27 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 应用程序运行方法、系统及应用程序 |
CN105893149A (zh) * | 2016-03-30 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种内存优化方法和装置 |
CN107943593A (zh) * | 2018-01-03 | 2018-04-20 | 上海传英信息技术有限公司 | 一种用于智能终端的内存自动清理方法 |
Non-Patent Citations (2)
Title |
---|
JUNPENGZ: "《微信小程序七日谈》- 第四天:页面路径最多五层?导航可以这么玩", 《HTTPS://WWW.CNBLOGS.COM/IHARDCODER/P/6186838.HTML》 * |
皮皮坤666: "微信小程序生命周期浅析", 《HTTPS://WWW.JIANSHU.COM/P/1E3B5B507771》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333912A (zh) * | 2019-07-11 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 一种小程序数据预取的方法、装置及计算机可读存储介质 |
CN110888740A (zh) * | 2019-11-22 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 小程序的增量内存确定方法、装置、设备及存储介质 |
CN110888740B (zh) * | 2019-11-22 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 小程序的增量内存确定方法、装置、设备及存储介质 |
CN111026462A (zh) * | 2019-12-10 | 2020-04-17 | 百度在线网络技术(北京)有限公司 | 小程序控制方法、装置、设备和介质 |
CN111026462B (zh) * | 2019-12-10 | 2023-08-29 | 百度在线网络技术(北京)有限公司 | 小程序控制方法、装置、设备和介质 |
CN111209033A (zh) * | 2020-01-10 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 小程序包的下载方法及相关设备 |
CN111209033B (zh) * | 2020-01-10 | 2024-01-12 | 百度在线网络技术(北京)有限公司 | 小程序包的下载方法及相关设备 |
CN113377504A (zh) * | 2020-03-10 | 2021-09-10 | 成都龙兵科技有限公司 | 一种小程序的后台切换管理系统 |
CN113434222A (zh) * | 2021-06-30 | 2021-09-24 | 青岛海尔科技有限公司 | 应用程序的控制方法、装置、存储介质及电子装置 |
CN113434222B (zh) * | 2021-06-30 | 2023-06-09 | 青岛海尔科技有限公司 | 应用程序的控制方法、装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109726076B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726076A (zh) | 一种小程序生命周期管理方法和系统 | |
CN110368686A (zh) | 云游戏实现方法、装置、云端服务器、终端及介质 | |
CN108462760A (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN106104484A (zh) | 基于因设备而异或因用户而异的资源使用简档的资源管理 | |
CN106104485A (zh) | 针对多进程应用的动态资源管理 | |
US10372639B2 (en) | System and method to avoid SMBus address conflicts via a baseboard management controller | |
US20090157865A1 (en) | System and method of managing network connections using a link policy | |
US20190012005A1 (en) | Method and device for asynchronous touch and asynchronous display on dual-screen and computer readable storage medium | |
CN102043645B (zh) | 一种加载插件的方法及装置 | |
CN108563469A (zh) | 页面加载方法、装置、存储介质及终端设备 | |
CN109918203A (zh) | 接入服务器内存管理优化方法、接入服务器及通信系统 | |
US11593052B1 (en) | Keyboard/video/monitor switch for servers without integrated video controller | |
CN110502345A (zh) | 一种过载保护方法、装置、计算机设备及存储介质 | |
CN111338745A (zh) | 一种虚拟机的部署方法、装置及智能设备 | |
CN108369538A (zh) | 下载视觉资产 | |
CN109582320A (zh) | 写码方法及终端设备 | |
CN109407953A (zh) | 应用查找方法、装置、计算机装置及存储介质 | |
US20130073914A1 (en) | Storage management systems and methods | |
US9384525B2 (en) | Systems and methods for providing pre-operating system and post-operating system remote management of information handling system | |
CN111459609A (zh) | 虚拟机安全防护方法、装置及电子设备 | |
US10223293B2 (en) | Access of virtual machines to storage area networks | |
CN103064702A (zh) | 应用程序提供方法及管理节点设备 | |
US20210271619A1 (en) | System and method for overcoming in-band interrupt starvation with dynamic address remapping | |
US11150718B2 (en) | System and method for stepwise enablement of a cache memory in an information handling system | |
CN108366298A (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 |