CN116954781A - 一种程序的多屏运行方法、装置、设备和存储介质 - Google Patents

一种程序的多屏运行方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN116954781A
CN116954781A CN202310261514.1A CN202310261514A CN116954781A CN 116954781 A CN116954781 A CN 116954781A CN 202310261514 A CN202310261514 A CN 202310261514A CN 116954781 A CN116954781 A CN 116954781A
Authority
CN
China
Prior art keywords
program
container
resource
screen
priority
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
CN202310261514.1A
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 CN202310261514.1A priority Critical patent/CN116954781A/zh
Publication of CN116954781A publication Critical patent/CN116954781A/zh
Pending legal-status Critical Current

Links

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/451Execution arrangements for user interfaces
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种程序的多屏运行方法、装置、设备和存储介质,用于使得各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。包括:获取通过第一交互屏生成的第一指令,第一指令为响应在第一交互屏的第一操作生成,且第一指令携带第一程序的第一调用标识,第一程序运行于与第一交互屏对应的第一容器,第一容器包括第一程序的容器镜像;根据第一调用标识从第一容器中调用第一程序的容器镜像,并运行容器镜像;基于第一程序的用户界面数据在第一交互屏渲染第一程序的用户界面。本申请提供的技术方案可以应用于计算机、人工智能等等领域。

Description

