CN111597027A - 应用程序的启动方法、装置、设备及存储介质 - Google Patents

应用程序的启动方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111597027A
CN111597027A CN202010415301.6A CN202010415301A CN111597027A CN 111597027 A CN111597027 A CN 111597027A CN 202010415301 A CN202010415301 A CN 202010415301A CN 111597027 A CN111597027 A CN 111597027A
Authority
CN
China
Prior art keywords
application program
auxiliary
container
application
accessory
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
CN202010415301.6A
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010415301.6A priority Critical patent/CN111597027A/zh
Publication of CN111597027A publication Critical patent/CN111597027A/zh
Priority to EP21157904.0A priority patent/EP3812898A3/en
Priority to US17/180,470 priority patent/US20210191739A1/en
Priority to KR1020210036064A priority patent/KR102546645B1/ko
Priority to JP2021066072A priority patent/JP7090774B2/ja
Pending legal-status Critical Current

Links

Images

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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • 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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了应用程序的启动方法、装置、设备及存储介质,涉及人工智能领域。具体实现方案为:该方法应用于宿主应用程序,宿主应用程序承载有至少一个附属应用程序,该方法包括:若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对附属应用程序进行预处理;响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。能够将不同的附属应用程序的预处理过程通过运行容器完全物理隔离,无法相互干扰,所以保护了附属应用程序间的运行沙箱机制,实现了在运行容器中对对应附属应用程序的自由配置,提高了附属应用程序预处理时的安全。提高了附属应用程序打开的速度,避免启动性能的退化。

Description

