CN106155768A - 分屏运行应用的方法及装置 - Google Patents

分屏运行应用的方法及装置 Download PDF

Info

Publication number
CN106155768A
CN106155768A CN201510135127.9A CN201510135127A CN106155768A CN 106155768 A CN106155768 A CN 106155768A CN 201510135127 A CN201510135127 A CN 201510135127A CN 106155768 A CN106155768 A CN 106155768A
Authority
CN
China
Prior art keywords
split screen
application program
labelling
page
task
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
Application number
CN201510135127.9A
Other languages
English (en)
Other versions
CN106155768B (zh
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.)
Banma Zhixing Network Hongkong Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510135127.9A priority Critical patent/CN106155768B/zh
Priority to PCT/CN2016/076567 priority patent/WO2016150325A1/zh
Publication of CN106155768A publication Critical patent/CN106155768A/zh
Application granted granted Critical
Publication of CN106155768B publication Critical patent/CN106155768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Abstract

本申请提供一种分屏运行应用的方法及装置。方法包括:接收用于指示分屏运行应用程序的分屏指令;根据所述分屏指令,为所述应用程序设置分屏标记;根据所述分屏标记,分屏运行所述应用程序。本申请可以在不修改框架层的数据结构的基础上,实现分屏运行应用的目的。

Description

分屏运行应用的方法及装置
【技术领域】
本申请涉及软件技术领域,尤其涉及一种分屏运行应用的方法及装置。
【背景技术】
目前,手机、平板电脑等电子设备的架构一般包括:硬件、操作系统、框架层、应用层。框架层主要负责接收用户的输入事件、进行处理以及将处理的结果通过文字、图像、声音、震动等形式反馈给用户。随着电子设备的处理能力越来越强,电子设备可以支持多个应用同时工作,但是现有框架层一般使用同一堆栈管理所有应用的数据,导致较难区分不同分屏,所以在同一屏幕上只有一个应用可以获得焦点,能够接收用户的输入事件,和用户交互;而其他应用在后台运行,无法和用户交互。现有技术存在一些分屏技术方案,主要是通过对框架层的数据结构进行修改,将原来使用同一堆栈进行数据管理的数据结构,改成使用不同堆栈分别管理不同分屏数据的数据结构,以便于实现同屏多任务多窗口运行。
上述实现多任务多窗口运行的方案需要对堆栈的数据结构进行修改,工作量较大,实现起来较为困难,且很容易引入新的漏洞(bug)。针对该问题,亟需一种不用改动堆栈的数据结构即可分屏运行应用的方案。
【发明内容】
本申请的多个方面提供一种分屏运行应用的方法及装置,用以在不修改框架层的数据结构的基础上,实现分屏运行应用的目的。
本申请的一方面,提供一种分屏运行应用的方法,包括:
接收用于指示分屏运行应用程序的分屏指令;
根据所述分屏指令,为所述应用程序设置分屏标记;
根据所述分屏标记,分屏运行所述应用程序。
本申请的另一方面,提供一种分屏运行应用的装置,包括:
接收模块,用于接收用于指示分屏运行应用程序的分屏指令;
标记模块,用于根据所述分屏指令,为所述应用程序设置分屏标记;
分屏模块,用于根据所述分屏标记,分屏运行所述应用程序。
在本申请中,接收用于指示分屏运行应用程序的分屏指令,根据该分屏指令,为应用程序设置分屏标记,根据分屏标记,分屏运行应用程序。由于通过分屏标记可以标记出需要分屏运行的应用程序,所以不需要修改框架层改动堆栈的数据结构,便可以达到分屏运行应用程序的目的。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的分屏运行应用的方法的流程示意图;
图2为本申请一实施例提供的侧边栏的示意图;
图3为本申请一实施例提供的分屏预览界面的示意图;
图4为本申请一实施例提供的AMS的数据结构示意图;
图5为本申请一实施例提供的WMS的数据结构示意图;
图6a为本申请一实施例提供的整体UML图;
图6b为本申请一实施例提供的基于UML图实现的分屏运行应用程序的流程示意图;
图7为本申请一实施例提供的分屏运行应用的装置的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术存在的问题,本申请提供一种分屏运行应用的方法,可以在不修改堆栈的数据结构的基础上,实现分屏运行应用程序的目的。图1为本申请一实施例提供的分屏运行应用的方法的流程示意图。该方法可由框架层来执行,但不限于此。如图1所示,该方法包括:
101、接收用于指示分屏运行应用程序的分屏指令。
102、根据上述分屏指令,为应用程序设置分屏标记。
103、根据上述分屏标记,分屏运行应用程序。
在本实施例中,当需要分屏运行应用程序时,可以发出分屏指令,用来指示分屏运行应用程序。本实施例对发出分屏指令的方式不做限定。
例如,可以向用户提供一分屏启动入口,用于供用户发出用于启动应用程序的启动指令,通过该分屏启动入口发出的启动指令,实际上指示分屏运行该应用程序。基于此,上述分屏指令具体可以是用户通过分屏启动入口发出的用于启动应用程序的启动指令。
上述分屏启动入口可以有各种实现方式,例如可以是设置于屏幕上的侧边栏应用。如图2所示屏幕的左侧部分为侧边栏,在该侧边栏中预先设置有支持分屏运行的各种应用的图标,例如便签、视频、相册、信息和浏览器等应用的图标。例如,通过点击图2中侧边栏的圆弧可以隐藏或显示侧边栏,或长时间不操作已显示的侧边栏会动态自己隐藏,只保留圆弧在主屏幕上,但不限于这种方式。例如,还可以通过操作各种物理键来显示或隐藏侧边栏。
例如,用户可以通过拖动某个应用的图标至主屏幕(图2中的右侧部分)上,从而实现通过该侧边栏发出用于指示分屏运行该应用的启动指令。或者,用户也可以通过点击、触控、悬停等方式操作侧边栏中某个应用的图标,从而实现通过该侧边栏发出用于指示分屏运行该应用的启动指令。
或者,上述分屏启动入口可以是分屏预览界面,分屏预览界面可以是一个或多个。如图3所示,主屏幕上的两个实线框为分屏预览界面。例如,用户可以通过长按Home按钮调出或隐藏分屏预览界面,或者用户可以通过长按开机键或音量调节键调出或隐藏分屏预览界面。值得说明的是,这里长按各种按键的操作可以通过长按时间与已有长按操作相区分。
例如,用户可以通过拖动某个应用的图标至分屏预览界面上,从而实现通过该分屏预览界面发出用于指示分屏运行该应用的启动指令。或者,用户可以点击分屏预览界面上的添加符号,如“+”,来添加某个应用到分屏预览界面上,从而实现通过该分屏预览界面发出用于指示分屏运行该应用的启动指令。
以Android系统为例,无论是侧边栏还是分屏预览界面,都可以调用Android系统提供的应用程序接口(API),如context.startActivity发出分屏指令。context.startActivity用来启动一个页面(Activity)。
框架层接收到分屏指令后,可以根据分屏指令,为需要分屏运行的应用程序设置分屏标记,通过该分屏标记一方面可以标识该应用程序需要分屏,另一方面可以与其他分屏相区分。由于框架层主要负责与用户之间的交互,负责对用户界面进行处理,因此,框架层为应用程序设置分屏标记,实际上是为应用程序在框架层的数据设置分屏标记,这样可以了解到该应用程序需要分屏运行并且可以将该应用程序对应的分屏与其他分屏相区分。
在一可选实施方式中,框架层通过任务链表(TaskRecord)来管理应用程序,基于此,框架层根据分屏指令,为应用程序设置分屏标记的过程包括:根据分屏指令,在应用程序的任务链表中设置分屏标记,该任务链表对应于应用程序需要分屏展示的页面。即通过该任务链表可以确定应用程序需要分屏展示的页面。例如,任务链表可以存储应用程序的页面记录(ActivityRecord)。ActivityRecord也只存在框架层,用于存储应用程序需要分屏展示的页面的基本信息。页面的基本信息一般包括:该页面的名称、该页面所属的应用程序的标识等。
例如,以Android系统为例,在框架层的活动管理服务(ActivityManagerService,AMS)中,如图4所示,该AMS包括一个页面堆栈管理器(ActivityStackSuperVior),该ActivityStackSuperVior通过页面堆栈(ActivityStack)管理多个TaskRecord,每个TaskRecord包括多个ActivityRecord,即每个ActivityRecord都属于一个TaskRecord,每个ActivityRecord负责管理应用程序的一个页面(Activity),即应用程序的内个Activity都对应有一个ActivityRecord。
另外,在框架层的窗口管理服务(WindowManagerService,WMS)中也有类似的结构。如图5所示,该WMS包括一个任务堆栈(TaskStack),该TaskStack包括多个任务(Task),每个Task对应多个应用窗口令牌(AppWindowToken)。WMS里的任务堆栈(TaskStack)对应图4所示AMS中的页面堆栈(ActivityStack),这两者及其子结构保持同步。也就是说,WMS和AMS中的数据结构是有对应关系的,例如AMS中的TaskRecord对应于WMS中的Task,AMS中的ActivityRecord对应于WMS中的AppWindowToken。另外,WMS中TaskStack的mTasks需要和AMS中ActivityStack的mTaskHistory顺序保持一致。
上述ActivityRecord主要用于描述单个Activity,是ActivityStack中的基本单元;ActivityRecord的IBinder对象可以表示为ActivityRecord::Token,可以看作远程对象的本地句柄,可用于LPC,又可用来作映射中的唯一标识(unique ID),经常是两用的。
上述TaskRecord中的mActivities是ActivityRecord的列表,它们是按照历史顺序排序的。ActivityRecord是通过TaskRecord这一层间接地被管理着。
上述ActivityStackSupervisor是ActivityStack的管理者。
基于Android系统框架层对应用程序需要展示的页面的管理,可以通过TaskRecord来标识一个应用程序,将分屏标记设置在TaskRecord中,达到标记和区分应用程序的分屏的目的。
应用程序需要分屏展示的页面一般包括首页面(main Activity)和非首页面。首页面是指首个要展示的页面。根据要分屏展示的页面类型的不同,在应用程序的任务链表中设置分屏标记的过程也会有所不同。则一种设置分屏标记的具体实施方式包括:
当需要分屏展示的页面是首页面时,由于是该应用程序的首个页面,尚不存在任务链表,故需要为该首页面创建任务链表,根据分屏指令,获得分屏标记,将分屏标记设置在所创建的任务链表中;另外,还需要为该首页面创建页面链表,该页面链表位于任务链表中,并且需要将该首页面的基本信息存储到页面链表中;
当需要分屏展示的页面是非首页面时,若该非首页面不与首页面共用任务链表,则为该非首页面创建一新任务链表,从应用程序对应的已存在的任务链表(这里已存在的任务链表可以是首页面对应的任务链表,也可以是之前不与首页面共用任务链表的非首页面对应的任务链表)中获取分屏标记,将分屏标记设置在新任务链表中;另外,还需要为该非首页面创建页面链表,该页面链表位于所创建的新任务链表中,并且需要将该非首页面的基本信息存储到页面链表中;若该非首页面与首页面共用任务链表,由于首页面对应的任务链表中已经存在分屏标记,所以只需为该非首页面创建页面链表,将该非首页面的基本信息存储到页面链表中即可。
在一可选实施方式中,分屏指令中可以包括分屏标记。基于此,上述根据分屏指令,获得分屏标记具体可以是:从分屏指令中获取分屏标记。以Android系统为例,在通过调用Android系统提供的context.startActivity接口发出分屏指令时,具体可以通过调用context.startActivity接口发出意图(intent)消息,该消息中添加分屏标记。
或者,分屏指令中不携带分屏标记,而是由框架层自己根据分屏指令,为不同应用程序生成分屏标记。例如,框架层直接将分屏指令作为分屏标记。
在为应用程序设置分屏标记后,在应用程序的整个运行过程中,框架层就可以根据该分屏标记,获知该应用程序需要分屏运行,且可以将该应用程序与其他应用程序对应的分屏区分开,从而实现分屏运行应用程序的目的。
在一可选实施方式中,框架层根据分屏标记,分屏运行应用程序具体为:根据分屏标记,为应用程序设置分屏窗口的分屏参数,这里的分屏参数主要用于指示分屏窗口的大小及位置,具体的,分屏参数可以包括分屏窗口在整个屏幕上的左上角坐标、宽度以及高度等信息;将分屏窗口的分屏参数提供给应用程序,以供应用程序根据分屏参数将需要分屏展示的页面展示在分屏窗口中。
在一可选实施方式中,可以预先设置分屏标记的取值,不同取值对应不同的分屏个数,例如分屏标记取值为2,意味着需要分为两屏;分屏标记取值为3,意味着需要分为三屏;分屏标记取值为4,意味着需要分屏4屏。可选的,每一屏上可以运行一个应用程序,或者也可以同时运行多个应用程序。每一屏的使用模式也可以预先设定。
基于上述,一种根据分屏标记,为应用程序设置分屏窗口的分屏参数的实施方式包括:根据分屏标记,将整个屏幕划分为至少两个子屏幕,具体,可以根据分屏标记的取值确定所划分的子屏幕的个数;确定该应用程序的分屏窗口所在的目标子屏幕;根据目标子屏幕的屏幕参数,设置分屏窗口的分屏参数。例如,预先设定子屏幕的使用顺序,根据该使用顺序来确定当前应用程序对应的分屏窗口所在的子屏幕。或者,也可以随机选择有位置的子屏幕作为当前应用程序对应的分屏窗口所在的子屏幕。值得说明的是,子屏幕的屏幕参数主要用于指示该子屏幕的大小及位置。
可选的,若一个子屏幕上运行一个应用程序,则一个子屏幕可以直接作为一个分屏窗口,但不限于此。在获得应用程序的分屏窗口的分屏参数后,框架层具体可以向应用程序发送第一消息,以通知应用程序准备需要分屏展示的页面;向应用程序发送第二消息,第二消息包括分屏窗口的分屏参数,以供应用程序确定分屏窗口;对应用程序来说,接收框架层发送的第一消息,根据第一消息准备需要分屏展示的页面,并接收框架层发送的第二消息,从第二消息中获取分屏参数,根据分屏参数确定分屏窗口在屏幕上的位置,进一步当准备好需要分屏展示的页面后,向框架层发送消息,以通知框架层已经准备好页面;框架层在接收到应用程序发送的用于通知准备好页面的消息后,向应用程序发送第三消息,以指示应用程序将准备好的页面展示在分屏窗口中。
以Android系统为例,在Android系统中,应用程序的每个Activity都关联一个窗口(Window)对象,这个Window对象的继承类是com.android.internal.policy.impl.PhoneWindow,该Window对象的继承类提供了一个setAttributes(WindowManager.LayoutPrams)方法,该方法可以对Activity属性做一些设置,例如可以设置Activity属性中的左上角坐标(x,y)、宽度(width)、高度(height)等参数。基于此,应用程序可以调用该方法设置Activity的左上角坐标、宽度、高度,从而让一个Activity只占据分屏窗口所在区域,而让其他Activity占据屏幕的其余区域,这样应用程序就可以将准备好的页面展示在分屏窗口中,进而实现应用分屏运行的目的。
在一可选实施方式中,应用程序除了需要分屏展示页面之外,还可能需要展示各种对话框。基于此,框架层还可以在应用程序对应的分屏窗口中展示应用程序的对话框。
具体的,当应用程序需要展示对话框时,确定该对话框关联于分屏窗口当前展示的页面;根据分屏窗口的分屏参数,确定对话框的大小及弹出位置;根据对话框的大小及弹出位置,在分屏窗口上弹出对话框。具体的,可以将对话框对应的窗口容器(Container)的大小限制为关联的分屏窗口的大小,对话框最大只能显示成窗口容器大小,可以比窗口容器小,如果对话框更小,那就正常显示,不充满窗口容器。
在一可选实施方式中,若申请分屏运行的应用程序是首个运行的应用,那么可以采用全屏方式,以提高屏幕利用率。基于此,在为应用程序设置分屏标记之前,可以判断应用程序是否是首个运行的应用,若判断结果为是,则禁止将分屏标记设置在任务链表中,从而禁止为该应用程序设置分屏标记;若判断结果为否,则将分屏标记设置到任务链表中,从而达到分屏运行应用程序的目的。值得说明的是,对于判断结果为否的情况,还需要向其他已经运行的应用程序发送包含所述其他已经运行的应用程序对应的分屏参数的消息,以使其他应用程序根据该分屏参数将需要展示的页面展示在其他应用程序对应的其他分屏窗口中。
由上述可见,本实施例通过接收用于指示分屏运行应用程序的分屏指令,根据分屏指令,为应用程序设置分屏标记,根据分屏标记,分屏运行应用程序。由于通过分屏标记可以标记出需要分屏运行的应用程序,所以不需要修改框架层的数据结构,便可以达到分屏运行应用程序的目的。另外,通过对单个页面对应的分屏窗口的大小及位置进行控制,具有更大的自由度,使得分屏方案更加灵活。
下面以Android系统为例,详细说明本申请技术方案的实施过程。如图6a所示,为本申请的整体统一建模语言(Unified Modeling Language,UML)图。本申请的UML图包括:应用程序部分、分屏入口部分和框架层。应用程序部分包括:组件调节器(ActivityThread)、窗口调节器(WindowScalor)和页面(Activity),WindowScalor是一个控制Activity缩放的工具;分屏入口部分包括:多窗口控制器(MultiWindowController)、多窗口管理器(MultiWindowManager)和多窗口管理服务(MultiWindowManagerService);框架层包括:堆栈管理器(ActivityStackSuperVior)、页面堆栈(ActivityStack)、任务链表(TaskRecord)、页面记录(ActivityRecord)和浮动窗口层(FloatWindowLayor)。图6b所示为基于UML图实现的分屏运行应用程序的流程。对该流程的详细说明如下:
用户通过终端设备上的分屏启动入口(例如侧边栏或分屏预览界面)调用Android系统提供的context.startActivity接口,向Android系统中的框架层(这里的框架层主要是指图6b中的ActivityStackSuperVior)发送intent消息,并在该intent消息中添加一分屏标记,记为flag,用于在向框架层发出启动应用程序的指令的同时,指示分屏运行该应用程序。
考虑到运行第一个应用程序时,一般会进入全屏状态,而不是分屏,这样有利于提高屏幕利用率。基于此,框架层收到context.startActivity接口传输的intent消息后,进入启动页面(StartActivityLocked)流程,并需要判断是否需要移除intent消息中的flag,于是启动判断是否需要移除intent消息中的flag的流程,该流程可记为startActivityUncheckedLocked。该操作主要有图6b中的ActivityStackSuperVior指示ActivityStack来完成。值得说明的是,上述流程中的”Locked”只是为了提示该方法流程是线程安全的,Locked本身没有具体意义。
具体的,框架层(主要是指ActivityStack)根据该应用程序是否是首个请求运行的应用,来确定是否要移除flag(removeFloatFlagIfNeeded),如果是首个请求运行的应用,则需要移除,如果不是首个请求运行的应用,则不移除。如果需要进入全屏状态,则把被桌面挡住的页面都先清空(finishNoneFloatAcitivityUnderHome),以便于全屏运行应用程序。如果需要进入分屏状态,则确定需要根据flag,设置分屏窗口的分屏参数。于是,进入框架层默认的启动Activity的流程。
对于应用的首页面(main Activity),首先新建一个TaskRecord,此时,TaskRecord的构造函数会从intent消息里面取数据,由于intent消息里面包含分屏标记,即flag,因此会获取flag将其存到TaskRecord里面,这样该TaskRecord就会被标记为需要分屏。TaskRecord处理好后,ActivityStack会指示ActivitySupervisor进入ActivitySupervisor的真正启动页面(realStartActivityLocked)流程。
在realStartActivityLocked流程中,框架层会请求应用程序准备需要展示的页面,具体向应用程序发送第一消息,以请求应用程序准备需要展示的页面;进一步,向应用程序发送第二消息,通过第二消息将分屏窗口的分屏参数传递给应用程序,以供应用程序确定分屏窗口;当应用程序准备好页面后,向框架层发送通知消息,框架层收到通知消息后,向应用程序发送第三消息,以指示应用程序将准备好的页面展示在分屏窗口中。对应用程序来说,在接收到第三消息后,可以设置main Activity的大小,以使其与分屏窗口相适宜。该过程主要可由图6b中的ActivitySupervisor、ActivityRecord、ActivityThread、WindowScalor和Activity几部分完成。
具体的,应用程序可以调用FloatWindowLayor.layoutActivityRecord(),构造一个LayoutParams对象并对LayoutParams对象的左上角坐标(x,y)、宽度(width)、高度(height)等属性赋值。
在此处,FloatWindowLayor.layoutActivityRecord()的主要功能是设置main Activity的位置,具体将其位置定位到分屏窗口处。然后,应用程调用main Activity的setAttributes(WindowManager.LayoutPrams)方法设置main Activity的属性。
对于非main Activity,如果该非main Activity与main Activity是共享同一个TaskRecord,由于flag已经存在TaskRecord里面了,因此,可以直接realStartActivityLocked流程,并且在realStartActivityLocked流程中,应用程序也会将非main Activit设置成与main Activity一样的大小。
对于非main Activity,如果非main Activity与main Activity不共享同一个TaskRecord,需要查找是否已经存在该应用程序的其他Activity对应的TaskRecord,具体可以判断是否存在TaskRecord对应的包名(packageName)与该应用程序的包名相同,若存在,则则取该TaskRecord中的flag设置到当前非main Activity的TaskRecord中,保证非main Activity与main Activity对应相同的flag。之后,进入realStartActivityLocked流程,并且在realStartActivityLocked流程中,应用程序也会将非main Activit设置成与main Activity一样的大小。
由上述可见,本申请通过为应用程序设置分屏标记,根据分屏标记,分屏运行应用程序。由于通过分屏标记可以标记出需要分屏运行的应用程序,所以不需要修改框架层的数据结构,便可以达到分屏运行应用程序的目的。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图7为本申请一实施例提供的分屏运行应用的装置的结构示意图。如图7所示,该装置包括:接收模块71、标记模块72和分屏模块73。
接收模块71,用于接收用于指示分屏运行应用程序的分屏指令;
标记模块72,用于根据分屏指令,为应用程序设置分屏标记;
分屏模块73,用于根据分屏标记,分屏运行应用程序。
在一可选实施方式中,标记模块72具体用于:
根据分屏指令,在应用程序的任务链表中设置分屏标记,任务链表对应于应用程序需要分屏展示的页面。
在一可选实施方式中,标记模块72具体用于:
当需要分屏展示的页面是首页面时,为首页面创建任务链表,根据分屏指令,获得分屏标记,将分屏标记设置在任务链表中;
当需要分屏展示的页面是非首页面时,若非首页面不与首页面共用任务链表,则为非首页面创建一新任务链表,从应用程序对应的已存在的任务链表中获取分屏标记,将分屏标记设置在新任务链表中。
在一可选实施方式中,标记模块72具体用于:
从分屏指令中获取分屏标记;或者
根据分屏指令,生成分屏标记。
在一可选实施方式中,分屏模块73具体用于:
根据分屏标记,为应用程序设置分屏窗口的分屏参数;
将分屏参数提供给应用程序,以供应用程序根据分屏参数将页面展示在分屏窗口中。
在一可选实施方式中,分屏模块73具体用于:
向应用程序发送第一消息,以通知应用程序准备页面;
向应用程序发送第二消息,第二消息包括分屏参数,以供应用程序确定分屏窗口;
在接收到应用程序发送的用于通知准备好页面的消息后,向应用程序发送第三消息,以指示应用程序将页面展示在分屏窗口中。
在一可选实施方式中,分屏模块73具体用于:
根据分屏标记,将整个屏幕划分为至少两个子屏幕;
确定分屏窗口所在的目标子屏幕;
根据目标子屏幕的屏幕参数,设置分屏窗口的分屏参数。
在一可选实施方式中,分屏模块73还用于:
在分屏窗口中展示应用程序的对话框。
在一可选实施方式中,分屏模块73具体用于:
当应用程序需要展示对话框时,确定对话框关联于分屏窗口当前展示的页面;
根据分屏窗口的分屏参数,确定对话框的大小及弹出位置属性参数;
根据对话框的大小及弹出位置,在分屏窗口中弹出对话框。
在一可选实施方式中,本实施例的装置还包括,判断模块,用于判断应用程序是否是首个运行的应用;若判断结果为是,则禁止标记模块将分屏标记设置到任务链表中;若判断结果为否,则触发标记模块将分屏标记设置到任务链表中。
可选的,上述分屏指令为用户通过分屏启动入口发出的用于启动应用程序的启动指令。
本实施例提供的装置,接收用于指示分屏运行应用程序的分屏指令,根据分屏指令,为应用程序设置分屏标记,根据分屏标记,分屏运行应用程序。由于通过分屏标记可以标记出需要分屏运行的应用程序,所以不需要修改框架层的数据结构,便可以达到分屏运行应用程序的目的。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (22)

1.一种分屏运行应用的方法,其特征在于,包括:
接收用于指示分屏运行应用程序的分屏指令;
根据所述分屏指令,为所述应用程序设置分屏标记;
根据所述分屏标记,分屏运行所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述根据所述分屏指令,为所述应用程序设置分屏标记,包括:
根据所述分屏指令,在所述应用程序的任务链表中设置所述分屏标记,所述任务链表对应于所述应用程序需要分屏展示的页面。
3.根据权利要求2所述的方法,其特征在于,所述根据所述分屏指令,在所述应用程序的任务链表中设置所述分屏标记,包括:
当需要分屏展示的页面是首页面时,为所述首页面创建任务链表,根据所述分屏指令,获得所述分屏标记,将所述分屏标记设置在所述任务链表中;
当需要分屏展示的页面是非首页面时,若所述非首页面不与所述首页面共用任务链表,则为所述非首页面创建一新任务链表,从所述应用程序对应的已存在的任务链表中获取所述分屏标记,将所述分屏标记设置在所述新任务链表中。
4.根据权利要求3所述的方法,其特征在于,所述根据所述分屏指令,获得所述分屏标记,包括:
从所述分屏指令中获取所述分屏标记;或者
根据所述分屏指令,生成所述分屏标记。
5.根据权利要求2所述的方法,其特征在于,所述根据所述分屏标记,分屏运行所述应用程序,包括:
根据所述分屏标记,为所述应用程序设置分屏窗口的分屏参数;
将所述分屏参数提供给所述应用程序,以供所述应用程序根据所述分屏参数将所述页面展示在所述分屏窗口中。
6.根据权利要求5所述的方法,其特征在于,所述将所述分屏参数提供给所述应用程序,以供所述应用程序根据所述分屏参数将所述页面展示在所述分屏窗口中,包括:
向所述应用程序发送第一消息,以通知所述应用程序准备所述页面;
向所述应用程序发送第二消息,所述第二消息包括所述分屏参数,以供所述应用程序确定所述分屏窗口;
在接收到所述应用程序发送的用于通知准备好所述页面的消息后,向所述应用程序发送第三消息,以指示所述应用程序将所述页面展示在所述分屏窗口中。
7.根据权利要求5所述的方法,其特征在于,所述根据所述分屏标记,为所述应用程序设置分屏窗口的分屏参数,包括:
根据所述分屏标记,将整个屏幕划分为至少两个子屏幕;
确定所述分屏窗口所在的目标子屏幕;
根据所述目标子屏幕的屏幕参数,设置所述分屏窗口的分屏参数。
8.根据权利要求5所述的方法,其特征在于,所述根据所述分屏标记,分屏运行所述应用程序,还包括:
在所述分屏窗口中展示所述应用程序的对话框。
9.根据权利要求8所述的方法,其特征在于,在所述分屏窗口中展示所述应用程序的对话框,包括:
当所述应用程序需要展示对话框时,确定所述对话框关联于所述分屏窗口当前展示的页面;
根据所述分屏窗口的分屏参数,确定所述对话框的大小及弹出位置属性参数;
根据所述对话框的大小及弹出位置,在所述分屏窗口中弹出所述对话框。
10.根据权利要求3所述的方法,其特征在于,所述将所述分屏标记设置在所述任务链表中之前,包括:
判断所述应用程序是否是首个运行的应用;
若判断结果为是,则禁止将所述分屏标记设置到所述任务链表中;
若判断结果为否,则将所述分屏标记设置到所述任务链表中。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述分屏指令为用户通过分屏启动入口发出的用于启动所述应用程序的启动指令。
12.一种分屏运行应用的装置,其特征在于,包括:
接收模块,用于接收用于指示分屏运行应用程序的分屏指令;
标记模块,用于根据所述分屏指令,为所述应用程序设置分屏标记;
分屏模块,用于根据所述分屏标记,分屏运行所述应用程序。
13.根据权利要求12所述的装置,其特征在于,所述标记模块具体用于:
根据所述分屏指令,在所述应用程序的任务链表中设置所述分屏标记,所述任务链表对应于所述应用程序需要分屏展示的页面。
14.根据权利要求13所述的装置,其特征在于,所述标记模块具体用于:
当需要分屏展示的页面是首页面时,为所述首页面创建任务链表,根据所述分屏指令,获得所述分屏标记,将所述分屏标记设置在所述任务链表中;
当需要分屏展示的页面是非首页面时,若所述非首页面不与所述首页面共用任务链表,则为所述非首页面创建一新任务链表,从所述应用程序对应的已存在的任务链表中获取所述分屏标记,将所述分屏标记设置在所述新任务链表中。
15.根据权利要求14所述的装置,其特征在于,所述标记模块具体用于:
从所述分屏指令中获取所述分屏标记;或者
根据所述分屏指令,生成所述分屏标记。
16.根据权利要求13所述的装置,其特征在于,所述分屏模块具体用于:
根据所述分屏标记,为所述应用程序设置分屏窗口的分屏参数;
将所述分屏参数提供给所述应用程序,以供所述应用程序根据所述分屏参数将所述页面展示在所述分屏窗口中。
17.根据权利要求16所述的装置,其特征在于,所述分屏模块具体用于:
向所述应用程序发送第一消息,以通知所述应用程序准备所述页面;
向所述应用程序发送第二消息,所述第二消息包括所述分屏参数,以供所述应用程序确定所述分屏窗口;
在接收到所述应用程序发送的用于通知准备好所述页面的消息后,向所述应用程序发送第三消息,以指示所述应用程序将所述页面展示在所述分屏窗口中。
18.根据权利要求16所述的装置,其特征在于,所述分屏模块具体用于:
根据所述分屏标记,将整个屏幕划分为至少两个子屏幕;
确定所述分屏窗口所在的目标子屏幕;
根据所述目标子屏幕的屏幕参数,设置所述分屏窗口的分屏参数。
19.根据权利要求16所述的装置,其特征在于,所述分屏模块还用于:
在所述分屏窗口中展示所述应用程序的对话框。
20.根据权利要求19所述的装置,其特征在于,所述分屏模块具体用于:
当所述应用程序需要展示对话框时,确定所述对话框关联于所述分屏窗口当前展示的页面;
根据所述分屏窗口的分屏参数,确定所述对话框的大小及弹出位置属性参数;
根据所述对话框的大小及弹出位置,在所述分屏窗口中弹出所述对话框。
21.根据权利要求14所述的装置,其特征在于,还包括:
判断模块,用于判断所述应用程序是否是首个运行的应用;若判断结果为是,则禁止所述标记模块将所述分屏标记设置到所述任务链表中;若判断结果为否,则触发所述标记模块将所述分屏标记设置到所述任务链表中。
22.根据权利要求12-21任一项所述的装置,其特征在于,所述分屏指令为用户通过分屏启动入口发出的用于启动所述应用程序的启动指令。
CN201510135127.9A 2015-03-26 2015-03-26 分屏运行应用的方法及装置 Active CN106155768B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510135127.9A CN106155768B (zh) 2015-03-26 2015-03-26 分屏运行应用的方法及装置
PCT/CN2016/076567 WO2016150325A1 (zh) 2015-03-26 2016-03-17 分屏运行应用的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510135127.9A CN106155768B (zh) 2015-03-26 2015-03-26 分屏运行应用的方法及装置

Publications (2)

Publication Number Publication Date
CN106155768A true CN106155768A (zh) 2016-11-23
CN106155768B CN106155768B (zh) 2020-03-31

Family

ID=56978991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510135127.9A Active CN106155768B (zh) 2015-03-26 2015-03-26 分屏运行应用的方法及装置

Country Status (2)

Country Link
CN (1) CN106155768B (zh)
WO (1) WO2016150325A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168664A (zh) * 2017-03-31 2017-09-15 捷开通讯(深圳)有限公司 终端及其屏幕的分屏显示方法、存储装置
CN107506200A (zh) * 2017-09-12 2017-12-22 深圳市金立通信设备有限公司 一种屏幕内容切换方法、终端及计算机可读存储介质
CN112261220A (zh) * 2020-09-18 2021-01-22 湖北亿咖通科技有限公司 应用于终端的分屏显示方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377260B (zh) * 2019-08-29 2024-01-05 亿咖通(湖北)技术有限公司 一种多屏显示系统及方法
CN111736928A (zh) * 2020-06-22 2020-10-02 Oppo(重庆)智能科技有限公司 一种画中画模式启动方法、装置及计算机可读存储介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217177A1 (en) * 2008-02-27 2009-08-27 Cisco Technology, Inc. Multi-party virtual desktop
CN101686280A (zh) * 2008-09-26 2010-03-31 宏达国际电子股份有限公司 以双视窗作为界面的移动装置
CN102411479A (zh) * 2011-12-27 2012-04-11 汉王科技股份有限公司 便携式电子设备的分屏切换方法及装置
CN103034390A (zh) * 2011-09-30 2013-04-10 汉王科技股份有限公司 用于移动终端的多个分屏间移动应用程序的方法及装置
US20130242807A1 (en) * 2006-01-10 2013-09-19 Utbk, Llc Systems and methods to provide communication connections
CN103365525A (zh) * 2012-03-28 2013-10-23 百度在线网络技术(北京)有限公司 移动终端及用于移动终端的多窗口显示方法
US20130337898A1 (en) * 2005-09-07 2013-12-19 Bally Gaming, Inc. System gaming
CN103558959A (zh) * 2013-10-31 2014-02-05 青岛海信移动通信技术股份有限公司 一种应用于Android平台的显示窗口的方法和装置
CN103559055A (zh) * 2013-10-31 2014-02-05 青岛海信移动通信技术股份有限公司 一种应用于Android平台的启动活动的方法和装置
CN103605524A (zh) * 2013-11-26 2014-02-26 广东欧珀移动通信有限公司 一种在移动终端分屏运行程序的方法及装置
CN104049866A (zh) * 2014-06-25 2014-09-17 深圳市中兴移动通信有限公司 一种移动终端及其分屏的实现方法和装置
CN104182196A (zh) * 2014-08-26 2014-12-03 深圳市中兴移动通信有限公司 分屏显示的方法和移动终端
CN104238949A (zh) * 2014-10-12 2014-12-24 福州瑞芯微电子有限公司 一种分屏显示方法和装置
CN104346216A (zh) * 2014-05-30 2015-02-11 广州三星通信技术研究有限公司 电子设备的多任务执行方法和设备
CN104461242A (zh) * 2014-12-08 2015-03-25 深圳市嘉乐派科技有限公司 一种基于Android操作系统的多窗口界面实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447752B1 (ko) * 2008-03-25 2014-10-06 삼성전자주식회사 터치스크린에서 화면 분할과 화면 표시장치 및 방법
CN103870112B (zh) * 2014-02-17 2017-02-08 联想(北京)有限公司 一种信息处理方法及电子设备

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130337898A1 (en) * 2005-09-07 2013-12-19 Bally Gaming, Inc. System gaming
US20130242807A1 (en) * 2006-01-10 2013-09-19 Utbk, Llc Systems and methods to provide communication connections
US20090217177A1 (en) * 2008-02-27 2009-08-27 Cisco Technology, Inc. Multi-party virtual desktop
CN101686280A (zh) * 2008-09-26 2010-03-31 宏达国际电子股份有限公司 以双视窗作为界面的移动装置
CN103034390A (zh) * 2011-09-30 2013-04-10 汉王科技股份有限公司 用于移动终端的多个分屏间移动应用程序的方法及装置
CN102411479A (zh) * 2011-12-27 2012-04-11 汉王科技股份有限公司 便携式电子设备的分屏切换方法及装置
CN103365525A (zh) * 2012-03-28 2013-10-23 百度在线网络技术(北京)有限公司 移动终端及用于移动终端的多窗口显示方法
CN103558959A (zh) * 2013-10-31 2014-02-05 青岛海信移动通信技术股份有限公司 一种应用于Android平台的显示窗口的方法和装置
CN103559055A (zh) * 2013-10-31 2014-02-05 青岛海信移动通信技术股份有限公司 一种应用于Android平台的启动活动的方法和装置
CN103605524A (zh) * 2013-11-26 2014-02-26 广东欧珀移动通信有限公司 一种在移动终端分屏运行程序的方法及装置
CN104346216A (zh) * 2014-05-30 2015-02-11 广州三星通信技术研究有限公司 电子设备的多任务执行方法和设备
CN104049866A (zh) * 2014-06-25 2014-09-17 深圳市中兴移动通信有限公司 一种移动终端及其分屏的实现方法和装置
CN104182196A (zh) * 2014-08-26 2014-12-03 深圳市中兴移动通信有限公司 分屏显示的方法和移动终端
CN104238949A (zh) * 2014-10-12 2014-12-24 福州瑞芯微电子有限公司 一种分屏显示方法和装置
CN104461242A (zh) * 2014-12-08 2015-03-25 深圳市嘉乐派科技有限公司 一种基于Android操作系统的多窗口界面实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EYAL BELLISHA: "Split Screens in Android Exist", 《HTTP://ANDROIDINTERNALSBLOG.BLOGSPOT.COM/2014/03/SPLIT-SCREENS-IN-ANDROID-EXIST.HTML》 *
WWW.MYEXCEPTION.CN网友: "《Android 4.4(KitKat)窗口管理分系统-体系框架》", 《HTTP://WWW.MYEXCEPTION.CN/ANDROID/1710667.HTML》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168664A (zh) * 2017-03-31 2017-09-15 捷开通讯(深圳)有限公司 终端及其屏幕的分屏显示方法、存储装置
CN107506200A (zh) * 2017-09-12 2017-12-22 深圳市金立通信设备有限公司 一种屏幕内容切换方法、终端及计算机可读存储介质
CN112261220A (zh) * 2020-09-18 2021-01-22 湖北亿咖通科技有限公司 应用于终端的分屏显示方法

