CN115114019A - 应用的业务功能使用方法、装置、终端、存储介质及产品 - Google Patents

应用的业务功能使用方法、装置、终端、存储介质及产品 Download PDF

Info

Publication number
CN115114019A
CN115114019A CN202210593877.0A CN202210593877A CN115114019A CN 115114019 A CN115114019 A CN 115114019A CN 202210593877 A CN202210593877 A CN 202210593877A CN 115114019 A CN115114019 A CN 115114019A
Authority
CN
China
Prior art keywords
target
function
virtual page
service
sub
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
CN202210593877.0A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210593877.0A priority Critical patent/CN115114019A/zh
Publication of CN115114019A publication Critical patent/CN115114019A/zh
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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请公开了一种应用的业务功能使用方法、装置、终端、存储介质及产品,属于终端技术领域。该方法包括:在目标应用处于后台运行状态,且不具备采用活动Activity页面进行目标业务功能使用的权限的情况下,接收对目标应用的目标调用请求,目标调用请求用于调用目标应用的目标业务功能在前台使用;确定目标业务功能对应的目标业务容器和目标虚拟页面,且不同虚拟页面用于管理目标应用的不同业务功能;基于目标虚拟页面,在目标业务容器中渲染显示目标业务功能对应的目标功能视图。该方法可以提高目标业务功能的业务隔离性。

Description

应用的业务功能使用方法、装置、终端、存储介质及产品
技术领域
本申请涉及终端技术领域,特别涉及一种应用的业务功能使用方法、装置、终端、存储介质及产品。
背景技术
活动(Activity)页面是安卓(Android)系统中提供的一种用于页面展示的基础形式,每个Activity页面都是全屏大小并且有明确的上下层关系,上层展示Activity页面的时候,无法操作下层的Activity页面。
相关技术中,存在部分特殊应用或特殊服务需要和其他应用页面共同展示,比如,输入法服务,当用户在使用输入法服务在其他应用页面进行输入时,输入法页面(输入法服务对应的输入页面)和被输入页面(其他应用页面)需要共同展示,且操作输入法页面的同时被输入法页面也会响应。
显然,输入法页面和被输入页面并非上下层级的关系,因此,在前台展示输入法应用的输入功能时,无法使用Activity页面。
发明内容
本申请提供了一种应用的业务功能使用方法、装置、终端、存储介质及产品。所述技术方案如下:
根据本申请的一个方面,提供了一种应用的业务功能使用方法,所述方法包括:
在目标应用处于后台运行状态,且不具备采用活动Activity页面进行目标业务功能使用的权限的情况下,接收对所述目标应用的目标调用请求,所述目标调用请求用于调用所述目标应用的所述目标业务功能在前台使用;
确定所述目标业务功能对应的目标业务容器和目标虚拟页面,所述目标业务容器是所述目标业务功能在前台使用时所对应的展示容器,所述目标虚拟页面用于管理所述目标应用的所述目标业务功能,且不同虚拟页面用于管理所述目标应用的不同业务功能;
基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图。
根据本申请的另一方面,提供了一种应用的业务功能使用装置,所述装置包括:
接收模块,用于在目标应用处于后台运行状态,且不具备采用活动Activity页面进行目标业务功能使用的权限的情况下,接收对所述目标应用的目标调用请求,所述目标调用请求用于调用所述目标应用的所述目标业务功能在前台使用;
确定模块,用于确定所述目标业务功能对应的目标业务容器和目标虚拟页面,所述目标业务容器是所述目标业务功能在前台使用时所对应的展示容器,所述目标虚拟页面用于管理所述目标应用的所述目标业务功能,且不同虚拟页面用于管理所述目标应用的不同业务功能;
显示模块,用于基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图。
根据本申请的一个方面,提供了一种终端,终端包括:处理器和存储器,存储器存储有计算机程序,计算机程序由处理器加载并执行以实现如上所述的应用的业务功能使用方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序由处理器加载并执行以实现如上所述的应用的业务功能使用方法。
根据本申请的另一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述应用的业务功能使用方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例中,针对目标应用在后台运行过程中,需要在前台展示和使用目标应用对应的目标业务功能时,无法使用Activity页面展示目标业务功能的场景,通过在目标应用中采用虚拟页面(Spage)模拟Activity页面组织目标业务功能,且由不同虚拟页面来管理需要隔离的不同业务功能;相比于相关技术中,通过手动拼装各个业务功能视图,并将各个业务功能视图的展示逻辑挂载在某个容器节点上,不同业务功能的隔离性较差。本申请使用虚拟页面组织业务,可以使得不同业务功能的切换直接通过虚拟页面切换来实现,为业务功能提供更好的业务隔离性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中业务功能的使用原理示意图;
图2是本申请提供的业务功能的使用原始示意图;
图3示出了本申请一个示例性实施例提供的应用的业务功能使用方法的流程图;
图4示出了本申请另一个示例性实施例提供的应用的业务功能使用方法的流程图;
图5示出了本申请一个示例性实施例示出的虚拟页面在后台的管理过程示意图;
图6示出了本申请一个示例性实施例示出的虚拟页面生命周期与输入法服务的对应关系;
图7示出了本申请另一个示例性实施例提供的应用的业务功能使用方法的流程图;
图8示出了本申请一个示例性实施例示出的输入法应用的不同业务功能的切换示意图;
图9示出了本申请一个示例性实施例示出的虚拟页面和子虚拟页面的嵌套结构示意图;
图10示出了本申请一个示例性实施例示出的虚拟页面框架的结构示意图;
图11示出了本申请一个示例性实施例示出的渲染策略示意图;
图12示出了本申请另一个示例性实施例提供的应用的业务功能使用方法的流程图;
图13示出了本申请一个示例性实施例提供的应用的业务功能使用装置的结构框图;
图14示出了本申请一个示例性实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
相关技术中,存在某些应用或某些服务在后台运行时,需要调用该应用(或服务)的部分业务功能在前台展示的场景,对于这部分业务功能无法使用Activity页面进行业务功能使用;为了使得该业务功能可以在前台展示,开发人员往往通过手动拼装业务功能视图,以及编写各个业务功能视图对应业务展示逻辑的形式实现;如图1所示,对于业务功能102,将业务功能所有的业务功能视图(view)拼装在一起,并编写各个业务功能视图的业务展示逻辑103;进而将业务功能挂载在业务容器101中,实现对业务功能102的前台展示;由于不同业务功能视图的展示逻辑均放在业务展示逻辑103中,导致不同业务功能之间的隔离性较差,且需要编写大量的控制代码,以便在业务容器101中实现对不同业务功能视图的切换。
基于相关技术中业务无法隔离的问题,本申请实施例提供了一种虚拟页面(Spage),通过虚拟页面组织业务功能,可以模拟Activity页面进行业务功能组织的形式。示意性的,如图2所示,可以针对业务功能202所包含的业务类型,对业务功能进行划分,并由不同虚拟页面(Spage)管理不同业务功能和该业务功能对应的业务展示逻辑,可以更好隔离不同业务功能;且在业务容器201中进行业务功能切换时,也仅需要通过切换不同虚拟页面实现,可以进一步降低业务功能切换的复杂性。
请参考图3,其示出了本申请一个示例性实施例提供的应用的业务功能使用方法的流程图,以该方法应用于终端为例进行举例说明,该方法包括:
步骤301,在目标应用处于后台运行状态,且不具备采用活动Activity页面进行目标业务功能使用的权限的情况下,接收对目标应用的目标调用请求,目标调用请求用于调用目标应用的目标业务功能在前台使用。
其中,目标应用是处于后台运行状态时,目标应用的部分业务功能可以在前台展示和使用的应用。比如,目标应用可以是输入法应用,当用户在显示其他显示界面时存在输入需求时,可以调用输入法应用的输入键盘功能在前台进行使用;目标应用也可以是音视频应用,在音视频应用切换到后台播放音视频时,且开启了桌面歌词功能,则在显示其他显示界面时可以调用音视频应用的桌面歌词功能在前台展示;目标应用也可以是运动类应用,运动类应用在后台运行时,可以在前台展示某些监测数据,比如,运动步数展示功能。本申请实施例对目标应用对应的具体应用不构成限定。
由于安卓(Android)系统提供的页面展示形式是以Activity(活动)页面为基础的,且只有目标应用在前台运行时,才具备使用Activity页面进行业务功能使用的权限,因此,对于目标应用处于后台运行状态,但是需要在前台展示目标应用的部分业务功能(或部分应用功能)的场景,是不具备采用Activity页面进行目标业务功能使用的权限的。本申请实施例即主要针对这类业务功能的使用场景,提供了一种可能的功能使用方式。
可选的,目标应用可以是终端启动后常驻后台的应用,比如,输入法应用;也可以是由用户主动开启应用后,将应用切换至后台(非常驻后台的应用),比如,音视频应用。
在一种可能的实施方式中,当目标应用处于后台运行状态的情况下,接收到对目标业务功能的目标调用请求,且目标调用请求用于调用目标应用的目标业务功能(部分业务功能)在前台使用;该目标业务功能是可以在无需将目标应用切换至前台运行,仍然可以在前台展示使用的业务功能,或者目标业务功能是在目标应用处于后台运行状态仍然可以在前台展示使用的业务功能。
以目标应用为输入法应用为例,输入法应用一般常驻后台运行,当用户触发浏览器应用界面的输入框时,则接收到对输入法应用对应键盘输入功能的目标调用请求,调用键盘输入功能在前台使用。
步骤302,确定目标业务功能对应的目标业务容器和目标虚拟页面,目标业务容器是目标业务功能在前台使用时所对应的展示容器,目标虚拟页面用于管理目标应用的目标业务功能,且不同虚拟页面用于管理目标应用的不同业务功能。
相关技术中针对无法使用Activity页面进行业务功能展示的情况,一般通过手动拼装业务功能视图,并将各个业务功能视图的展示逻辑挂载在某个容器节点上,不同业务功能的隔离性较差。针对相关技术中的问题,本申请实施例通过在目标应用中采用虚拟页面(Spage)模拟Activity页面组织业务,由不同虚拟页面来管理需要隔离的不同业务功能,则不同业务功能的切换可以直接通过虚拟页面切换来实现,为业务功能提供更好的隔离性。
以输入法应用为例,在前台展示键盘输入功能时,键盘输入界面往往仅占用部分显示屏的大小。则虚拟页面与Activity页面不同的是,虚拟页面不再是全屏大小,而是挂在某个展示容器中,满足目标业务功能仅占据部分屏幕的需求。
由于目标业务功能在前台展示时,往往不是全屏显示;且目标业务功能可能存在一些个性化的模式,比如,输入法应用的单手模式、悬浮模式、正常模式等不同模式下对应的显示区域和显示位置均存在差异。因此,在一种可能的实施方式中,在前台展示和使用目标业务功能之前,首先需要确定目标业务功能在前台展示时所对应的显示区域和显示大小,而显示区域和显示大小由目标业务功能展示时所占据的业务容器大小决定。也就是说,当接收到对目标业务功能的调用请求后,需要确定目标业务功能在前台使用时所对应的目标业务容器,该目标业务容器用于展示目标业务功能。
由于目标业务功能往往比较复杂,将业务逻辑放在单个虚拟页面中仍然会耦合严重,往往目标业务功能会被划分为不同业务功能,且不同业务功能由不同虚拟页面进行管理,提高业务之间隔离度的同时,也可以避免同一虚拟页面中耦合太多的业务逻辑;而目标业务功能被调用在前台展示时,往往仅需要展示一个虚拟页面对应的功能视图。因此,在一种可能的实施方式中,在接收到对目标业务功能的调用请求后,还需要确定所需展示的目标业务功能对应的目标虚拟页面,以便后续基于该虚拟页面,在目标业务容器中渲染显示目标业务功能对应的目标功能视图。
步骤303,基于目标虚拟页面,在目标业务容器中渲染显示目标业务功能对应的目标功能视图。
在一种可能的实施方式中,当确定出目标业务功能在前台展示时所对应的目标业务容器后,就可以基于虚拟页面中所提供的目标业务功能的展示逻辑,以及展示的业务内容等,渲染生成目标业务功能对应的目标功能视图,进而将目标功能视图挂载在目标业务容器中,即可以实现在前台展示目标业务功能。
综上所述,本申请实施例中,针对目标应用在后台运行过程中,需要在前台展示和使用目标应用对应的目标业务功能时,无法使用Activity页面展示目标业务功能的场景,通过在目标应用中采用虚拟页面(Spage)模拟Activity页面组织目标业务功能,且由不同虚拟页面来管理需要隔离的不同业务功能;相比于相关技术中,通过手动拼装各个业务功能视图,并将各个业务功能视图的展示逻辑挂载在某个容器节点上,不同业务功能的隔离性较差。本申请使用虚拟页面组织业务,可以使得不同业务功能的切换直接通过虚拟页面切换来实现,为业务功能提供更好的业务隔离性。
以输入法为例,存在多个功能视图切换的场景,比如,输入法的不同输入模式(正常模式、单手模式以及悬浮模式)下,分别对应的键盘输入页面以及键盘选择页面等。在使用输入法功能时,可能涉及到多个显示页面(或功能视图)的切换场景,对应由虚拟页面(Spage)框架托管输入法的这部分切换逻辑,从而降低业务开发复杂度。下文实施例主要就虚拟页面框架具体如何为目标业务功能服务进行更详细的说明。
如图4所示,其示出了本申请另一个示例性实施例提供的应用的业务功能使用方法的流程图,以该方法应用于终端为例进行举例说明,该方法包括:
步骤401,在目标应用处于后台运行状态,且不具备采用Activity页面进行目标业务功能使用的权限的情况下,接收对目标应用的目标调用请求。
步骤401的实施方式可以参考上文实施例,本实施例在此不做赘述。
步骤402,确定目标业务功能对应的目标业务容器和第一虚拟页面,第一虚拟页面用于管理目标应用的第一业务功能。
由于目标业务功能往往比较复杂,比如,以输入法应用的输入功能为例,存在多个功能视图切换的场景,比如,输入法的不同输入模式(正常模式、单手模式以及悬浮模式)下,分别对应的键盘输入页面以及键盘选择页面等等;因此,为了更便利的切换不同功能页面,以进一步提高业务隔离度,本实施例中的目标业务功能可以被划分为至少两种业务功能,且不同种类的业务功能由不同虚拟页面进行管理。比如,输入法的键盘输入功能可以由第一虚拟页面管理,而键盘选择功能可以由第二虚拟页面管理,对应的,当用户点击键盘选择功能对应的页面点击返回控件,会返回键盘输入功能对应的页面时,仅需要将第二虚拟页面切换至第一虚拟页面即可,可以极大的简化页面切换逻辑。且在增加新的类型的业务时,也可以通过增加虚拟页面的形式实现,而与现有的虚拟页面无关,降低业务开发的复杂度。
由于目标业务功能对应有多个虚拟页面,而同一时间显示在目标业务容器中的仅可以是单个虚拟页面对应的功能视图,因此,在一种可能的实施方式中,到接收到对目标业务功能对应的调用请求时,可以确定目标业务功能最先需要展示的第一业务功能,从而确定第一业务功能对应的第一虚拟页面,以及目标业务容器。比如,以输入法应用为例,若输入法设置的是悬浮模式,则确定出的目标业务容器的位置和大小即悬浮模式对应的输入法位置和大小,第一虚拟页面即悬浮模式下键盘输入功能对应的页面。
其中,第一业务功能是目标业务功能的一部分业务功能。
步骤403,基于第一虚拟页面,在目标业务容器中渲染显示第一业务功能对应的第一功能视图。
在一种可能的实施方式中,当确定出第一业务功能对应的目标业务容器和第一虚拟页面后,就可以基于第一虚拟页面中所提供的第一业务功能的展示逻辑,以及展示的具体业务内容等,渲染生成第一业务功能对应的第一功能视图,进而将第一功能视图挂载在目标业务容器中,即可以实现在前台展示目标业务功能中的第一业务功能。
步骤404,响应于对第一功能视图的切换操作,确定切换操作所指示切换后的第二虚拟页面,第二虚拟页面用于管理目标应用的第二业务功能。
由于目标业务功能被划分为多种业务功能,且不同业务功能由不同虚拟页面管理;当用户存在不同业务功能的切换需求时,比如,由输入法应用的键盘输入功能切换至键盘选择功能,则需要涉及到不同虚拟页面的切换。在一种可能的实施方式中,当接收到对第一功能视图的切换操作时,可以首先确定切换操作所指示的需要切换至的第二业务功能,从而确定用于管理第二业务功能对应的第二虚拟页面。
以输入法应用为例,第一功能视图可以是键盘输入功能对应的键盘输入视图,对第一功能视图的切换操作可以是对键盘输入视图中键盘选择控件的点击操作(用于切换至键盘选择功能对应的键盘选择视图),该切换操作对应的第二业务功能为键盘选择功能;也可以是对键盘输入视图中表情选择控件的点击操作(用于切换至表情选择功能对应的表情选择视图),该切换操作所指示的第二业务功能为表情选择功能等。
步骤405,基于第二虚拟页面,在目标业务容器中渲染显示第二业务功能对应的第二功能视图。
在一种可能的实施方式中,当确定出切换操作所指示切换后的第二业务功能以及第二虚拟页面后,就可以基于第二虚拟页面中所提供的第二业务功能的展示逻辑,以及展示的具体业务内容等,渲染生成第二业务功能对应的第二功能视图,进而将第二功能视图挂载在目标业务容器中,即可以实现在前台展示目标业务功能中的第二业务功能。
在由第一功能视图切换至第二功能视图的过程中,后台虚拟页面管理时也涉及到第一虚拟页面至第二虚拟页面的切换,则后台如何管理打开的第一虚拟页面和第二虚拟页面,以保证在接收到切换操作后,可以由第二虚拟页面控制展示第二功能视图。由于虚拟页面与Activity页面类似,则在后台管理虚拟页面时,也可以采用与管理Activity页面类似的管理方式:栈管理,后面打开的页面处于最上层,最初打开的页面处于最下层,可能被其他页面遮挡。也就是说,当前在前台显示的功能视图对应的虚拟页面应该位于后台栈结构的栈顶。
在通过栈结构管理虚拟页面时,在一个示例性的例子中,步骤405可以包括步骤405A和步骤405B。
步骤405A,将第二虚拟页面添加至栈结构的栈顶,以使得第一虚拟页面位于栈顶的下方。
可选的,通过栈结构管理虚拟页面,也即通过栈结构管理已创建的多个虚拟页面,使得各个虚拟页面在栈结构中的顺序,与虚拟页面对应功能视图在前台的显示顺序相一致;比如,若虚拟页面A对应的功能视图在前台的最上层显示,则虚拟页面A也位于栈结构的栈顶。
可选的,在未接收到对第一功能视图的切换操作时,也即前台最上层显示第一功能视图的情况下,后台的栈结构中,第一功能视图对应的第一虚拟页面应该位于栈结构的栈顶。
由于位于栈顶的虚拟页面所对应功能视图是位于前台最上层显示的,则基于该栈管理机制,在一种可能的实施方式中,在由第一功能视图切换至第二功能视图时,需要将第二功能视图对应的第二虚拟页面添加至栈结构的栈顶,对应第一虚拟页面移动至栈顶的下方。
如图5所示,其示出了本申请一个示例性实施例示出的虚拟页面在后台的管理过程示意图。切换前虚拟页面1(Spage1)位于栈顶,切换后将虚拟页面2(Spage2)添加至栈顶,Spage1位于Spage2的下方。可选的,Spage3和Spage4均是在Spage1之前添加至栈结构中的。
步骤405B,基于第二虚拟页面,在目标业务容器中渲染显示第二业务功能对应的第二功能视图,第一功能视图被第二功能视图遮挡。
当第二虚拟页面位于栈顶后,即可以基于第二虚拟页面,在目标业务容器中渲染显示第二业务功能对应的第二功能视图。
可选的,由于第一虚拟页面位于第二虚拟页面的下方,对应第一功能视图也切换至第二功能视图的下方,对应第一功能视图可以被第二功能视图所遮挡,前台对第一功能视图不可见。
可选的,在通过栈结构管理虚拟页面过程中,为了便于不同业务功能在不同场景下的切换需求,虚拟页面也对应设置了三种启动模式,包括:standard(新创建模式)、singleTop(栈顶复用模式)以及singleTask(栈内复用模式)。standard(新创建模式)指每次打开虚拟页面都是新的。也就是说,每次使用业务功能时,都需要创建新的虚拟页面。singleTop(栈顶复用模式)指:当重复打开某个业务功能时,如果栈顶为当前业务功能对应的虚拟页面,则可以直接复用该虚拟页面,而无需重新创建虚拟页面;singleTask(栈内复用模式)为:当栈内存在该虚拟页面,即使虚拟页面并非位于栈顶,也可以清除该虚拟页面上层所有的虚拟页面,以使得该虚拟页面位于栈顶;可以用于处理创建多个虚拟页面同时销毁的场景。
可选的,针对栈内复用模式,在一种可能的实施方式种,当由第一功能视图切换至第二功能视图后(第一虚拟页面位于第二虚拟页面的下方,但第一虚拟页面仍然位于栈内),接收到切换回第一功能视图的切换操作,则可以使用栈内复用模式,直接清除栈结构中第一虚拟页面上层的全部虚拟页面,以使得第一虚拟页面位于栈顶,进而基于第一虚拟页面,在目标业务容器中渲染显示第一业务功能对应的第一功能视图。
可选的,针对栈顶复用模式,在一种可能的实施方式中,在接收到对第一虚拟页面的重复创建操作,此时第一虚拟页面位于栈结构的栈顶,则无需重新创建新的第一虚拟页面,可以直接复用栈顶的第一虚拟页面,进而基于第一虚拟页面,在目标业务容器中渲染显示第一业务功能对应的第一功能视图。
可选的,在维护目标业务功能的正常使用时,还涉及到各个虚拟页面的生命周期,比如,虚拟页面的创建时机,以及虚拟页面的销毁时机等。本申请实施例中的虚拟页面框架中还提供有生命周期管理模块,用于管理各个虚拟页面的生命周期。
如表一所示,其示出了虚拟页面所对应的一些生命周期定义(函数)。
表一
Figure BDA0003666808840000111
由表一可知,当存在对目标虚拟页面的创建需求的情况下,可以调用onCreate(创建)函数以创建目标虚拟页面;当存在对目标虚拟页面的关闭需要时,可以调用onDestory(销毁)函数销毁或关闭目标虚拟页面;在存在对目标功能视图的显示需求时,可以调用启动onStart函数显示目标功能视图,以使得目标功能视图处于可见可操作状态;当存在对目标功能视图的停止显示需求时,可以调用onStop(停止)函数停止显示目标功能视图,以使得目标功能视图处于不可见状态且不可操作状态;当目标功能视图由可见不可操作状态切换回可见可操作状态时,可以调用onResume(恢复)函数显示目标功能视图;在目标功能视图由可见可操作状态切换为可见不可操作状态时,可以调用onPause(暂停)函数显示目标功能视图。
由于虚拟页面主要是为了业务功能服务的,则在不使用该业务功能时,则虚拟页面也应该对应销毁,在需要使用业务功能时,对应需要创建虚拟页面,也就是说,虚拟页面的生命周期主要依赖于宿主(目标业务功能)生命周期的变化。比如,以输入法应用为例,输入法功能对应的虚拟页面的创建和销毁应该和输入法业务功能(输入法服务或应用)的开始输入视图和结束输入视图有关,对应虚拟页面的生命周期也应该与这两个函数绑定。
如图6所示,其示出了本申请一个示例性实施例示出的虚拟页面生命周期与输入法服务的对应关系。图6的左侧为输入法服务(输入法应用)的生命周期,右侧为依赖于输入法应用的虚拟页面的生命周期。只有当需要加载输入视图的时候,才会依次调用OnCreate函数、onStart函数以及onResume函数加载显示功能视图;当输入法应用完成输入视图时,会依次调用onPause函数、onStop函数以及onDestory函数销毁功能视图。
可选的,生命周期在同一栈结构内的传递顺序为:生命周期由底层向顶层传递。在一种可能的应用场景中,若栈结构中包含有多个虚拟页面,则在接收到对目标业务功能的关闭操作的情况下,可以按照栈结构由下层至上层依次关闭虚拟页面。比如,以图5为例,若需要关闭目标业务功能,则按照切换后的栈结构,Spage1~Spage4的关闭顺序为:Spage4—Spage3—Spage1—Spage2。
需要说明的是,对目标业务功能的关闭操作指的是停止调用目标应用的目标业务功能在前台使用和展示。以输入法应用为例,当用户完成输入后关闭输入法页面的操作,比如,点击输入法页面的收起控件,或者点击输入法页面的关闭控件等。
本实施例中主要描述了不同虚拟页面之间的页面切换方式,以及后台管理方式。由于虚拟页面对应管理不同业务功能,则使得在切换不同业务功能时,可以直接由不同虚拟页面进行页面切换实现,保证业务隔离度的同时,也可以提高不同业务功能切换的便捷性;此外,采用栈结构管理虚拟页面,使得最后打开的页面位于栈顶,最初打开的页面位于栈底,最初打开的页面被最后打开的页面所遮挡,使得虚拟页面管理与功能视图显示逻辑相符合,更有利于不同业务功能的显示和管理。
可能存在某种业务功能过于复杂,若将同一种业务功能的业务逻辑均放在同一个虚拟页面中,可能仍然会出现耦合严重的现象,比如,输入法应用中的键盘输入功能,可能还包含有九键输入功能、26键输入功能、手写输入功能、语音输入功能、笔画输入功能、五笔输入功能等。则为了避免由于业务过于复杂而影响业务切换效率,在一种可能的实施方式中,可以对每一种业务功能内部进行更细致的划分,得到多种子业务功能,且不同子业务功能也设置由不同子虚拟页面管理。
如图7所示,其示出了本申请另一个示例性实施例提供的应用的业务功能使用方法的流程图,以该方法应用于终端为例进行举例说明,该方法包括:
步骤701,在目标应用处于后台运行状态,且不具备采用Activity页面进行目标业务功能使用的权限的情况下,接收对目标应用的目标调用请求。
步骤701的实施方式可以参考上文实施例,本实施例在此不做赘述。
步骤702,确定目标业务功能对应的目标业务容器、目标虚拟页面以及第一子虚拟页面,第一子虚拟页面用于管理目标业务功能中的第一子业务功能。
为了对每种业务功能进行进一步细化,避免业务复杂而带来的耦合问题,在一种可能的实施方式中,可以将同一虚拟页面所管理的业务功能划分为至少两种子业务功能,并在该虚拟页面中嵌套子虚拟页面,由子虚拟页面管理该虚拟页面的不同子业务功能,也即同一虚拟页面对应的不同子虚拟页面用于管理不同子业务功能。
以输入法应用为例,在前台调用显示输入法功能时,往往最先显示的是:键盘输入功能对应的九键输入功能,则九键输入功能即键盘输入功能的子业务功能。因此,在一种可能的实施方式中,当接收到对目标业务功能的调用请求后,除了确定目标业务功能对应的目标业务容器和目标虚拟页面之外,还需要确定目标虚拟页面中所需要展示的第一子业务功能,以及用于管理第一子业务功能的第一子虚拟页面。
步骤703,基于目标虚拟页面和第一子虚拟页面,在目标业务容器中渲染显示包含第一子功能视图的目标功能视图,第一子功能视图是第一子业务功能对应的功能视图,且第一子功能视图在目标业务容器中的目标子业务容器中显示。
在一种可能的实施方式中,当确定出目标业务功能对应的目标业务容器、目标虚拟页面以及第一子虚拟页面后,即可以基于目标虚拟页面所包含的展示逻辑和展示业务内容,以及第一虚拟页面所包含的展示逻辑和业务内容,渲染生成包含第一子功能视图的目标功能视图,并将该目标功能视图挂载在目标业务容器中显示。
其中,第一子功能视图在目标业务容器中的目标子业务容器中显示。以输入法应用为例,键盘输入页面除了包含有九键输入功能视图外,还包括有其他工具视图等,则由于九键输入功能视图可以切换至其他键盘输入功能视图,比如,26键输入功能视图,则对应的九键输入功能视图所在区域为子业务容器;通过在该子业务容器中挂载不同的输入功能视图,可以实现不同子业务功能的切换。
可选的,目标虚拟页面对应的目标功能视图中可能包含有多个子业务容器。
步骤704,响应于对第一子功能视图的切换操作,将第一子功能视图从目标子业务容器中移除,以及确定切换操作所指示切换后的第二子虚拟页面。
在输入法应用中可能存在一种切换场景,在键盘输入视图中,仅是将键盘输入视图中的九键输入视图切换为26键输入视图,仍然处于键盘输入视图中,针对该切换场景,仅涉及到不同子业务功能的切换,对应不同子虚拟页面的切换。在一种可能的实施方式中,当接收到对第一子功能视图的切换操作时,可以确定切换操作所指示的第二子业务功能,以及第二子业务功能对应的第二子虚拟页面。
为了使得第二子功能视图可以挂载在目标子业务容器中,在接收到对第一子功能视图的切换操作时,还需要将第一子功能视图从目标子业务容器中移除,以便后续可以将第二子功能视图挂载在目标子业务容器中。
步骤705,将第二子虚拟页面对应的第二子功能视图挂载在目标子业务容器上。
在一种可能的实施方式中,当确定出第二子虚拟页面后,即可以将第二子虚拟页面中包含的展示逻辑,以及展示内容,渲染第二子功能视图,以便将渲染出的第二子功能视图挂载在目标子业务容器上。
可选的,同一子业务容器中挂载的多个子虚拟页面同样可以通过栈结构进行管理,为了区分不同虚拟页面对应的栈结构,不同子虚拟页面的栈结构可以称为子栈结构。
基于栈管理机制,位于栈顶的虚拟页面(子虚拟页面)所对应功能视图是位于前台最上层显示的。在一种可能的实施方式中,当接收到切换操作时,可以将第二子虚拟页面添加至子栈结构的栈顶,则第一子虚拟页面位于第二子虚拟页面的下方,对应第二子功能视图遮挡第一子功能视图。
如图8所示,其示出了本申请一个示例性实施例示出的输入法应用的不同业务功能的切换示意图。当用户点击浏览器界面801中的搜索输入框802时,可以调用输入法应用的输入功能在前台展示,对应展示有第一虚拟页面对应的第一功能视图803,该第一功能视图803对应的是输入法功能中的键盘输入功能;第一功能视图803中显示有键盘输入区域807,以及其他的工具栏,比如,键盘选择控件804;当用户需要切换至输入法功能的键盘选择功能时,对应可以点击键盘选择控件804,则切换展示第二虚拟页面对应的第二功能视图805,第二功能视图805中包含有多个可供选择的输入键盘806;可选的,不同输入键盘的切换涉及到第一功能视图803中键盘输入区域807对应的子功能视图的切换,比如,由9键输入功能视图切换至26键输入功能视图。
需要说明的是,子栈结构的管理逻辑与上文实施例中栈结构的管理逻辑类似,不同子虚拟页面的切换过程可以参考上文实施例中不同虚拟页面的切换过程,本实施例在此不做赘述。
如图9所示,其示出了本申请一个示例性实施例示出的虚拟页面和子虚拟页面的嵌套结构示意图。目标业务功能可以被划分为三种业务功能,分别有Spage1、Spage2和Spage3分别管理不同业务功能;对同一种业务功能进一步划分,比如,Spage1所管理的业务功能可以进一步细分为三种子业务功能,分别由子Spage1、子Spage2以及子Spage3管理不同子业务功能;Spage3所管理的业务功能可以进一步细分为三种子业务功能,分别由子Spage4和子Spage5管理不同子业务功能;可选的,对于子Spage所管理的子业务功能也可以进一步细分。
步骤706,在目标子业务容器中渲染显示第二子功能视图。
当第二子功能视图挂载在目标子业务容器上,即可以实现在目标子业务容器中渲染显示第二子功能视图。
可选的,虚拟页面和子虚拟页面之间生命周期的传递顺序为:生命周期由父节点的虚拟页面传递至子节点的虚拟页面;同一栈结构内,生命周期由底层向顶层传递。在一种可能的实施方式中,当接收到对目标虚拟页面的关闭操作,由于目标虚拟页面中的目标子业务容器对应多个子虚拟页面,则可以按照子栈结构由下层至上层依次关闭子虚拟页面。
本实施例中,通过对同一种业务功能进行更细粒度的划分,得到多个子业务功能,且不同子业务功能可以由不同子虚拟页面管理,形成虚拟页面-子虚拟页面的嵌套结构;可以实现对复杂业务功能进行更细致的划分,从而避免复杂业务功能的所有业务逻辑放在同一虚拟页面中导致耦合严重的问题,进一步提高业务切换效率以及开发效率。
结合上文实施例,如图10所示,其示出了本申请一个示例性实施例示出的虚拟页面框架的结构示意图。虚拟页面框架主要包含有:栈管理模块1001、生命周期管理模块1002、Jetpack支持模块1003、页面间通信模块1004、渲染策略模块1005、能力拓展模块1006、Spage API1007(虚拟页面接口)以及切换动画模块1008。
栈管理模块1001:SPage在后台管理时候采用栈的结构,后面打开的页面处于最上层,最后显示,最初打开的页面处于最下层,可能被其他页面遮挡,最符合页面的管理逻辑,每个打开的SPage都存在于一个Page栈。
生命周期管理模块1002:生命周期模块1002给予SPage更强的的管理能力。生命周期的定义采用了Android系统的标准定义,理解成本更细,同时也是jetPack所必须的部分。
Jetpack支持模块1003:Jetpack作为android的扩展包,可以动态接入到非Activity的虚拟页面上。由于SPage支持了生命周期,且和Activity页面保持一致,可以参考Activity的接入方式,接入到SPage中。具体的接入方式为:SPage实现了Jetpack接入必备的两个接口LifecycleOwner和ViewModelStoreOwner,支持了jetpack扩展包。ViewModel指的是页面展示关联的业务数据的存储和管理对象,该对象和虚拟页面生命周期关联;ViewModelStoreOwner:向扩展包提供ViewModel对象的缓存池。LifecycleOwner接口向扩展包通知当前页面的生命周期,jetpack可以根据页面生命周期处理不同页面间的通信以及ViewModel的缓存池清理等。
页面间通信模块1004:由于SPage支持了jetpack,则页面间通信可以jetpack采用viewModel+liveData来进行通信。
渲染策略模块1005:为了保证生命周期的正确定义,挂载时机与生命周期存在一定关系,也即只有功能视图需要显示的时候才会被挂载在业务容器上,如果功能视图停止显示,即从业务容器中移除。
如图11所示,其示出了本申请一个示例性实施例示出的渲染策略示意图。由图11可知,只有在调用onStart函数时,才会在业务容器中挂载功能视图(addView);当调用onStop函数时,从业务容器中移除功能视图(removeView)。
能力拓展模块1006:为了便于后续继续扩展业务功能,SPage具备了扩展能力,主要包含了一个通用的事件分发功能。其组成主要为:
(1)提供了一个通用分发接口:public void dispatchExtraEvent(int event,Object...args),其中第一个参数event作为事件标识,可以由使用方自己定义;第二个参数args作为通用的事件参数,由具体需要扩展的具体事件决定。
(2)每个SPage提供接收接口:public void onExtraEvent(int event,Object...args)。
(3)当dispatchExtraEvent分发事件后,每个SPage会根据自身生命周期决定是否能接收到分发事件。具体生命周期决定条件包括限制条件和粘性条件两种;限制条件为页面至少是onStart状态才会收到相应的事件分发;粘性条件为父虚拟页面会缓存相关事件,新的子虚拟页面onStart后,会收到最近一次分发事件的事件信息。
Spage API1007:能力扩展模块1006中的接收接口;可以用于接收来自外部服务或应用分发的事件。
切换动画模块1008:主要负责不同功能视图之间的切换动画。可以直接复用Activity页面的切换动画。
上文实施例以目标应用进行说明,在一种可能的应用场景中,上述应用的业务功能使用方法可以应用在输入法应用中,也即目标应用为输入法应用。
如图12所示,其示出了本申请另一个示例性实施例提供的应用的业务功能使用方法的流程图,以该方法应用于终端为例进行举例说明,该方法包括:
步骤1201,在输入法应用处于后台运行状态,且不具备采用Activity页面进行输入法功能使用的权限的情况下,接收对输入法应用的目标调用请求,目标调用请求用于调用输入法应用的输入法功能在前台使用。
步骤1202,确定输入法功能对应的目标业务容器和目标虚拟页面。
步骤1203,基于目标虚拟页面,在目标业务容器中渲染显示输入法功能对应的目标功能视图。
其中,输入法应用对应的输入法功能可以划分为:表情选择功能、键盘选择功能、键盘输入功能、语音输入功能等,每个目标虚拟页面对应管理一种业务功能;具体的,键盘选择功能还可以进一步细分为:九键输入功能、26键输入功能、手写输入功能、笔画输入功能、五笔输入功能等,这些为键盘选择功能的子业务功能,可以分别由不同子虚拟页面管理。
需要说明的是,步骤1201~步骤1203的实施方式可以参考上文实施例中目标应用对应业务功能的使用过程,本实施例在此不做赘述。
本实施例中,针对输入法应用在后台运行过程中,需要在前台展示和使用输入法应用对应的输入法功能时,无法使用Activity页面展示输入法功能的场景,通过在输入法应用中采用虚拟页面(Spage)模拟Activity页面组织输入法功能,且由不同虚拟页面来管理需要隔离的不同输入法功能;相比于相关技术中,通过手动拼装各个输入法功能视图,并将各个输入法功能视图的展示逻辑挂载在某个容器节点上,不同输入法功能的隔离性较差。本申请使用虚拟页面组织输入法功能,可以使得不同输入法功能的切换直接通过虚拟页面切换来实现,为业务功能提供更好的隔离性。
图13是本申请一个示例性实施例提供的应用的业务功能使用装置的结构框图,该装置包括:
接收模块1301,用于在目标应用处于后台运行状态,且不具备采用活动Activity页面进行目标业务功能使用的权限的情况下,接收对所述目标应用的目标调用请求,所述目标调用请求用于调用所述目标应用的所述目标业务功能在前台使用;
确定模块1302,用于确定所述目标业务功能对应的目标业务容器和目标虚拟页面,所述目标业务容器是所述目标业务功能在前台使用时所对应的展示容器,所述目标虚拟页面用于管理所述目标应用的所述目标业务功能,且不同虚拟页面用于管理所述目标应用的不同业务功能;
显示模块1303,用于基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图。
在一个可选的实施例中,所述目标业务功能被划分为至少两种业务功能;
所述确定模块1302,还用于:
确定所述目标业务功能对应的目标业务容器和第一虚拟页面,所述第一虚拟页面用于管理所述目标应用的第一业务功能;
所述显示模块1303,还用于:
基于所述第一虚拟页面,在所述目标业务容器中渲染显示所述第一业务功能对应的第一功能视图。
在一个可选的实施例中,所述确定模块1302,还用于响应于对所述第一功能视图的切换操作,确定所述切换操作所指示切换后的第二虚拟页面,所述第二虚拟页面用于管理所述目标应用的第二业务功能;
所述显示模块1303,还用于基于所述第二虚拟页面,在所述目标业务容器中渲染显示所述第二业务功能对应的第二功能视图。
在一个可选的实施例中,通过栈结构管理虚拟页面;
所述显示模块1303,还用于:
将所述第二虚拟页面添加至所述栈结构的栈顶,以使得所述第一虚拟页面位于所述栈顶的下方;
基于所述第二虚拟页面,在所述目标业务容器中渲染显示所述第二业务功能对应的所述第二功能视图,所述第一功能视图被所述第二功能视图遮挡。
在一个可选的实施例中,所述装置还包括:
清除模块,用于响应于切换回所述第一功能视图的切换操作,清除所述栈结构中所述第一虚拟页面上层的全部虚拟页面;
所述显示模块1303,还用于基于所述第一虚拟页面,在所述目标业务容器中渲染显示所述第一业务功能对应的所述第一功能视图。
在一个可选的实施例中,所述装置还包括:
复用模块,用于在接收到对所述第一虚拟页面的创建操作,且所述第一虚拟页面位于所述栈结构的栈顶的情况下,复用所述第一虚拟页面;
所述显示模块1303,还用于基于所述第一虚拟页面,在所述目标业务容器中渲染显示所述第一业务功能对应的所述第一功能视图。
在一个可选的实施例中,所述装置还包括:
关闭模块,用于在接收到对所述目标业务功能的关闭操作的情况下,按照所述栈结构由下层至上层依次关闭虚拟页面。
在一个可选的实施例中,同一虚拟页面所管理的业务功能被划分为至少两种子业务功能,同一虚拟页面对应的不同子虚拟页面用于管理不同子业务功能;
所述确定模块1302,还用于:
确定所述目标业务功能对应的所述目标业务容器、所述目标虚拟页面以及第一子虚拟页面,所述第一子虚拟页面用于管理所述目标业务功能中的第一子业务功能;
所述显示模块1303,还用于:
基于所述目标虚拟页面和第一子虚拟页面,在所述目标业务容器中渲染显示包含第一子功能视图的所述目标功能视图,所述第一子功能视图是所述第一子业务功能对应的功能视图,且所述第一子功能视图在所述目标业务容器中的目标子业务容器中显示。
在一个可选的实施例中,所述装置还包括:
切换模块,用于响应于对所述第一子功能视图的切换操作,将所述第一子功能视图从所述目标子业务容器中移除,以及确定所述切换操作所指示切换后的第二子虚拟页面;
添加模块,用于将所述第二子虚拟页面对应的第二子功能视图挂载在所述目标子业务容器上;
显示模块1303,用于在所述目标子业务容器中渲染显示所述第二子功能视图。
在一个可选的实施例中,通过子栈结构管理同一子业务容器中的子虚拟页面;
所述装置还包括:
所述添加模块,还用于将所述第二子虚拟页面添加至所述子栈结构的栈顶。
在一个可选的实施例中,所述装置还包括:
关闭模块,用于响应于对所述目标虚拟页面的关闭操作,按照所述子栈结构由下层至上层依次关闭子虚拟页面。
在一个可选的实施例中,所述装置还包括:
调用模块,用于在存在对所述目标虚拟页面的创建需求的情况下,调用创建onCreate函数创建所述目标虚拟页面;
所述调用模块,还用于在存在对所述目标虚拟页面的关闭需要的情况下,调用销毁onDestory函数销毁所述目标虚拟页面;
所述调用模块,还用于在存在对所述目标功能视图的显示需求的情况下,调用启动onStart函数显示所述目标功能视图,以使得所述目标功能视图处于可见可操作状态;
所述调用模块,还用于在存在对所述目标功能视图的停止显示需求的情况下,调用停止onStop函数停止显示所述目标功能视图,以使得所述目标功能视图处于不可见状态且不可操作状态;
所述调用模块,还用于在所述目标功能视图由可见不可操作状态切换回所述可见可操作状态的情况下,调用恢复onResume函数显示所述目标功能视图;
所述调用模块,还用于在在所述目标功能视图由所述可见可操作状态切换为所述可见不可操作状态的情况下,调用暂停onPause函数显示所述目标功能视图。
在一个可选的实施例中,所述目标应用为输入法应用;
所述接收模块1301,还用于:
在所述输入法应用处于后台运行状态,且不具备采用Activity页面进行输入法功能使用的权限的情况下,接收对所述输入法应用的所述目标调用请求,所述目标调用请求用于调用所述输入法应用的所述输入法功能在前台使用;
所述确定模块1302,还用于:
确定所述输入法功能对应的所述目标业务容器和所述目标虚拟页面;
所述显示模块1303,还用于:
基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述输入法功能对应的所述目标功能视图。
综上所述,针对目标应用在后台运行过程中,需要在前台展示和使用目标应用对应的目标业务功能时,无法使用Activity页面展示目标业务功能的场景,通过在目标应用中采用虚拟页面(Spage)模拟Activity页面组织目标业务功能,且由不同虚拟页面来管理需要隔离的不同业务功能;相比于相关技术中,通过手动拼装各个业务功能视图,并将各个业务功能视图的展示逻辑挂载在某个容器节点上,不同业务功能的隔离性较差。本申请使用虚拟页面组织业务,可以使得不同业务功能的切换直接通过虚拟页面切换来实现,为业务功能提供更好的隔离性。
请参考图14,其示出了本申请一个示例性实施例提供的终端1400的结构框图。该终端1400可以是便携式移动终端,比如:智能手机、平板电脑、动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III,MP3)播放器、动态影像专家压缩标准音频层面4(Moving Picture Experts Group Audio Layer IV,MP4)播放器。终端1400还可能被称为用户设备、便携式终端等其他名称。
通常,终端1400包括有:处理器1401和存储器1402。
处理器1401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1401可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器1401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1401可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1401还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器1402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1401所执行以实现本申请实施例提供的方法。
在一些实施例中,终端1400还可选包括有:外围设备接口1403。
外围设备接口1403可被用于将输入/输出(Input/Output,I/O)相关的至少一个外围设备连接到处理器1401和存储器1402。在一些实施例中,处理器1401、存储器1402和外围设备接口1403被集成在同一芯片或电路板上;在一些其他实施例中,处理器1401、存储器1402和外围设备接口1403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方法实施例提供的应用的业务功能使用方法。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例提供的应用的业务功能使用方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种应用的业务功能使用方法,其特征在于,所述方法包括:
在目标应用处于后台运行状态,且不具备采用活动Activity页面进行目标业务功能使用的权限的情况下,接收对所述目标应用的目标调用请求,所述目标调用请求用于调用所述目标应用的所述目标业务功能在前台使用;
确定所述目标业务功能对应的目标业务容器和目标虚拟页面,所述目标业务容器是所述目标业务功能在前台使用时所对应的展示容器,所述目标虚拟页面用于管理所述目标应用的所述目标业务功能,且不同虚拟页面用于管理所述目标应用的不同业务功能;
基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图。
2.根据权利要求1所述的方法,其特征在于,所述目标业务功能被划分为至少两种业务功能;
所述确定所述目标业务功能对应的目标业务容器和目标虚拟页面,包括:
确定所述目标业务功能对应的目标业务容器和第一虚拟页面,所述第一虚拟页面用于管理所述目标应用的第一业务功能;
所述基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图,包括:
基于所述第一虚拟页面,在所述目标业务容器中渲染显示所述第一业务功能对应的第一功能视图。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于对所述第一功能视图的切换操作,确定所述切换操作所指示切换后的第二虚拟页面,所述第二虚拟页面用于管理所述目标应用的第二业务功能;
基于所述第二虚拟页面,在所述目标业务容器中渲染显示所述第二业务功能对应的第二功能视图。
4.根据权利要求3所述的方法,其特征在于,通过栈结构管理虚拟页面;
所述基于所述第二虚拟页面,在所述目标业务容器中渲染显示所述第二业务功能对应的第二功能视图,包括:
将所述第二虚拟页面添加至所述栈结构的栈顶,以使得所述第一虚拟页面位于所述栈顶的下方;
基于所述第二虚拟页面,在所述目标业务容器中渲染显示所述第二业务功能对应的所述第二功能视图,所述第一功能视图被所述第二功能视图遮挡。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于切换回所述第一功能视图的切换操作,清除所述栈结构中所述第一虚拟页面上层的全部虚拟页面;
基于所述第一虚拟页面,在所述业务容器中渲染显示所述第一业务功能对应的所述第一功能视图。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在接收到对所述第一虚拟页面的创建操作,且所述第一虚拟页面位于所述栈结构的栈顶的情况下,复用所述第一虚拟页面;
基于所述第一虚拟页面,在所述目标业务容器中渲染显示所述第一业务功能对应的所述第一功能视图。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在接收到对所述目标业务功能的关闭操作的情况下,按照所述栈结构由下层至上层依次关闭虚拟页面。
8.根据权利要求1至7任一所述的方法,其特征在于,同一虚拟页面所管理的业务功能被划分为至少两种子业务功能,同一虚拟页面对应的不同子虚拟页面用于管理不同子业务功能;
所述确定所述目标业务功能对应的目标业务容器和目标虚拟页面,包括:
确定所述目标业务功能对应的所述目标业务容器、所述目标虚拟页面以及第一子虚拟页面,所述第一子虚拟页面用于管理所述目标业务功能中的第一子业务功能;
所述基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图,包括:
基于所述目标虚拟页面和第一子虚拟页面,在所述目标业务容器中渲染显示包含第一子功能视图的所述目标功能视图,所述第一子功能视图是所述第一子业务功能对应的功能视图,且所述第一子功能视图在所述目标业务容器中的目标子业务容器中显示。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于对所述第一子功能视图的切换操作,将所述第一子功能视图从所述目标子业务容器中移除,以及确定所述切换操作所指示切换后的第二子虚拟页面;
将所述第二子虚拟页面对应的第二子功能视图挂载在所述目标子业务容器上;
在所述目标子业务容器中渲染显示所述第二子功能视图。
10.根据权利要求9所述的方法,其特征在于,通过子栈结构管理同一子业务容器中的子虚拟页面;
所述确定所述切换操作所指示切换后的第二子虚拟页面之后,所述方法还包括:
将所述第二子虚拟页面添加至所述子栈结构的栈顶。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
响应于对所述目标虚拟页面的关闭操作,按照所述子栈结构由下层至上层依次关闭子虚拟页面。
12.根据权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
在存在对所述目标虚拟页面的创建需求的情况下,调用创建onCreate函数创建所述目标虚拟页面;
在存在对所述目标虚拟页面的关闭需要的情况下,调用销毁onDestory函数销毁所述目标虚拟页面;
在存在对所述目标功能视图的显示需求的情况下,调用启动onStart函数显示所述目标功能视图,以使得所述目标功能视图处于可见可操作状态;
在存在对所述目标功能视图的停止显示需求的情况下,调用停止onStop函数停止显示所述目标功能视图,以使得所述目标功能视图处于不可见状态且不可操作状态;
在所述目标功能视图由可见不可操作状态切换回所述可见可操作状态的情况下,调用恢复onResume函数显示所述目标功能视图;
在所述目标功能视图由所述可见可操作状态切换为所述可见不可操作状态的情况下,调用暂停onPause函数显示所述目标功能视图。
13.根据权利要求1至8任一所述的方法,其特征在于,所述目标应用为输入法应用;
所述在目标应用处于后台运行状态的情况下,接收对所述目标应用的目标调用请求,包括:
在所述输入法应用处于后台运行状态,且不具备采用Activity页面进行输入法功能使用的权限的情况下,接收对所述输入法应用的所述目标调用请求,所述目标调用请求用于调用所述输入法应用的所述输入法功能在前台使用;
所述确定所述目标业务功能对应的目标业务容器和目标虚拟页面,包括:
确定所述输入法功能对应的所述目标业务容器和所述目标虚拟页面;
所述基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图,包括:
基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述输入法功能对应的所述目标功能视图。
14.一种应用的业务功能使用装置,其特征在于,所述装置包括:
接收模块,用于在目标应用处于后台运行状态,且不具备采用活动Activity页面进行目标业务功能使用的权限的情况下,接收对所述目标应用的目标调用请求,所述目标调用请求用于调用所述目标应用的所述目标业务功能在前台使用;
确定模块,用于确定所述目标业务功能对应的目标业务容器和目标虚拟页面,所述目标业务容器是所述目标业务功能在前台使用时所对应的展示容器,所述目标虚拟页面用于管理所述目标应用的所述目标业务功能,且不同虚拟页面用于管理所述目标应用的不同业务功能;
显示模块,用于基于所述目标虚拟页面,在所述目标业务容器中渲染显示所述目标业务功能对应的目标功能视图。
15.一种终端,其特征在于,所述终端包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至13任一所述的应用的业务功能使用方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至13任一所述的应用的业务功能使用方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至13任一所述的应用的业务功能使用方法。
CN202210593877.0A 2022-05-27 2022-05-27 应用的业务功能使用方法、装置、终端、存储介质及产品 Pending CN115114019A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210593877.0A CN115114019A (zh) 2022-05-27 2022-05-27 应用的业务功能使用方法、装置、终端、存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210593877.0A CN115114019A (zh) 2022-05-27 2022-05-27 应用的业务功能使用方法、装置、终端、存储介质及产品