应用程序的启动方法、装置、设备及存储介质
技术领域
本申请涉及到数据处理技术领域,尤其涉及人工智能技术。
背景技术
随着移动互联网的发展,各种应用程序(简称:应用APP)也应运而生。由于智能小程序是一种不需要用户下载安装就可使用的应用,所以在很多应用APP中配置有各种各样的智能小程序。应用APP为宿主应用程序,智能小程序为附属应用程序。
现有技术中,为了实现对附属应用程序的秒开,需要提前对附属应用程序进行预加载和业务数据的预下载,预加载和业务数据的预下载即为对附属应用程序的预处理。
但是现有技术中在进行各个附属应用程序的预处理时,是一个单线程任务。所以若在一个附属应用程序预加载时,用户打开了另一个附属应用程序,则必须在第一个附属应用程序预加载完成后,才能进行另一个附属应用程序的打开,导致性能退化。而且若采用单线程任务预加载多个附属应用程序,破坏了各个附属应用程序间的运行沙箱机制,使各个附属应用程序间互相干扰,进而无法面向广大开发者对附属应用程序进行自由配置,具有较大的安全风险。
发明内容
本申请实施例提供一种应用程序的启动方法、装置、设备及存储介质,解决了现有技术中采用单线程任务预加载多个附属应用程序,破坏了各个附属应用程序间的运行沙箱机制,使各个附属应用程序间互相干扰,具有较大的安全风险的技术问题。
本申请实施例第一方面提供一种应用程序的启动方法,所述方法应用于宿主应用程序,所述宿主应用程序承载有至少一个附属应用程序,所述方法包括:
若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对所述附属应用程序进行预处理;
响应于对所述附属应用程序的选择操作,前台开启对应的附属应用程序。
本申请实施例第二方面提供一种应用程序的启动装置,所述装置应用于宿主应用程序,所述宿主应用程序承载有至少一个附属应用程序,所述装置包括:包括:
程序预处理模块,用于若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对所述附属应用程序进行预处理;
程序开启模块,用于响应于对所述附属应用程序的选择操作,前台开启对应的附属应用程序。
本申请实施例第三方面提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够第一方面中任一项所述的方法。
本申请实施例第四方面提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面任一项所述的方法。
本申请实施例第五方面提供一种计算机程序,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如第一方面所述的方法。
由于在对附属应用程序的预处理时,在后台采用对应的运行容器对附属应用程序进行预处理,能够将不同的附属应用程序的预处理过程通过运行容器完全物理隔离,无法相互干扰,所以保护了附属应用程序间的运行沙箱机制,实现了在运行容器中对对应附属应用程序的自由配置,提高了附属应用程序预处理时的安全。并且每个运行容器为一个独立的单线程任务,所以在一个附属应用程序在对应运行容器中预加载时,若用户打开了另一个附属应用程序,也能够在对应的运行容器中直接打开,不必等待一个附属应用程序预加载完后才进行该附属应用程序的打开,提高了附属应用程序打开的速度,避免启动性能的退化。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是可以实现本申请实施例的应用程序的启动方法的第一应用场景图;
图2是可以实现本申请实施例的应用程序的启动方法的第二种应用场景图;
图3是根据本申请第一实施例提供的应用程序的启动方法的流程示意图;
图4是根据本申请第二实施例提供的应用程序的启动方法的流程示意图;
图5是根据本申请第三实施例提供的应用程序的启动方法的流程示意图;
图6为根据本申请第四实施例提供的应用程序的启动装置的结构示意图;
图7为根据本申请第五实施例提供的应用程序的启动装置的结构示意图;
图8是用来实现本申请实施例的应用程序的启动方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。由于智能小程序是一种不需要用户下载安装就可使用的应用,所以在很多应用APP中承载有各种各样的智能小程序。承载的智能小程序为附属应用程序,应用APP为宿主应用程序。现有技术中,为了在用户开启宿主应用程序后,触发对附属应用程序开启时,实现对附属应用程序的秒开,需要对附属应用程序进行预处理。对附属应用程序的预处理包括对附属应用程序的预加载和业务数据的预下载。现有技术中,在面对多个附属应用程序时,采用单线程任务进行多个附属应用程序的预处理。那么在面对一个附属应用程序预加载时,用户触发了对另一个附属应用程序的启动,则必须在第一个附属应用程序预加载完成后,才能进行另一个附属应用程序的打开,导致性能退化。而且若采用单线程任务预加载多个附属应用程序,破坏了各个附属应用程序间的运行沙箱机制,使各个附属应用程序间互相干扰,进而无法面向广大开发者对附属应用程序进行自由配置,具有较大的安全风险。例如:如果第一附属应用程序开发者在预加载阶段配置了定时器,当用户启动第二附属应用程序时,由于第一附属应用程序的定时器前端框架无法统一销毁,导致第一附属应用程序的预加载过程会干扰用户打开的第二附属应用程序,破坏了各个附属应用程序间的运行沙箱机制。
所以在面对现有技术中的单线程任务进行多个附属应用程序的预处理问题时,发明人在研究中发现,由于运行容器能够很好地对不同任务进行物理隔离,并且每个运行容器在运行时都是一个独立的单线程任务,能够独立运行,所以可将多个附属应用程序的预处理过程分别部署在不同的运行容器中,若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对附属应用程序进行预处理,响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。
发明人基于上述的创造性发现,提出了本申请的技术方案。下面对本申请实施例提供的应用程序的启动方法的应用场景进行介绍。
如图1所示,本申请实施例的应用场景可以为搜索场景。具体地,在电子设备中搭载有宿主应用程序,在宿主应用程序中搭载有至少一个附属应用程序。在进入到宿主应用程序中,在宿主应用程序的显示区域中可设置有搜索框,用户通过在搜索框中输入搜索关键词触发搜索请求,如搜索关键词为“影响”。宿主应用程序根据搜索请求,搜索资源,并将搜索出的资源显示在显示区域的资源结果页面。若确定在资源结果页面中包括至少一个附属应用程序。则确定满足该至少一个附属应用程序的预处理条件,则在后台中预先创建了对应的运行容器。如在图2中预先创建了两个运行容器。一个为第一运行容器,一个为第二运行容器。则在后台中采用对应的运行容器对附属应用程序进行预处理。如在图2中,采用第一运行容器对第一附属应用程序进行预处理,采用第二运行容器对第二附属程序进行预处理。其中第一附属应用程序为“xx百科”,第二附属应用程序为“xx音乐”。在采用运行容器对附属应用程序进行预处理后,在运行容器中包括了附属应用程序的启动显示页面。则若接收到用户对某一附属应用程序的选择操作,如点击操作,则宿主应用程序在前台开对对应的附属应用程序,以使附属应用程序的启动显示页面进行显示。
如图2所示,本申请实施例的应用场景还可以为信息流推送场景。具体地,在电子设备中搭载有宿主应用程序,在宿主应用程序中搭载有至少一个附属应用程序。在进入到宿主应用程序中后,在宿主应用程序的显示区域中显示经过信息流推荐的资源结果页面,该推荐的资源结果页面显示的资源可根据用户行为信息,历史浏览信息等进行推荐的资源。若确定在资源结果页面中包括至少一个附属应用程序。则确定满足该至少一个附属应用程序的预处理条件,在后台中预先创建了对应的运行容器。与搜索场景类似,如在图3中预先创建了两个运行容器。一个为第一运行容器,一个为第二运行容器。则在后台中采用对应的运行容器对附属应用程序进行预处理。示例性的,采用第一运行容器对第一附属应用程序进行预处理,采用第二运行容器对第二附属程序进行预处理。其中第一附属应用程序为“xx旅游”,第二附属应用程序为“x团”。在采用对应的运行容器对附属应用程序进行预处理后,在对应的运行容器中包括了附属应用程序的启动显示页面。则若接收到用户对某一附属应用程序的选择操作,如点击操作,则宿主应用程序在前台开对对应的附属应用程序,以使附属应用程序的启动显示页面进行显示。
可以理解的是,本申请实施例提供的应用程序的启动方法还可以应用在其他应用场景中,本实施例中对此不作限定。
以下将参照附图来具体描述本申请的实施例。
实施例一
图3是根据本申请第一实施例提供的应用程序的启动方法的流程示意图,如图3所示,本申请实施例的执行主体为应用程序的启动装置,该应用程序的启动装置可以应用于宿主应用程序中,宿主应用程序搭载在电子设备中。在宿主应用程序中承载有至少一个附属应用程序,则本实施例提供的应用程序的启动方法包括以下几个步骤。
步骤101,若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对附属应用程序进行预处理。
本实施例中,由于在宿主应用应用程序中承载了至少一个附属应用程序,所以在用户打开宿主应用程序后,为了在满足附属应用程序启动条件下实现附属应用程序的秒开,就可在用户打开宿主应用程序后在后台创建多个运行容器,每个运行容器在运行时是一个单线程任务,不同运行容器间进行了物理隔离,不会互相干扰。
然后监测是否满足至少一个附属应用程序的预处理条件,若满足某附属应用程序的预处理条件,则在后台采用对应的运行容器对该附属应用程序进行预处理。
其中,宿主应用程序对附属应用程序的预处理过程包括附属应用程序的预加载过程。以及附属应用程序对其业务数据的预下载过程,并在下载完业务数据后,附属应用程序可根据业务数据渲染生成对应附属应用程序的启动显示页面。
所以本实施例中,宿主应用程序监测是否满足附属应用程序的预处理条件时,监测是否满足附属应用程序的预加载条件。若满足附属应用程序的预加载条件,则在后台获取对应的运行容器,在运行容器中对附属应用程序进行预加载。在对应的运行容器中预加载完附属应用程序后,附属应用程序监测是否满足其业务数据的预下载条件,若确定满足其业务数据的预下载条件,则在对应的运行容器中对业务数据进行预下载,并在运行容器中根据业务数据渲染生成对应附属应用程序的启动显示页面,以使宿主应用程序确定满足附属应用程序的开启条件时,从对应运行容器中获取该附属应用程序的启动显示页面,并在附属应用程序的显示区域显示该启动显示页面。
步骤102,响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。
本实施例中,在后台对应的运行容器中完成对应附属应用程序的预处理后,若用户触发了对某一附属应用程序的选择操作,如点击该附属应用程序的图标,则响应于对该附属应用程序的选择操作,从对应的运行容器中获取该附属应用程序的启动显示页面,并在前台的显示区域显示该启动显示页面,以开启对应的附属应用程序。
本实施例提供的应用程序的启动方法,通过若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对附属应用程序进行预处理;响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。由于在对附属应用程序的预处理时,在后台采用对应的运行容器对附属应用程序进行预处理,能够将不同的附属应用程序的预处理过程通过运行容器完全物理隔离,无法相互干扰,所以保护了附属应用程序间的运行沙箱机制,实现了在运行容器中对对应附属应用程序的自由配置,提高了附属应用程序预处理时的安全。并且每个运行容器为一个独立的单线程任务,所以在一个附属应用程序在对应运行容器中预加载时,若用户打开了另一个附属应用程序,也能够在对应的运行容器中直接打开,不必等待一个附属应用程序预加载完后才进行该附属应用程序的打开,提高了附属应用程序打开的速度,避免启动性能的退化。
实施例二
图4是根据本申请第二实施例提供的应用程序的启动方法的流程示意图,如图4所示,本实施例提供的应用程序的启动方法,是在本申请第一实施例提供的应用程序的启动方法的基础上,对步骤101-步骤102的进一步细化。并且还包括了创建运行容器的步骤,销毁未启动的附属应用程序对应的运行容器,以销毁未启动的附属应用程序的步骤,以及若监测到对开启的附属应用程序的关闭操作,则销毁执行关闭操作的附属应用程序对应的运行容器的步骤。则本实施例提供的应用程序的启动方法包括以下步骤。
步骤201,监测是否满足运行容器创建条件。
本实施例中,由于在宿主应用应用程序中承载了至少一个附属应用程序,所以作为一种可选实施方式,本实施例中,监测是否满足运行容器创建条件时,监测是否启动宿主应用程序,若确定启动宿主应用程序,则确定满足运行容器创建条件;若确定未启动宿主应用程序,则确定不满足运行容器创建条件。
其中,在监测是否启动宿主应用程序时,可通过监测在进程中是否包括宿主应用程序的方式来监测,或者监测用户是否打开宿主应用程序客户端的方式来监测,本实施例中,对此不作限定。
本实施例中,在监测是否满足运行容器创建条件时,通过监测是否启动宿主应用程序的方式来进行,若确定启动宿主应用程序,则确定满足运行容器创建条件,若确定未启动宿主应用程序,则确定不满足运行容器创建条件。能够使创建运行容器的过程尽量提前,为附属应用程序的预处理过程提供充分的时间,进而能够在启动附属应用程序时实现附属应用程序的秒开。
步骤202,若确定满足运行容器创建条件,则在后台创建第一运行容器和第二运行容器。
本实施例中,若确定满足运行容器创建条件,则在后台创建两个运行容器,一个为第一运行容器,一个为第二运行容器。
其中,第一运行容器,是对在先满足预处理条件的附属应用程序进行预处理的运行容器,第二运行容器,是对在后满足预处理条件的另一附属应用程序进行预处理的运行容器。
本实施例中,在满足运行容器创建条件时,在后台创建第一运行容器和第二运行容器,能够在将不同的附属应用程序的预处理过程通过对应运行容器完全物理隔离的情况下,也能够尽量避免由于运行容器的过多使内存资源过多消耗的情况发生。
步骤203,若确定在显示区域内的资源结果页面中包括第一附属应用程序和第二附属应用程序时,则确定满足第一附属应用程序和第二附属应用程序的预加载条件。
其中,在资源结果页面中第一附属应用程序位于第二附属应用程序前面。
可选地,本实施例中,无论在搜索场景下还是下信息流推荐场景下,在宿主应用程序的显示区域内均会显示资源结果页面。对资源结果页面进行检测,若确定资源结果页面中先后显示了两个附属应用程序,分别为第一附属应用程序和第二附属应用程序,则确定满足了第一附属应用程序和第二附属应用程序的预加载条件。
步骤204,在后台采用第一运行容器对第一附属应用程序进行预加载,并采用第二运行容器对第二附属应用程序进行预加载。
本实施例中,若确定满足了第一附属应用程序的预加载条件,则在后台采用第一运行容器对第一附属应用程序进行预加载。首先在第一运行容器中,对第一附属应用程序的应用框架进行预加载,在对应用框架预加载完后,在该应用框架下,从第一附属应用程序服务器下载第一附属应用程序的安装包,在第一运行容器中预加载安装包中的设定启动文件。
同理,若确定满足了第二附属应用程序的预加载条件,则在后台采用第二运行容器对第二附属应用程序进行预加载。首先在第二运行容器中,对第二附属应用程序的应用框架进行预加载,在对应用框架预加载完后,在该应用框架下,从第二附属应用程序服务器下载第二附属应用程序的安装包,在第二运行容器中预加载安装包中的设定启动文件。
其中,预加载后的附属应用程序中包括对应的目标函数,目标函数用于指示对应的附属应用程序确定满足业务数据下载条件时,在对应运行容器中预下载对应附属应用程序的业务数据,并在对应运行容器中渲染生成对应附属应用程序的启动显示页面。
具体地,本实施例中,在第一运行容器中预加载完第一附属应用程序后,在预加载后的第一附属应用程序中包括对应的目标函数,该目标函数为第一目标函数。该第一目标函数在第一附属应用程序处于预取生命周期时被触发执行,以使在确定第一附属应用程序的环境描述信息满足预设条件时,确定满足第一附属应用程序满足业务数据下载条件,在主用运行容中预下载第一附属应用程序的业务数据。
同理,在第二运行容器中预加载完第二附属应用程序后,在预加载后的第二附属应用程序中包括对应的目标函数,该目标函数为第二目标函数。该第二目标函数在第二附属应用程序处于预取生命周期时被触发执行,以使在确定第二附属应用程序的环境描述信息满足预设条件时,确定满足第二附属应用程序满足业务数据下载条件,在备用运行容中预下载第二附属应用程序的业务数据。
其中,预取生命周期可以为附属应用程序在显示区域内处于滑动状态,以及附属应用端在显示区域内处于悬停状态以及附属应用端在显示区域内处于点击状态等。环境描述信息可以为附属应用程序的当前展现状态、附属应用程序的入口信息或附属应用程序的待展示页面的页面描述信息等。
其中,预设条件可以为附属应用程序的当前展现状态为预设展现状态。例如,预设条件是附属应用程序的当前展现状态为点击状态。或者预设条件还可以是附属应用程序的入口信息为预设入口信息。例如,预设条件是附属应用程序的入口信息为搜索场景。或者预设条件还可以是附属应用程序的待展示页面的页面描述信息为预设页面描述信息。例如,预设条件是附属应用端的待展示页面的页面描述信息为一级页面。
以第一附属应用程序在第一运行容器中进行业务数据的预下载为例进行更为详细的说明。具体地,本实施例中,在第一运行容器中,预加载后的第一附属应用程序对预取生命周期进行检测,若检测到当前第一附属应用程序处于预取生命周期时,则触发执行第一附属应用程序中包括的目标函数,将第一附属应用程序的环境描述信息输入到目标函数中,目标函数预先定义了预设条件,判断输入的环境描述信息是否满足预设条件,若输入的环境描述信息满足预设条件,则确定满足了业务数据下载条件,则构造业务数据获取请求,发送至第一附属应用程序服务器,然后接收第一附属应用程序服务器反馈的第一附属应用程序的业务数据,并在主用容器中对第一附属应用程序的业务数据进行存储,根据第一附属应用程序的业务数据渲染生成对应附属应用程序的启动显示页面。
步骤205,响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。
本实施例中,步骤205的实现方式与本申请第一实施例中的步骤102的实现方式类似,在此不再一一赘述。
步骤206,销毁未启动的附属应用程序对应的运行容器,以销毁未启动的附属应用程序。
可选地,本实施例中,若启动第一附属应用程序,则说明第二附属应用程序不会被启动,则为了减少内存资源的消耗,则销毁第二附属应用程序对应的第二运行容器,在销毁第二运行容器时,也销毁了第二附属应用程序在预处理阶段的数据。
或者可选地,若启动第二附属应用程序,则说明第一附属应用程序不会被启动,则为了减少内存资源的消耗,则销毁第一附属应用程序对应的第一运行容器,在销毁第一运行容器时,也销毁了第一附属应用程序在预处理过程的数据。
步骤207,若监测到对开启的附属应用程序的关闭操作,则销毁执行关闭操作的附属应用程序对应的运行容器。
可选地,本实施例中,在用户开启某一附属应用程序后,对该附属应用程序的状态进行监测,若监测到用户对该附属应用程序执行了关闭操作,则说明不再会对该附属应用程序进行开启,则为了减少内存资源的消耗,则销毁执行关闭操作的附属应用程序对应的运行容器,以销毁执行关闭操作的附属应用程序在预处理过程的数据。
可以理解的是,在销毁完执行关闭操作的附属应用程序对应的运行容器后,再创建一个对应的空闲运行容器,以随时保证存在两个运行容器,并且至少有一个运行容器处于空闲状态。对其他附属应用程序进行预处理,不仅实现各个附属应用程序间的物理隔离,而且尽量保证各个附属应用程序启动时实现秒开。
步骤208,监测在显示区域内是否存在对资源结果页面的更新操作,若是,则执行步骤209,否则结束。
步骤209,创建另一运行容器。
可选地,本实施例中,在对开启的附属应用程序进行关闭后,若用户对显示区域内的资源结果页面更新操作,则说明用户有开启更新后的资源结果页面中显示的其他附属应用程序的可能,所以若监测到在显示区域内存在对资源结果页面的更新操作,则创建另一运行容器,该运行容器可用于对更新后的资源结果页面中显示的其他附属应用程序进行预处理。以保证至少有一个运行容器处于空闲状态,对其他附属应用程序进行预处理,不仅实现各个附属应用程序间的物理隔离,而且尽量保证各个附属应用程序启动时实现秒开。
其中,用户对显示区域内的资源结果页面更新操作可以为用户对显示区域内的资源结果页面的滑动操作,或其他更新操作,本实施例中对此不作限定。
本实施例提供的应用程序的启动方法,在确定在显示区域内的资源结果页面中同时包括第一附属应用程序和第二附属应用程序时,确定满足至少一个附属应用程序的预处理条件,在后台采用第一运行容器对第一附属应用程序进行预加载,并采用第二运行容器对第二附属应用程序进行预加载,能够满足在资源结果页面中同时显示两个附属应用程序时在后台采用对应运行容器对对应的附属应用程序进行预处理的场景。
实施例三
图5为根据本申请第三实施例提供的应用程序的启动方法的流程图,如图5所示,本实施例提供的应用程序的启动方法在本申请第一实施例的基础上,对步骤101-步骤102的进一步细化。与第二实施例不同之处在于步骤101具体细化步骤的不同。并且与第二实施例类似,也包括了创建运行容器的步骤,销毁未启动的附属应用程序对应的运行容器,以销毁未启动的附属应用程序的步骤,以及若监测到对开启的附属应用程序的关闭操作,则销毁执行关闭操作的附属应用程序对应的运行容器的步骤。则本实施例提供的应用程序的启动方法包括以下步骤。
步骤301,监测是否满足运行容器创建条件。
步骤302,若确定满足运行容器创建条件,则在后台创建第一运行容器和第二运行容器。
本实施例中,步骤301-步骤302的实现方式与本申请第二实施例中的步骤201-步骤202的实现方式类似,在此不再一一赘述。
步骤303,若确定在显示区域内的资源结果页面中包括第一附属应用程序,则确定满足第一附属应用程序的预加载条件。
可选地,本实施例中,在显示区域的当前资源结果页面中只包括了第一附属应用程序,则说明当前只满足第一附属应用程序的预加载条件,则当前只执行对在后台采用第一运行容器对第一附属应用程序进行预加载的步骤。
步骤304,在后台采用第一运行容器对第一附属应用程序进行预加载。
本实施例中,步骤304的实现方式与第二实施例中的步骤204中在后台采用第一运行容器对第一附属应用程序进行预加载的实现方式类似,在此不再一一赘述。
步骤305,响应于在显示区域内对资源结果页面的更新操作,若确定更新后的资源结果页面中包括第二附属应用程序,则确定满足第二附属应用程序的预加载条件。
可选地,本实施例中,在用户对显示区域的资源结果页面进行更新时,若在更新资源结果页面的过程中,更新后的资源结果页面包括了第二附属应用程序,则确定满足第二附属应用程序的预加载条件。
其中,用户对显示区域内的资源结果页面进行更新可以为用户对显示区域内的资源结果页面的滑动,或其他更新操作,本实施例中对此不作限定。
可以理解的是,在更新后的资源结果页面中存在既包括第二附属应用程序又包括第一附属应用程序的情况发生。
步骤306,在后台采用第二运行容器对第二附属应用程序进行预加载。
本实施例中,步骤306的实现方式与第二实施例中的步骤204中在后台采用第二运行容器对第二附属应用程序进行预加载的实现方式类似,在此不再一一赘述。
其中,预加载后的附属应用程序中包括对应的目标函数,目标函数用于指示对应的附属应用程序确定满足业务数据下载条件时,在对应运行容器中预下载对应附属应用程序的业务数据,并在对应运行容器中渲染生成对应附属应用程序的启动显示页面。
步骤307,响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。
步骤308,销毁未启动的附属应用程序对应的运行容器,以销毁未启动的附属应用程序。
步骤309,若监测到对开启的附属应用程序的关闭操作,则销毁执行关闭操作的附属应用程序对应的运行容器。
步骤310,监测在显示区域内是否存在对资源结果页面的更新操作,若是,则执行步骤311,否则结束。
步骤311,创建另一运行容器。
本实施例中,步骤307-步骤311的实现方式与本申请第二实施例中的步骤205-步骤209的实现方式类似,在此不再一一赘述。
本实施例提供的应用程序的启动方法,在确定在显示区域内的资源结果页面中包括第一附属应用程序时,确定满足第一附属应用程序的预加载条件;在后台采用第一运行容器对第一附属应用程序进行预加载;并且响应于在显示区域内对资源结果页面的更新操作,若确定更新后的资源结果页面中包括第二附属应用程序,则确定满足第二附属应用程序的预加载条件;在后台采用第二运行容器对第二附属应用程序进行预加载。满足在对资源结果页面更新时存在两个附属应用程序在后台采用对应运行容器对对应的附属应用程序进行预处理的场景。
需要说明的是,第二实施例和第三实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
实施例四
图6为根据本申请第四实施例提供的应用程序的启动装置的结构示意图,如图6所示,本实施例提供的应用程序的启动装置应用于宿主应用程序,宿主应用程序承载有至少一个附属应用程序,宿主应用程序位于电子设备中。该应用程序的启动装置600包括:程序预处理模块601及程序开启模块602。
其中,程序预处理模块601,用于若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对附属应用程序进行预处理。程序开启模块602,用于响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。
本实施例提供的应用程序的启动装置可以执行图3所示方法实施例的技术方案,其实现原理和技术效果与图3所示方法实施例类似,在此不再一一赘述。
实施例五
图7为根据本申请第五实施例提供的应用程序的启动装置的结构示意图,如图7所示,本实施例提供的应用程序的启动装置700在第四实施例提供的应用程序的启动装置600的基础上,还包括:程序销毁模块701,第二创建模块702及第二创建模块703。
可选地,运行容器包括第一运行容器和第二运行容器。
可选地,程序预处理模块601,具体用于:
若确定在显示区域内的资源结果页面中包括第一附属应用程序和第二附属应用程序时,则确定满足第一附属应用程序和第二附属应用程序的预加载条件,所述资源结果页面中所述第一附属应用程序位于所述第二附属应用程序前面;在后台采用第一运行容器对第一附属应用程序进行预加载,并采用第二运行容器对第二附属应用程序进行预加载。
可选地,程序预处理模块601,具体用于:
若确定在显示区域内的资源结果页面中包括第一附属应用程序,则确定满足第一附属应用程序的预加载条件;在后台采用第一运行容器对第一附属应用程序进行预加载;响应于在显示区域内对资源结果页面的更新操作,若确定更新后的资源结果页面中包括第二附属应用程序,则确定满足第二附属应用程序的预加载条件;在后台采用第二运行容器对第二附属应用程序进行预加载。
其中,预加载后的附属应用程序中包括对应的目标函数,目标函数用于指示对应的附属应用程序确定满足业务数据下载条件时,在对应运行容器中预下载对应附属应用程序的业务数据,并在对应运行容器中渲染生成对应附属应用程序的启动显示页面。
可选地,程序销毁模块701,用于销毁未启动的附属应用程序对应的运行容器,以销毁未启动的附属应用程序。
可选地,第一创建模块702,用于若监测到对开启的附属应用程序的关闭操作,则监测在显示区域内是否存在对资源结果页面的更新操作;若监测到在显示区域内存在对资源结果页面的更新操作,则创建另一运行容器。
可选地,程序销毁模块701,还用于:
销毁执行关闭操作的附属应用程序对应的运行容器。
可选地,第二创建模块703,用于监测是否满足运行容器创建条件;若确定满足运行容器创建条件,则在后台创建第一运行容器和第二运行容器。
可选地,第二创建模块703,在监测是否满足运行容器创建条件时,具体用于:
监测是否启动宿主应用程序;若确定启动宿主应用程序,则确定满足运行容器创建条件;若确定未启动宿主应用程序,则确定不满足运行容器创建条件。
本实施例提供的应用程序的启动装置可以执行图4-图5所示方法实施例的技术方案,其实现原理和技术效果与图4-图5所示方法实施例类似,在此不再一一赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的应用程序的启动方法的电子设备的框图。电子设备旨在各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的应用程序的启动方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的应用程序的启动方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的应用程序的启动方法对应的程序指令/模块(例如,附图6所示的程序预处理模块601及程序开启模块602)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的应用程序的启动方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据图8的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至图8的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
图8的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的语音、数字或字符信息,以及产生与图8的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括语音播放设备、显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,由于若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对附属应用程序进行预处理;响应于对附属应用程序的选择操作,前台开启对应的附属应用程序。由于在对附属应用程序的预处理时,在后台采用对应的运行容器对附属应用程序进行预处理,能够将不同的附属应用程序的预处理过程通过运行容器完全物理隔离,无法相互干扰,所以保护了附属应用程序间的运行沙箱机制,实现了在运行容器中对对应附属应用程序的自由配置,提高了附属应用程序预处理时的安全。并且每个运行容器为一个独立的单线程任务,所以在一个附属应用程序在对应运行容器中预加载时,若用户打开了另一个附属应用程序,也能够在对应的运行容器中直接打开,不必等待一个附属应用程序预加载完后才进行该附属应用程序的打开,提高了附属应用程序打开的速度,避免启动性能的退化。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (22)