Also Published As

Publication number Publication date
CN106155768B (zh) 2020-03-31
WO2016150325A1 (zh) 2016-09-29

Similar Documents

Publication Publication Date Title
US10331287B2 (en) User interface spaces
US8769436B2 (en) Adaptive UI regions for enterprise applications
US9058696B2 (en) Display controller, display control method and computer-readable medium
CN107426403B (zh) 移动终端
US7010755B2 (en) Virtual desktop manager
CN105988860B (zh) 执行应用程序的方法及移动装置
US9606705B2 (en) Techniques for capturing and displaying user interaction data
AU2014296339B2 (en) Multi-monitor full screen mode in a windowing environment
US9436385B2 (en) Invocation control over keyboard user interface
CN106293584A (zh) 一种双屏显示方法及终端
CN107508961A (zh) 一种活动窗口启动方法、终端及计算机可读存储介质
US20120159383A1 (en) Customization of an immersive environment
DE202015003891U1 (de) Vorgefertigte Antworten in Nachrichten
CN106155768A (zh) 分屏运行应用的方法及装置
WO2006044834A2 (en) Desktop alert management
CA2732050A1 (en) Previewing a new event on a small screen device
TWI534694B (zh) 用於管理沉浸式環境的電腦實施方法及運算裝置
CN106201167A (zh) 终端屏幕的分屏显示方法、装置及终端
CN105677351B (zh) 多窗口兼容显示方法及装置
US7574670B2 (en) Systems and methods for interfacing with a user of a computer system
JP6058132B2 (ja) ポップアップ表示装置
CN103513969A (zh) 应用程序入口建立方法、装置和终端
WO2002025420A1 (en) Method, system and computer program for managing views at a computer display
WO2023005828A1 (zh) 消息显示方法、装置和电子设备
CN106302932A (zh) 在通信终端中查看通讯记录的方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1230314

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201123

Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China

Patentee after: Zebra smart travel network (Hong Kong) Limited

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right