Publications (1)

Publication Number Publication Date
CN115114019A true CN115114019A (zh) 2022-09-27

Family

ID=83326785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210593877.0A Pending CN115114019A (zh) 2022-05-27 2022-05-27 应用的业务功能使用方法、装置、终端、存储介质及产品

Country Status (1)

Country Link
CN (1) CN115114019A (zh)

Similar Documents

Publication Publication Date Title
CN103282875B (zh) 多操作系统
CN105183551B (zh) 基于Linux容器技术的多Android系统之间切换方法
US11010859B2 (en) Display resource scheduling method and device for embedded system
CN111737019B (zh) 一种显存资源的调度方法、装置及计算机存储介质
CN102053871B (zh) 一种应用程序图像的显示方法和装置
CN106020829A (zh) 在多环境操作系统中多个环境之间切换的系统和方法
JP2013546043A (ja) 即時リモートレンダリング
CN104380256A (zh) 用于虚拟化与计算机系统关联的硬件资源的方法、系统和执行代码段
US10949226B2 (en) Display method of multi-application based on Android system, and terminal device
CN108093292A (zh) 用于管理缓存的方法、装置及系统
CN111124668B (zh) 内存释放方法、装置、存储介质及终端
CN110968395B (zh) 一种在模拟器中处理渲染指令的方法及移动终端
CN100561438C (zh) 一种虚拟机系统及其显卡使用方法
CN104778022A (zh) 一种数据处理方法及电子设备
CN113157362A (zh) 一种应用于Linux上Android多窗口显示方法
US9324299B2 (en) Atlasing and virtual surfaces
CN111290837B (zh) 一种构建轻量级虚拟化系统的方法
CN111857902B (zh) 应用的显示方法、装置、设备和可读存储介质
CN110673956B (zh) 回收线程创建方法、装置、计算机设备以及存储介质
CN115114019A (zh) 应用的业务功能使用方法、装置、终端、存储介质及产品
CN111949150B (zh) 控制外设切换方法、装置、存储介质及电子设备
CN112925654B (zh) 图片解码方法、装置、计算机设备及存储介质
CN117234655B (zh) 基于安卓系统运行Linux桌面程序的方法、装置、设备及介质
WO2013185664A1 (zh) 一种操作方法及装置
CN108235757A (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