1.一种应用程序的启动方法,其特征在于,所述方法应用于宿主应用程序,所述宿主应用程序承载有至少一个附属应用程序,所述方法包括:
若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对所述附属应用程序进行预处理;
响应于对所述附属应用程序的选择操作,前台开启对应的附属应用程序。
2.根据权利要求1所述的方法,其特征在于,所述运行容器包括第一运行容器和第二运行容器。
3.根据权利要求2所述的方法,其特征在于,所述若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对所述附属应用程序进行预处理,包括:
若确定在显示区域内的资源结果页面中包括第一附属应用程序和第二附属应用程序时,则确定满足第一附属应用程序和第二附属应用程序的预加载条件,所述资源结果页面中所述第一附属应用程序位于所述第二附属应用程序前面;
在后台采用第一运行容器对所述第一附属应用程序进行预加载,并采用第二运行容器对所述第二附属应用程序进行预加载。
4.根据权利要求2所述的方法,其特征在于,所述若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对所述附属应用程序进行预处理,包括:
若确定在显示区域内的资源结果页面中包括第一附属应用程序,则确定满足第一附属应用程序的预加载条件;
在后台采用第一运行容器对所述第一附属应用程序进行预加载;
响应于在显示区域内对资源结果页面的更新操作,若确定更新后的资源结果页面中包括第二附属应用程序,则确定满足第二附属应用程序的预加载条件;
在后台采用第二运行容器对所述第二附属应用程序进行预加载。
5.根据权利要求3或4所述的方法,其特征在于,预加载后的附属应用程序中包括对应的目标函数,所述目标函数用于指示所述对应的附属应用程序确定满足业务数据下载条件时,在对应运行容器中预下载对应附属应用程序的业务数据,并在所述对应运行容器中渲染生成对应附属应用程序的启动显示页面。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述响应于对所述附属应用程序的选择操作,前台开启对应的附属应用程序之后,还包括:
销毁未启动的附属应用程序对应的运行容器,以销毁所述未启动的附属应用程序。
7.根据权利要求6所述的方法,其特征在于,还包括:
若监测到对开启的附属应用程序的关闭操作,则监测在显示区域内是否存在对资源结果页面的更新操作;
若监测到在显示区域内存在对资源结果页面的更新操作,则创建另一运行容器。
8.根据权利要求7所述的方法,其特征在于,所述若监测到对开启的附属应用程序的关闭操作,则还包括:
销毁执行关闭操作的附属应用程序对应的运行容器。
9.根据权利要求2所述的方法,其特征在于,所述若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对所述附属应用程序进行预处理之前,还包括:
监测是否满足运行容器创建条件;
若确定满足运行容器创建条件,则在后台创建第一运行容器和第二运行容器。
10.根据权利要求9所述的方法,其特征在于,所述监测是否满足运行容器创建条件,包括:
监测是否启动宿主应用程序;
若确定启动宿主应用程序,则确定满足运行容器创建条件;
若确定未启动宿主应用程序,则确定不满足运行容器创建条件。
11.一种应用程序的启动装置,其特征在于,所述装置应用于宿主应用程序,所述宿主应用程序承载有至少一个附属应用程序,所述装置包括:包括:
程序预处理模块,用于若确定满足至少一个附属应用程序的预处理条件,则在后台采用对应的运行容器对所述附属应用程序进行预处理;
程序开启模块,用于响应于对所述附属应用程序的选择操作,前台开启对应的附属应用程序。
12.根据权利要求11所述的装置,其特征在于,所述运行容器包括第一运行容器和第二运行容器。
13.根据权利要求12所述的装置,其特征在于,所述程序预处理模块,具体用于:
若确定在显示区域内的资源结果页面中包括第一附属应用程序和第二附属应用程序时,则确定满足第一附属应用程序和第二附属应用程序的预加载条件,所述资源结果页面中所述第一附属应用程序位于所述第二附属应用程序前面;在后台采用第一运行容器对所述第一附属应用程序进行预加载,并采用第二运行容器对所述第二附属应用程序进行预加载。
14.根据权利要求12所述的装置,其特征在于,所述程序预处理模块,具体用于:
若确定在显示区域内的资源结果页面中包括第一附属应用程序,则确定满足第一附属应用程序的预加载条件;在后台采用第一运行容器对所述第一附属应用程序进行预加载;响应于在显示区域内对资源结果页面的更新操作,若确定更新后的资源结果页面中包括第二附属应用程序,则确定满足第二附属应用程序的预加载条件;在后台采用第二运行容器对所述第二附属应用程序进行预加载。
15.根据权利要求13或14所述的装置,其特征在于,预加载后的附属应用程序中包括对应的目标函数,所述目标函数用于指示所述对应的附属应用程序确定满足业务数据下载条件时,在对应运行容器中预下载对应附属应用程序的业务数据,并在所述对应运行容器中渲染生成对应附属应用程序的启动显示页面。
16.根据权利要求11-14任一项所述的装置,其特征在于,还包括:
程序销毁模块,用于销毁未启动的附属应用程序对应的运行容器,以销毁所述未启动的附属应用程序。
17.根据权利要求16所述的装置,其特征在于,还包括:
第一创建模块,用于若监测到对开启的附属应用程序的关闭操作,则监测在显示区域内是否存在对资源结果页面的更新操作;若监测到在显示区域内存在对资源结果页面的更新操作,则创建另一运行容器。
18.根据权利要求17所述的装置,其特征在于,所述程序销毁模块,还用于:
销毁执行关闭操作的附属应用程序对应的运行容器。
19.根据权利要求12所述的装置,其特征在于,还包括:
第二创建模块,用于监测是否满足运行容器创建条件;若确定满足运行容器创建条件,则在后台创建第一运行容器和第二运行容器。
20.根据权利要求19所述的装置,其特征在于,所述第二创建模块,在监测是否满足运行容器创建条件时,具体用于:
监测是否启动宿主应用程序;若确定启动宿主应用程序,则确定满足运行容器创建条件;若确定未启动宿主应用程序,则确定不满足运行容器创建条件。
21.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-10中任一项所述的方法。
CN202010415301.6A 2020-05-15 2020-05-15 应用程序的启动方法、装置、设备及存储介质 Pending CN111597027A (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010415301.6A CN111597027A (zh) 2020-05-15 2020-05-15 应用程序的启动方法、装置、设备及存储介质
EP21157904.0A EP3812898A3 (en) 2020-05-15 2021-02-18 Container-based method for application startup
US17/180,470 US20210191739A1 (en) 2020-05-15 2021-02-19 Application startup method and apparatus, device and storage medium
KR1020210036064A KR102546645B1 (ko) 2020-05-15 2021-03-19 애플리케이션의 작동 방법, 장치, 기기 및 저장매체
JP2021066072A JP7090774B2 (ja) 2020-05-15 2021-04-08 アプリケーションプログラムの起動方法、装置、機器、及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010415301.6A CN111597027A (zh) 2020-05-15 2020-05-15 应用程序的启动方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111597027A true CN111597027A (zh) 2020-08-28

Family

ID=72187161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010415301.6A Pending CN111597027A (zh) 2020-05-15 2020-05-15 应用程序的启动方法、装置、设备及存储介质

Country Status (5)

Country Link
US (1) US20210191739A1 (zh)
EP (1) EP3812898A3 (zh)
JP (1) JP7090774B2 (zh)
KR (1) KR102546645B1 (zh)
CN (1) CN111597027A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817492A (zh) * 2021-01-12 2021-05-18 张宇翔 移动终端中应用程序管理方法及系统
CN113254090A (zh) * 2021-06-04 2021-08-13 深圳市火乐科技发展有限公司 一种应用管理方法、装置及投影设备
CN114398094A (zh) * 2021-12-21 2022-04-26 中国银联股份有限公司 小程序启动方法、装置、设备及计算机可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729240A (zh) * 2013-12-02 2014-04-16 青岛海信电器股份有限公司 应用程序控制方法
CN104838630A (zh) * 2012-10-10 2015-08-12 思杰系统有限公司 基于策略的应用程序管理
US20170147658A1 (en) * 2015-11-19 2017-05-25 Google Inc. Pre-instantiating native applications in background
CN107291495A (zh) * 2017-06-01 2017-10-24 努比亚技术有限公司 一种共享资源加载方法、终端及计算机可读存储介质
CN108776599A (zh) * 2018-05-21 2018-11-09 Oppo广东移动通信有限公司 预加载应用的管理方法、装置、存储介质及智能终端
CN108920202A (zh) * 2018-05-15 2018-11-30 Oppo广东移动通信有限公司 应用预加载管理方法、装置、存储介质及智能终端
CN109753617A (zh) * 2019-01-14 2019-05-14 广州虎牙信息科技有限公司 一种页面显示方法、设备和存储介质
CN110321178A (zh) * 2019-06-28 2019-10-11 百度在线网络技术(北京)有限公司 附属应用端的启动处理方法、装置、设备及存储介质
CN110413921A (zh) * 2019-06-21 2019-11-05 深圳壹账通智能科技有限公司 网页加载方法、装置、计算机设备和存储介质
CN111124391A (zh) * 2019-12-18 2020-05-08 中科全维科技(苏州)有限公司 一种桌面端软件挂件视窗管理方法和系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356368B1 (ko) * 2012-02-24 2014-01-29 주식회사 팬택 어플리케이션 전환 장치 및 방법
IN2013DE00359A (zh) * 2013-02-07 2015-06-19 Samsung India Electronics Pvt Ltd
CN105373419A (zh) * 2014-08-26 2016-03-02 阿里巴巴集团控股有限公司 一种后台应用的操作方法及装置
US9830175B1 (en) * 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9900264B1 (en) * 2017-01-09 2018-02-20 Red Hat, Inc. Adaptive balancing of application programming interface calls of cloud tenants
KR20200042793A (ko) * 2018-10-16 2020-04-24 삼성전자주식회사 복수의 운영체제들을 실행하는 전자장치 및 그 제어 방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104838630A (zh) * 2012-10-10 2015-08-12 思杰系统有限公司 基于策略的应用程序管理
CN103729240A (zh) * 2013-12-02 2014-04-16 青岛海信电器股份有限公司 应用程序控制方法
US20170147658A1 (en) * 2015-11-19 2017-05-25 Google Inc. Pre-instantiating native applications in background
CN107291495A (zh) * 2017-06-01 2017-10-24 努比亚技术有限公司 一种共享资源加载方法、终端及计算机可读存储介质
CN108920202A (zh) * 2018-05-15 2018-11-30 Oppo广东移动通信有限公司 应用预加载管理方法、装置、存储介质及智能终端
CN108776599A (zh) * 2018-05-21 2018-11-09 Oppo广东移动通信有限公司 预加载应用的管理方法、装置、存储介质及智能终端
CN109753617A (zh) * 2019-01-14 2019-05-14 广州虎牙信息科技有限公司 一种页面显示方法、设备和存储介质
CN110413921A (zh) * 2019-06-21 2019-11-05 深圳壹账通智能科技有限公司 网页加载方法、装置、计算机设备和存储介质
CN110321178A (zh) * 2019-06-28 2019-10-11 百度在线网络技术(北京)有限公司 附属应用端的启动处理方法、装置、设备及存储介质
CN111124391A (zh) * 2019-12-18 2020-05-08 中科全维科技(苏州)有限公司 一种桌面端软件挂件视窗管理方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANDRE LUIZ NUNES MARTINS ET AL.: "Improving Application Launch Performance in Smartphones Using Recurrent Neural Network", 《ICMLT \"18: PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON MACHINE LEARNING TECHNOLOGIES》, pages 59 - 60 *
莫太平等: "面向S5PV210嵌入式平台的Android系统移植与优化的研究", 《电视技术》, vol. 40, no. 9, pages 47 - 50 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817492A (zh) * 2021-01-12 2021-05-18 张宇翔 移动终端中应用程序管理方法及系统
CN113254090A (zh) * 2021-06-04 2021-08-13 深圳市火乐科技发展有限公司 一种应用管理方法、装置及投影设备
CN113254090B (zh) * 2021-06-04 2024-05-28 深圳市火乐科技发展有限公司 一种应用管理方法、装置及投影设备
CN114398094A (zh) * 2021-12-21 2022-04-26 中国银联股份有限公司 小程序启动方法、装置、设备及计算机可读存储介质
CN114398094B (zh) * 2021-12-21 2023-08-18 中国银联股份有限公司 小程序启动方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
KR102546645B1 (ko) 2023-06-22
JP7090774B2 (ja) 2022-06-24
EP3812898A2 (en) 2021-04-28
EP3812898A3 (en) 2021-08-25
KR20210038858A (ko) 2021-04-08
US20210191739A1 (en) 2021-06-24
JP2021119479A (ja) 2021-08-12

Similar Documents

Publication Publication Date Title
JP7090774B2 (ja) アプリケーションプログラムの起動方法、装置、機器、及び記憶媒体
US10684838B2 (en) Dynamic application deployment
CN111475259B (zh) 小程序加载方法、装置及电子设备
CN112187581B (zh) 服务信息处理方法、装置、设备及计算机存储介质
CN111158799A (zh) 一种页面渲染方法、装置、电子设备及存储介质
CN110704162B (zh) 物理机共享容器镜像的方法、装置、设备及存储介质
CN111767090A (zh) 小程序的启动方法、装置、电子设备以及存储介质
CN112286656A (zh) 小程序模拟方法、装置、电子设备和计算机可读存储介质
US11294651B2 (en) Code execution method, device, and rendering apparatus
CN111881387A (zh) 用于小程序的数据处理方法、装置、设备和介质
CN103019840A (zh) 用于设置桌面的方法和装置
CN112328301A (zh) 维护运行环境一致性的方法、装置、存储介质及电子设备
US10013259B2 (en) User initiated data rollback using operating system partitions
CN110908675A (zh) 运行环境获取方法、装置和电子设备
CN114416578A (zh) 测试方法和装置
CN111796851A (zh) 客户端基础库更新方法、装置、电子设备和存储介质
CN111913707A (zh) 运行进程的复用方法和装置
CN112379945B (zh) 用于运行应用的方法、装置、设备以及存储介质
JP7147123B2 (ja) ソースチャネル決定方法、装置、機器、プログラム及びコンピューター記憶媒体
CN113051122B (zh) 性能数据获取方法、装置、电子设备和介质
CN112379973A (zh) 重载方法和装置
CN111966421A (zh) 页面组件的运行监测方法、装置、设备和存储介质
CN111611582B (zh) 用于识别页面劫持行为的方法和装置
CN115145730B (zh) 运行监测方法、装置、电子设备和存储介质
CN110851187A (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