一种程序的多屏运行方法、装置、设备和存储介质
技术领域
本申请涉及计算领域,尤其涉及一种程序的多屏运行方法、装置、设备和存储介质。
背景技术
随着智能驾驶和移动网络的发展,车载终端的功能越来越多样化和智能化。目前智能汽车里通常会配备多个屏幕。在车载终端只有一个的情况下,如何解决多个屏幕可以同时调用程序并适配相应的屏幕,将成为一个急需解决的问题。
发明内容
本申请实施例提供了一种程序的多屏运行方法、装置、设备和存储介质,用于使得各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。
有鉴于此,本申请一方面提供一种程序的多屏运行方法,包括:获取通过第一交互屏生成的第一指令,该第一指令为响应在该第一交互屏的第一操作生成,且该第一指令携带第一程序的第一调用标识,该第一程序运行于与该第一交互屏对应的第一容器,该第一容器包括该第一程序的容器镜像;根据该第一调用标识从该第一容器中调用该第一程序的容器镜像,并运行该容器镜像;基于该第一程序的用户界面数据在该第一交互屏渲染该第一程序的用户界面。
本申请另一方面提供一种计算装置,包括:获取模块,用于获取通过第一交互屏生成的第一指令,该第一指令为响应在该第一交互屏的第一操作生成,且该第一指令携带第一程序的第一调用标识,该第一程序运行于与该第一交互屏对应的第一容器,该第一容器包括该第一程序的容器镜像;
处理模块,用于根据该第一调用标识从该第一容器中调用该第一程序的容器镜像,并运行该容器镜像;
渲染模块,用于基于该第一程序的用户界面数据在该第一交互屏渲染该第一程序的用户界面。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于基于该第一程序和该第一程序的运行环境构建该第一程序的容器镜像。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于基于该第一程序的容器镜像生成该第一容器;
配置该第一容器用于运行该第一程序的第一运行参数,该第一运行参数至少包括该第一容器的容器标识,该第一容器占用的中央处理器权重、该第一容器占用的内存值,该第一交互屏的显示区域、该第一程序对应的第一绘制资源标识。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该获取模块,还用于获取通过第二交互屏生成的第二指令,该第二指令为响应在该第二交互屏的第二操作生成,且该第二指令携带第一程序的第二调用标识,该第二程序运行于与该第二交互屏对应的第二容器,该第二容器包括该第二程序的容器镜像;
该处理模块,还用于根据该第二调用标识从该第二容器中调用该第二程序的容器镜像,并运行该容器镜像;
该渲染模块,还用于向该第二交互屏反馈该第二程序的用户界面数据,使得该第二交互屏渲染该第二程序的用户界面。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,在该第一程序和该第二程序为同一程序时,该处理模块,还用于基于设备标识为该第一程序和该第二程序在账户系统创建同一用户账号,该设备标识为该第一交互屏和该第二交互屏共享的计算装置的设备标识。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该装置还包括存储模块,用于将该第一容器的数据存储于第一存储空间,并将该第二容器的数据存储于第二存储空间,该第一存储空间与该第二存储空间为不同的存储空间。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该第一程序和该第二程序为基于小程序框架创建的程序,该小程序为依赖于宿主程序运行的一种程序;
或者,该第一程序和该第二程序为基于安卓框架创建的程序;
或者,该第一程序和该第二程序为基于Flutter框架创建的程序。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该获取模块,还用于在该第一程序和该第二程序竞争第一资源,且该第一资源为当前时刻的独占资源时,获取该第一程序的第一优先级以及该第二程序的第二优先级;
该处理模块,还用于根据该第一优先级和该第二优先级确定该第一资源的占用结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于在该第一优先级高于该第二优先级时,确定该占用结果为该第一程序占用该第一资源。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于为该第二程序分配第二资源,该第二资源为新增资源,且该第二资源与该第一资源为同类资源。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于在该第一程序释放该第一资源之后,为该第二程序分配该第一资源。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该获取模块,具体用于获取该第一程序请求分配该第一资源的第一请求时刻和该第二程序请求分配该第一资源的第二请求时刻,该第一请求时刻作为该第一优先级,该第二请求时刻作为该第二优先级,该第一请求时刻早于该第二请求时刻时,确定该第一优先级低于该第二优先级。
本申请另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:基于屏幕创建基于程序的容器镜像生成的容器,这样使得各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。同时以容器技术来实现不同屏幕的适配,减少了程序在逻辑适配上的开发,进而提高了程序的开发效率。
附图说明
图1为本申请实施例中通信系统的一个架构示意图;
图2a为本申请实施例中程序的多屏运行的一个交互架构示意图;
图2b为本申请实施例中程序的多屏运行时容器技术的一个示意图;
图2c为本申请实施例中程序的多屏运行的一个交互界面示意图;
图2d为本申请实施例中程序的多屏运行的一个交互界面示意图;
图3为本申请实施例中程序的多屏运行的一个实施例示意图;
图3a为本申请实施例中生成第一指令的流程示意图;
图4为本申请实施例中两个交互屏时的程序运行示意图;
图5为本申请实施例中资源竞争的一个应用场景示意图;
图6为本申请实施例中计算装置的一个实施例示意图;
图7为本申请实施例中计算装置的另一个实施例示意图;
图8为本申请实施例中计算装置的另一个实施例示意图;
图9为本申请实施例中计算装置的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种程序的多屏运行方法、装置、设备和存储介质,用于使得各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着智能驾驶和移动网络的发展,车载终端的功能越来越多样化和智能化。目前智能汽车里通常会配备多个屏幕。在车载终端只有一个的情况下,如何解决多个屏幕可以同时调用程序并适配相应的屏幕,将成为一个急需解决的问题。
为了解决这一问题,本申请提供如下技术方案:获取通过第一交互屏生成的第一指令,该第一指令为响应在该第一交互屏的第一操作生成,且该第一指令携带第一程序的第一调用标识,该第一程序运行于与该第一交互屏对应的第一容器,该第一容器包括该第一程序的容器镜像;根据该第一调用标识从该第一容器中调用该第一程序的容器镜像,并运行该容器镜像;基于该第一程序的用户界面数据在该第一交互屏渲染该第一程序的用户界面。这样基于屏幕创建基于程序的容器镜像生成的容器,这样使得各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。同时以容器技术来实现不同屏幕的适配,减少了程序在逻辑适配上的开发,进而提高了程序的开发效率。
为了方便理解,下面对本申请中涉及的部分名词进行说明:
车载小程序:是一个支持小程序运行的平台,该平台在车载中控设备中运行,并且可兼容微信小程序的加载和展示。
小程序框架:一套遵循小程序官方(组件、应用程序接口(ApplicationProgramming Interface,API)等)规范的代码框架,该框架(引擎)能将小程序按照开发者的设计意图进行渲染展示,并且提供官方规范中的各项终端能力等。
容器:容器是一个虚拟的执行环境就是一个容器。可以为容器分配相关的中央处理器(Central Processing Unit,CPU)和内存(Memory)份额,提供设备(Device)访问控制,提供独立的命名空间(Namespace(网络、PID、IPC、mnt、uts))进行资源的隔离。应用程序在容器中执行,彼此独立互不干扰。
本申请实施例提供的一种程序的多屏运行方法、装置、设备及存储介质,能够实现各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序的功能。参见图1,如图1是本申请实施例提供的程序的多屏运行方法的一个应用场景下的一个可选的架构示意图,为实现支撑一个程序的多屏运行方法方案,该终端设备100可以通过网络200连接服务器300,而服务器300连接数据库400,同时终端设备100通过硬件接口连接多个交互屏500。网络200可以是广域网或者局域网,又或者是二者的组合。其中用户实现程序的多屏运行方法方案的客户端部署于终端设备100上,其中,客户端可以通过浏览器的形式运行于终端设备100上,也可以通过独立的应用程序(application,APP)的形式运行于终端设备100上等,对于客户端的具体展现形式,此处不做限定。本申请涉及的服务器300可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备100可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载设备、可穿戴设备等,但并不局限于此。终端设备100以及服务器300可以通过有线或无线通信方式通过网络200进行直接或间接地连接,本申请在此不做限制。服务器300和终端设备100的数量也不做限制。其中,数据库400,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库管理系统(Database Management System,DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、可扩展标记语言(Extensible Markup Language,XML);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(Structured Query Language,SQL)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。在本申请中,数据库400可以用于存储运行于该终端设备100中各个程序的数据,同时可以理解的是,上述数据的存储地址并不限于数据库,例如还可以存储于终端设备100、区块链或者服务器300的分布式文件系统中等。
基于上述描述,下面可以对本申请中的程序的多屏运行交互架构进行说明,如图2a所示,该终端设备设置有一个操作系统(即OS),该终端设备对接多个交互屏(比如图2a所示的触摸屏1、触摸屏2以及触摸屏3)。在该终端设备的操作系统启动时,每个触摸屏均提供一个界面,此时,该界面中可以包括每个触摸屏对应的程序(可以是车载小程序也可以是基于安卓框架或者Flutter框架构建的程序(即APP))的点选控件。
基于上述交互架构描述,下面可以对本申请中的程序的多屏运行的容器架构进行说明,一个示例性方案中,假设该终端设备为车载终端,而该车载终端上均加载车载小程序,则容器架构可以如图2b所示。该触摸屏1将配置一个容器1(如图2b所示的ForegroundScreen)、触摸屏2配置一个容器2(如图2b所示的Background Screen1)以及触摸屏3配置一个容器3(如图2b所示的Background Screen2)。其中,每个容器中将配置车载小程序框架(即MiniProgram Framework),即该车载小程序框架(即MiniProgram Framework)运行在一个基于linux的容器环境中。而每个容器依据不同的运行环境,将配置不同的运行参数。一个示例性方案中,运行参数可以配置如表1所示。
表1
其中,该图2b中所示的OEM system interface adapter Layer为车载终端的操作系统API的适配层,为上层容器的程序提供接口支持。
本申请中,该运行参数可以根据具体情况进行配置,而具体配置可以基于Linux容器技术的控制组(Cgroup)进行配置。即使用Linux/cgroups-v2控制程序的CPU时间分布;使用Linux/Cgroup来控制当前容器内程序使用的最大内存。而各个容器在具体运行时,使用的资源将不会超出配置的资源参数。
可以理解的是,上述表1仅示出了该容器在配置运行参数时的部分参数,根据实际运行情况,该容器也可以配置其他参数。比如,配置该容器限制使用终端的操作系统的敏感系统。一个示例性方案中,可以配置某一程序限制调用终端的定位功能等等。
基于上述交互架构和容器架构,该程序的多屏运行交互界面场景可以如图2c所示,该触摸屏1可以设置为主屏,此时该触摸屏1中可以显示全部的程序的点选控件(可以理解的是,该程序的点选控件可以程序的启动图标控件,也可以是窗口的形式显示在该主屏上),比如通信软件A、导航地图B、娱乐软件C和娱乐软件D。同时,还可以加载车载小程序a、车载小程序b以及车载小程序c。而该触摸屏2和触摸屏3为次屏,此时该触摸屏2和该触摸屏蔽3可以仅展示导航地图B、娱乐软件C、娱乐软件D以及车载小程序a。而在本申请提供的技术方案中,如图2d所示,用户可以通过点选触摸屏1中显示的娱乐软件C的点选控件启动该娱乐软件C,此时该触摸屏1中将显示该娱乐软件C的运行界面;而另一个用户可以通过点选触摸屏2中显示的娱乐软件C的点选控件启动该娱乐软件C,此时该触摸屏2中将显示该娱乐软件C的运行界面;同时还可以通过点选触摸屏3中显示的娱乐软件D的点选控件启动该娱乐软件D,此时该触摸屏3中将显示该娱乐软件D的运行界面。可以理解的是,该触摸屏2与该触摸屏1所显示的运行界面可以根据用户的不同选择,出现不同的用户界面。
可以理解的是,在本申请的具体实施方式中,涉及到输入数据和输出数据等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
结合上述介绍,下面以车载终端以及车载终端对应的交互屏为执行主体对本申请中程序的多屏运行方法进行介绍,请参阅图3,本申请实施例中程序的多屏运行方法的一个实施例包括:
301、第一交互屏显示第一界面,该第一界面包括第一程序对应的第一控件,该第一程序运行于与该第一交互屏对应的第一容器,该第一容器包括该第一程序的容器镜像。
本实施例中,在该车载终端的操作系统启动之后,该车载终端可以启动该第一交互屏的程序入口容器(即该容器中仅用于该第一交互屏对应的程序的接入口,可以理解的是,该接入口可以是程序对应的图标控件,也可以是以小窗口的形式显示该程序的初始界面)。
基于容器技术,该第一程序可以以如图2b所示的方案运行于该第一交互屏对应的容器。具体来说,其具体流程可以如下:
基于小程序框架或者安卓框架或者Flutter框架创建该第一程序;然后基于该第一程序和该第一程序的运行环境封装生成该第一程序的容器镜像;然后根据该第一程序的容器镜像生成可以运行该第一程序的第一容器。此时可以通过该Linux的命名空间(Namespace)和控制组(Cgroup)为该第一容器分配CPU资源、内存资源以及对应的运行显示屏幕。假如该第一交互屏为图2b所示的Foreground Screen,该第一容器命名为“Foreground Screen”,此时该第一程序在该第一容器的参数可以配置如下:
“app_id:mpp_1
cpu:1000
memory:1024M
surface id:120
display rect:1920*720”。
即该第一程序在该第一容器运行时,该第一程序最大可以占用该车载终端的CPU的1000,而该最大可以占用的内存为1024M,该第一程序对应的绘制资源标识为120,该第一程序将在该第一交互屏上占用的显示区域为1920*720。
可以理解的是,本实施例中,可以一个容器仅运行一个程序也可以一个容器运行多个程序。即该第一交互屏可以对应多个容器也可以仅对应一个容器。在该第一容器可以运行多个程序时,该运行参数可以针对每个程序进行配置也可以仅针对程序之间不同的参数进行单独设置,具体此处不做限定。比如在该第一容器中包括该第一程序,还包括另一个程序,则该第一容器中的运行参数可以配置如下:
“app_id:mpp_1
cpu:1000
memory:1024M
surface id:120
display rect:1920*720
app_id:mpp_4
cpu:1000
memory:1024M
surface id:123
display rect:1920*720”。
302、车载终端响应于对该第一控件的第一操作生成第一指令,该第一指令携带第一程序的第一调用标识。
本实施例中,该车载终端响应于对该第一交互屏进行单击或者双击或者长按等触摸操作,或者通过手势控制点选该第一程序对应的第一控件(即接入口,比如图标控件或者以小窗口对应的初始界面等等)生成该第一指令,其中,该第一指令将携带该第一程序的调用标识。
可选的,该车载终端在识别该第一操作并根据该第一操作生成该第一指令可以采选如下方式,如图3a所示:
1、用户点击该第一交互屏中该第一控件对应的位置,生成一个触发指令;
2、该触发指令携带位置信息反馈至该车载终端的绘制资源管理中心(即Surfacemanager),然后该车载终端的绘制资源管理中心将根据该位置信息获取到该第一程序的第一绘制资源标识;
3、基于该第一绘制资源标识生成该第一指令。
303、根据该第一调用标识从该第一容器中调用该第一程序的容器镜像,并运行该容器镜像。
该车载终端基于该第一程序的第一调用标识查询到该第一程序运行的第一容器;并基于该第一容器中包括的第一程序的容器镜像运行该容器镜像。
在该第一调用标识为绘制资源标识时,该第一容器可以包括多个绘制资源标识也可以只包括一个绘制资源。具体表现在该第一交互屏是否可以同时展示多个用户界面,具体可以根据实际业务需求进行限定,此处不做限定。
304、车载终端基于该第一程序的用户界面数据在该第一交互屏渲染该第一程序的用户界面。
本实施例中,该车载终端将该第一程序的用户界面数据基于该绘制资源标识在该第一交互屏进行渲染得到该第一程序的用户界面。
可以理解的是,上述是一个交互屏与车载设备之间的程序调用进行说明,下面以两个交互屏与车载设备之间进行程序调用,且两个交互屏均调用程序(下面以第一程序和第二程序对该第一交互屏上运行的程序和第二交互屏上运行的程序进行说明,在两个交互屏调用相同程序时,第一程序与第二程序为相同程序;在两个交互屏调用不相同程序时,第一程序与第二程序为不相同程序)进行说明,具体如图4所示,其中,该第一交互屏在执行该第一程序的操作可以如图上述图3所示,具体此处不再赘述。而该第二交互屏在执行该第一程序的操作可以如下:
401、第二交互屏显示第二界面,该第二界面包括第二程序对应的第二控件,该第二程序运行于与该第二交互屏对应的第二容器,该第二容器包括该第二程序的容器镜像。
本实施例中,在该车载终端的操作系统启动之后,该车载终端可以启动该第二交互屏的程序入口容器(即该容器中仅用于该第二交互屏对应的程序的接入口,可以理解的是,该接入口可以是程序对应的图标控件,也可以是以小窗口的形式显示该程序的初始界面)。
可以理解的是,该第二交互屏与该第一交互屏对于相同程序展示的接入口设置可以相同也可以不相同,具体此处不做限定。
基于容器技术,该第二程序同样可以以如图2b所示的方案运行于该第二交互屏对应的容器。具体来说,其具体流程可以如下:
基于小程序框架或者安卓框架或者Flutter框架创建该第二程序;然后基于该第二程序和该第二程序的运行环境封装生成该第二程序的容器镜像;然后根据该第二程序的容器镜像生成可以运行该第二程序的第二容器。此时可以通过该Linux的命名空间(Namespace)和控制组(Cgroup)为该第二容器分配CPU资源、内存资源以及对应的运行显示屏幕。假如该第二交互屏为图2b所示的Background Screen1,该第二容器命名为“Background Screen1”,此时若该第一程序与该第二程序为相同程序,则该第二程序在该第二容器的参数可以配置如下:
“app_id:mpp_1
cpu:900
memory:720M
surface id:121
display rect:1280*720”。
即该第二程序在该第二容器运行时,该第二程序最大可以占用该车载终端的CPU的900,而该最大可以占用的内存为720M,该第一程序对应的绘制资源标识为121,该第一程序将在该第一交互屏上占用的显示区域为1280*720。
此时若该第一程序与该第二程序为不同程序,则该第二程序在该第二容器的参数可以配置如下:
“app_id:mpp_2
cpu:900
memory:720M
surface id:121
display rect:1280*720”。
即该第二程序在该第二容器运行时,该第二程序最大可以占用该车载终端的CPU的900,而该最大可以占用的内存为720M,该第一程序对应的绘制资源标识为121,该第一程序将在该第一交互屏上占用的显示区域为1280*720。
可以理解的是,本实施例中,可以一个容器仅运行一个程序也可以一个容器运行多个程序。即该第一交互屏可以对应多个容器也可以仅对应一个容器。在该第一容器可以运行多个程序时,该运行参数可以针对每个程序进行配置也可以仅针对程序之间不同的参数进行单独设置,具体此处不做限定。比如在该第一容器中包括该第一程序,还包括另一个程序,则该第一容器中的运行参数可以配置如下:
“app_id:mpp_1
cpu:900
memory:720M
surface id:121
display rect:1280*720
app_id:mpp_5
cpu:900
memory:720M
surface id:124
display rect:1280*720”。
可以理解的是,为了保证程序之间的隔离性以及防止程序产生冲突,此时该第一容器与该第二容器的数据存储需要分别进行独立存储,即该第一容器存储第一存储空间,而该第二容器存储第二存储空间,且第一存储空间与该第二存储空间不相同。
402、车载终端响应于对该第二控件的第二操作生成第二指令,该第二指令携带第二程序的第二调用标识。
本实施例中,该车载终端响应于对该第二交互屏进行单击或者双击或者长按等触摸操作,或者通过手势控制点选该第二程序对应的第二控件(即接入口,比如图标控件或者以小窗口对应的初始界面等等)生成该第二指令,其中,该第二指令将携带该第二程序的调用标识。
可以理解的是,该第一操作与该第二操作可以相同,也可以不相同,具体此处不做限定。
可选的,该车载终端在识别该第二操作并根据该第二操作生成该第二指令可以采选如与图3a所示的相同方式,具体此处不再赘述。
403、车载终端根据该第二调用标识从该第二容器中调用该第二程序的容器镜像,并运行该容器镜像。
该车载终端基于该第二程序的第二调用标识查询到该第二程序运行的第二容器;并基于该第二容器中包括的第二程序的容器镜像运行该容器镜像。
404、车载终端基于该第二程序的用户界面数据在该第二交互屏渲染该第二程序的用户界面。
本实施例中,该车载终端将该第二程序的用户界面数据基于该绘制资源标识在该第二交互屏进行渲染得到该第二程序的用户界面。
一个示例性方案中,该交互界面显示可以上述图2d中触摸屏1和触摸屏2所示或者如上述图2d中触摸屏1和触摸屏3所示,具体此处不再赘述。
本实施例中,在该第一程序与该第二程序为相同程序时,该第一程序和该第二程序可以基于该车载设备的设备标识共享一个用户账号,这样可以方便进行账号管理。同理,该第一程序和该第二程序也可以独立进行账号管理,这样方便不同的用户进行独立的操作。具体此处不做限定。
可以理解的是,该车载终端还可以接入更多的交互屏,并不限定于本申请提供的一个交互屏与两个交互屏。而在接入更多的交互屏时,各个交互屏对于程序的运行采用上述图3和图4所示的方案,具体此处不再赘述。
基于上述两个交互屏调用程序的应用场景,若分别运行于两个交互屏的两个程序对该车载终端的唯一资源进行占用时,将会涉及到资源竞争问题。本实施例中,该资源竞争可以基于两个程序的优先级进行判决,即优先级高的优先占用该唯一资源。具体可以如下:
在该第一程序和该第二程序竞争第一资源,且该第一资源为当前时刻的独占资源时,获取该第一程序的第一优先级以及该第二程序的第二优先级;在该第一优先级高于该第二优先级时,确定该占用结果为该第一程序占用该第一资源;为该第二程序分配第二资源,该第二资源为新增资源,且该第二资源与该第一资源为同类资源;在该第一程序释放该第一资源之后,为该第二程序分配该第一资源。比如对于车载扬声器的占用,通话的优先级最高,无论通话是先申请扬声器还进后申请扬声器,都将优先播放通话内容。在通话之外,若是其他需要占用扬声器的程序,则后启动的将占用该扬声器。而在该车载终端又增加一个扬声器(比如增加了一个蓝牙音响或者蓝牙耳机)时,该车载终端可以将新增的扬声器分配给未占用资源的程序。或者占用资源的程序释放了扬声器,则该车载终端可以将扬声器再分配给之前被抢占的程序。
下面以如图5所示的应用场景对本申请中资源竞争进行说明:
1、在第一时刻,小程序1启动,向仲裁模块发送使用扬声器播放音频的请求。
2、仲裁模块在确定当前只有该小程序1申请扬声器时,将扬声器分配给该小程序1,并反馈播放成功的消息。
3、在第二时刻,小程序2启动,向仲裁模块发送使用扬声器播放音频的请求。
4、仲裁模块在确定当前还有小程序1占用扬声器,则在确定该小程序2的优先级高于该小程序1的优先级时,将打断小程序1的播放进程,并向小程序1反馈打断播放的消息。
5、仲裁模块将扬声器分配给该小程序2,并向该小程序2反馈播放成功的消息。
6、在第三时刻,在小程序2连接上蓝牙耳机时,该仲裁模块向该小程序2反馈使用耳机播放的消息。
7、在第四时刻,该小程序1向仲裁模块发送使用扬声器播放音频的请求。
8、仲裁模块在确定当前扬声器空闲时,将扬声器分配给该小程序1,并反馈播放成功的消息。
9、第五时刻,在小程序2断开蓝牙耳机时,该仲裁模块将打断小程序2的播放进程,并向小程序2反馈打断播放的消息。可以理解的是,此时该仲裁模块同样也可以重复步骤4,即打断该小程序1的播放进程,重新再将扬声器分配给该小程序2。具体此处不做限定。
下面对本申请中的计算装置进行详细描述,请参阅图6,图6为本申请实施例中计算装置的一个实施例示意图,计算装置20包括:
获取模块201,用于获取通过第一交互屏生成的第一指令,该第一指令为响应在该第一交互屏的第一操作生成,且该第一指令携带第一程序的第一调用标识,该第一程序运行于与该第一交互屏对应的第一容器,该第一容器包括该第一程序的容器镜像;
处理模块202,用于根据该第一调用标识从该第一容器中调用该第一程序的容器镜像,并运行该容器镜像;
渲染模块203,用于基于该第一程序的用户界面数据在该第一交互屏渲染该第一程序的用户界面。
本申请实施例中,提供了一种计算装置。采用上述装置,基于屏幕创建基于程序的容器镜像生成的容器,这样使得各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。同时以容器技术来实现不同屏幕的适配,减少了程序在逻辑适配上的开发,进而提高了程序的开发效率。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,
该处理模块202,还用于基于该第一程序和该第一程序的运行环境构建该第一程序的容器镜像。
本申请实施例中,提供了一种计算装置。采用上述装置,基于容器技术将对应的程序和程序的运行环境进行封装得到容器镜像,这样可以使得不同的程序之间相互隔离,防止程序冲突。同时使得程序在适配不同的容器时减少了程序在逻辑适配上的开发,进而提高了程序的开发效率。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,该处理模块202,还用于基于该第一程序的容器镜像生成该第一容器;
配置该第一容器用于运行该第一程序的第一运行参数,该第一运行参数至少包括该第一容器的容器标识,该第一容器占用的中央处理器权重、该第一容器占用的内存值,该第一交互屏的显示区域、该第一程序对应的第一绘制资源标识。
本申请实施例中,提供了一种计算装置。采用上述装置,每个不同的容器可以配置相应的运行参数,从而使得每个容器按照实际需求灵活分配资源,满足实际需求。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,该获取模块201,还用于获取通过第二交互屏生成的第二指令,该第二指令为响应在该第二交互屏的第二操作生成,且该第二指令携带第一程序的第二调用标识,该第二程序运行于与该第二交互屏对应的第二容器,该第二容器包括该第二程序的容器镜像;
该处理模块202,还用于根据该第二调用标识从该第二容器中调用该第二程序的容器镜像,并运行该容器镜像;
该渲染模块203,还用于向该第二交互屏反馈该第二程序的用户界面数据,使得该第二交互屏渲染该第二程序的用户界面。
本申请实施例中,提供了一种计算装置。采用上述装置,不同的屏幕创建不同的基于程序的容器镜像生成的容器,这样使得各个屏幕运行的程序之间相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。同时以容器技术来实现不同屏幕的适配,减少了程序在逻辑适配上的开发,进而提高了程序的开发效率。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,在该第一程序和该第二程序为同一程序时,该处理模块202,还用于基于设备标识为该第一程序和该第二程序在账户系统创建同一用户账号,该设备标识为该第一交互屏和该第二交互屏共享的计算装置的设备标识。
本申请实施例中,提供了一种计算装置。采用上述装置,不同屏幕对应的同一程序的账号系统设置为同一账号,这样可以统一管理多个屏幕对应的同一程序,从而方便管理。
可选地,在上述图6所对应的实施例的基础上,如图7所示,本申请实施例提供的计算装置20的另一实施例中,该装置还包括存储模块204,用于将该第一容器的数据存储于第一存储空间,并将该第二容器的数据存储于第二存储空间,该第一存储空间与该第二存储空间为不同的存储空间。
本申请实施例中,提供了一种计算装置。采用上述装置,不同的容器使用不同的存储空间。这样使得各个屏幕运行的程序之间从数据层就相互隔离,防止程序冲突,从而使得不同的屏幕可以同时调用程序。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,该第一程序和该第二程序为基于小程序框架创建的程序,该小程序为依赖于宿主程序运行的一种程序;
或者,该第一程序和该第二程序为基于安卓框架创建的程序;
或者,该第一程序和该第二程序为基于Flutter框架创建的程序。
本申请实施例中,提供了一种计算装置。采用上述装置,提供多种类型的程序框架,从而增加了方案的泛化性。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中该获取模块201,还用于在该第一程序和该第二程序竞争第一资源,且该第一资源为当前时刻的独占资源时,获取该第一程序的第一优先级以及该第二程序的第二优先级;
该处理模块202,还用于根据该第一优先级和该第二优先级确定该第一资源的占用结果。
本申请实施例中,提供了一种计算装置。采用上述装置,对于终端的独占资源,按照优先级来为程序分配资源,从而防止程序之间存在资源冲突。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,该处理模块202,具体用于在该第一优先级高于该第二优先级时,确定该占用结果为该第一程序占用该第一资源。
本申请实施例中,提供了一种计算装置。采用上述装置,对于终端的独占资源,按照优先为优先级高的程序分配资源,从而防止程序之间存在资源冲突。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,该处理模块202,还用于为该第二程序分配第二资源,该第二资源为新增资源,且该第二资源与该第一资源为同类资源。
本申请实施例中,提供了一种计算装置。采用上述装置,在多个同类型的资源时,可以按需为该程序分配相应的资源。这样使得程序运行更符合用户需求。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,该处理模块202,还用于在该第一程序释放该第一资源之后,为该第二程序分配该第一资源。
本申请实施例中,提供了一种计算装置。采用上述装置,对于程序之间的资源分配,在独占资源被释放时,可以为下一个请求资源的程序进行再次分配。这样使得程序运行更符合用户需求。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的计算装置20的另一实施例中,该获取模块201,具体用于获取该第一程序请求分配该第一资源的第一请求时刻和该第二程序请求分配该第一资源的第二请求时刻,该第一请求时刻作为该第一优先级,该第二请求时刻作为该第二优先级,该第一请求时刻早于该第二请求时刻时,确定该第一优先级低于该第二优先级。
本申请实施例中,提供了一种计算装置。采用上述装置,以请求资源的时刻为优先级,这样可以在为程序分配资源时,更符合实际需求。
本申请提供的终端设备的结构可如参阅图8,图8是本申请实施例提供的一种终端设备结构示意图,该终端设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对终端设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在终端设备300上执行存储介质330中的一系列指令操作。
终端设备300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由终端设备所执行的步骤可以基于该图8所示的终端设备结构。
本申请提供的计算装置可用于终端设备,请参阅图9,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。在本申请实施例中,以终端设备为智能手机为例进行说明:
图9示出的是与本申请实施例提供的终端设备相关的智能手机的部分结构的框图。参考图9,智能手机包括:射频(radio frequency,RF)电路410、存储器420、输入单元430、显示单元440、传感器450、音频电路460、无线保真(wireless fidelity,WiFi)模块470、处理器480、以及电源490等部件。本领域技术人员可以理解,图9中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图9对智能手机的各个构成部件进行具体的介绍:
RF电路410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器480处理;另外,将设计上行的数据发送给基站。通常,RF电路410包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noiseamplifier,LNA)、双工器等。此外,RF电路410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystem of mobile communication,GSM)、通用分组无线服务(general packet radioservice,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、长期演进(long term evolution,LTE)、电子邮件、短消息服务(short messaging service,SMS)等。
存储器420可用于存储软件程序以及模块,处理器480通过运行存储在存储器420的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元430可用于接收输入的数字或字符信息,以及产生与智能手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元430可包括触控面板431以及其他输入设备432。触控面板431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板431上或在触控面板431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器480,并能接收处理器480发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板431。除了触控面板431,输入单元430还可以包括其他输入设备432。具体地,其他输入设备432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元440可用于显示由用户输入的信息或提供给用户的信息以及智能手机的各种菜单。显示单元440可包括显示面板441,可选的,可以采用液晶显示器(liquidcrystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板441。进一步的,触控面板431可覆盖显示面板441,当触控面板431检测到在其上或附近的触摸操作后,传送给处理器480以确定触摸事件的类型,随后处理器480根据触摸事件的类型在显示面板441上提供相应的视觉输出。虽然在图9中,触控面板431与显示面板441是作为两个独立的部件来实现智能手机的输入和输入功能,但是在某些实施例中,可以将触控面板431与显示面板441集成而实现智能手机的输入和输出功能。
智能手机还可包括至少一种传感器450,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板441的亮度,接近传感器可在智能手机移动到耳边时,关闭显示面板441和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于智能手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路460、扬声器461,传声器462可提供用户与智能手机之间的音频接口。音频电路460可将接收到的音频数据转换后的电信号,传输到扬声器461,由扬声器461转换为声音信号输出;另一方面,传声器462将收集的声音信号转换为电信号,由音频电路460接收后转换为音频数据,再将音频数据输出处理器480处理后,经RF电路410以发送给比如另一智能手机,或者将音频数据输出至存储器420以便进一步处理。
WiFi属于短距离无线传输技术,智能手机通过WiFi模块470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块470,但是可以理解的是,其并不属于智能手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器480是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监测。可选的,处理器480可包括一个或多个处理单元;可选的,处理器480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器480中。
智能手机还包括给各个部件供电的电源490(比如电池),可选的,电源可以通过电源管理系统与处理器480逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,智能手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
上述实施例中由终端设备所执行的步骤可以基于该图9所示的终端设备结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (15)

1.一种程序的多屏运行方法,其特征在于,包括:
获取通过第一交互屏生成的第一指令,所述第一指令为响应在所述第一交互屏的第一操作生成,且所述第一指令携带第一程序的第一调用标识,所述第一程序运行于与所述第一交互屏对应的第一容器,所述第一容器包括所述第一程序的容器镜像;
根据所述第一调用标识从所述第一容器中调用所述第一程序的容器镜像,并运行所述容器镜像;
基于所述第一程序的用户界面数据在所述第一交互屏渲染所述第一程序的用户界面。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第一程序和所述第一程序的运行环境构建所述第一程序的容器镜像。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第一程序的容器镜像生成所述第一容器;
配置所述第一容器用于运行所述第一程序的第一运行参数,所述第一运行参数至少包括所述第一容器的容器标识,所述第一容器占用的中央处理器权重、所述第一容器占用的内存值,所述第一交互屏的显示区域、所述第一程序对应的第一绘制资源标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取通过第二交互屏生成的第二指令,所述第二指令为响应在所述第二交互屏的第二操作生成,且所述第二指令携带第一程序的第二调用标识,所述第二程序运行于与所述第二交互屏对应的第二容器,所述第二容器包括所述第二程序的容器镜像;
根据所述第二调用标识从所述第二容器中调用所述第二程序的容器镜像,并运行所述容器镜像;
向所述第二交互屏反馈所述第二程序的用户界面数据,使得所述第二交互屏渲染所述第二程序的用户界面。
5.根据权利要求4所述的方法,其特征在于,在所述第一程序和所述第二程序为同一程序时,所述方法还包括:
基于设备标识为所述第一程序和所述第二程序在账户系统创建同一用户账号,所述设备标识为所述第一交互屏和所述第二交互屏共享的计算装置的设备标识。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述第一容器的数据存储于第一存储空间,并将所述第二容器的数据存储于第二存储空间,所述第一存储空间与所述第二存储空间为不同的存储空间。
7.根据权利要求4所述的方法,其特征在于,所述第一程序和所述第二程序为基于小程序框架创建的程序,所述小程序为依赖于宿主程序运行的一种程序;
或者,所述第一程序和所述第二程序为基于安卓框架创建的程序;
或者,所述第一程序和所述第二程序为基于Flutter框架创建的程序。
8.根据权利要求4至7中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一程序和所述第二程序竞争第一资源,且所述第一资源为当前时刻的独占资源时,获取所述第一程序的第一优先级以及所述第二程序的第二优先级;
根据所述第一优先级和所述第二优先级确定所述第一资源的占用结果。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一优先级和所述第二优先级确定所述第一资源的占用结果包括:
在所述第一优先级高于所述第二优先级时,确定所述占用结果为所述第一程序占用所述第一资源。
10.根据权利要求9所述的方法,其特征在于,在确定所述占用结果为所述第一程序占用所述第一资源之后,所述方法还包括:
为所述第二程序分配第二资源,所述第二资源为新增资源,且所述第二资源与所述第一资源为同类资源。
11.根据权利要求9所述的方法,其特征在于,在确定所述占用结果为所述第一程序占用所述第一资源之后,所述方法还包括:
在所述第一程序释放所述第一资源之后,为所述第二程序分配所述第一资源。
12.根据权利要求8所述的方法,其特征在于,所述获取所述第一程序的第一优先级以及所述第二程序的第二优先级包括:
获取所述第一程序请求分配所述第一资源的第一请求时刻和所述第二程序请求分配所述第一资源的第二请求时刻,所述第一请求时刻作为所述第一优先级,所述第二请求时刻作为所述第二优先级,所述第一请求时刻早于所述第二请求时刻时,确定所述第一优先级低于所述第二优先级。
13.一种计算装置,其特征在于,包括:
获取模块,用于获取通过第一交互屏生成的第一指令,所述第一指令为响应在所述第一交互屏的第一操作生成,且所述第一指令携带第一程序的第一调用标识,所述第一程序运行于与所述第一交互屏对应的第一容器,所述第一容器包括所述第一程序的容器镜像;
处理模块,用于根据所述第一调用标识从所述第一容器中调用所述第一程序的容器镜像,并运行所述容器镜像;
渲染模块,用于基于所述第一程序的用户界面数据在所述第一交互屏渲染所述第一程序的用户界面。
14.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1至12中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至12中任一项所述的方法。
CN202310261514.1A 2023-03-09 2023-03-09 一种程序的多屏运行方法、装置、设备和存储介质 Pending CN116954781A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310261514.1A CN116954781A (zh) 2023-03-09 2023-03-09 一种程序的多屏运行方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310261514.1A CN116954781A (zh) 2023-03-09 2023-03-09 一种程序的多屏运行方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN116954781A true CN116954781A (zh) 2023-10-27

Family

ID=88460798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310261514.1A Pending CN116954781A (zh) 2023-03-09 2023-03-09 一种程序的多屏运行方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116954781A (zh)

Similar Documents

Publication Publication Date Title
US11449955B2 (en) Information processing method and apparatus
CN107276789B (zh) 日志上传方法、装置及计算机可读存储介质
CN105471931B (zh) 一种查询业务数据的方法、装置和系统
CN107368518B (zh) 一种通知消息的管理方法及终端、计算机可读存储介质
CN103544033B (zh) 应用程序回退方法、装置及相关设备
EP3531290A1 (en) Data backup method, apparatus, electronic device, storage medium, and system
US20160342285A1 (en) Method and apparatus for displaying popup window message
CN107066268B (zh) 微件应用的显示位置切换方法及装置
WO2017129022A1 (zh) 一种终端数据库的并行执行方法和装置
CN108039963B (zh) 一种容器配置方法、装置及存储介质
CN113420051B (zh) 一种数据查询方法、装置、电子设备和存储介质
CN110020293B (zh) 多媒体数据展示方法、装置及存储介质
CN106919458B (zh) Hook目标内核函数的方法及装置
WO2014206138A1 (zh) 一种更新网页数据的方法、装置和终端设备
CN111338745B (zh) 一种虚拟机的部署方法、装置及智能设备
CN108874653B (zh) 任务测试方法、测试机、共享服务器和可读存储介质
CN113592209A (zh) 一种模型训练任务管理方法、装置、终端和存储介质
CN110677456A (zh) 一种资源配置的方法及设备
CN107463395B (zh) 组件调用方法及装置
CN110245017B (zh) 资源标识的分配方法和设备
CN113039517B (zh) 一种音频资源调用的方法、装置及电子设备
US20160283047A1 (en) Login interface displaying method and apparatus
US20180260847A1 (en) Information display method, apparatus, and system
CN116954781A (zh) 一种程序的多屏运行方法、装置、设备和存储介质
CN115373865A (zh) 一种并发线程管理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication