CN113918195A - 应用界面更新方法、装置、电子设备及可读存储介质 - Google Patents
应用界面更新方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113918195A CN113918195A CN202111400737.9A CN202111400737A CN113918195A CN 113918195 A CN113918195 A CN 113918195A CN 202111400737 A CN202111400737 A CN 202111400737A CN 113918195 A CN113918195 A CN 113918195A
- Authority
- CN
- China
- Prior art keywords
- component
- application
- file
- target
- configuration information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种应用界面更新方法、装置、电子设备及可读存储介质,涉及计算机技术领域。该方法包括:响应于针对目标应用的应用界面更新指令,获取目标应用对应的、包含组件参数配置信息的更新文件。通过在目标应用内嵌入的Dart虚拟机执行更新文件,实现应用界面内逻辑代码的动态化更新,并得到组件参数配置信息对应的组件配置文件,解析组件配置文件,得到组件参数配置信息,可以基于组件参数配置信息渲染得到更新后的应用界面,实现应用界面的动态化更新,提升了有即时更新需求的应用的应用界面更新效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种应用界面更新方法、装置、电子设备及可读存储介质。
背景技术
在当前广泛使用的跨平台的开发方案中,可以通过一套代码同时编译成多个平台可运行的应用程序,简化后期的测试工作的同时,也实现了多端界面与用户操作的一致性。
任意长时间运营的应用都需要不断地对应用进行更新,更新内容可以根据不同时期用户的需求以及互联网技术的发展确定,不断对应用进行优化,提升用户的使用感。通常,更新应用可以经过应用商店,在应用商店对更新包进行相关审核后,将更新包上架在应用商店中。
但对于一些有着即时更新需求的应用来说,为了保证用户体验,减少用户等待时间,需要实现不经过应用商店、在应用内部实行的即时更新,即该类应用需要热更新功能。而目前,许多平台均不支持热更新功能,因此,基于现有的构建用户界面框架研发的应用程序也难以支持热更新功能,使需要即时更新的应用的应用界面更新效率往往不够高,不能够很好地满足实际应用需求。
发明内容
本申请实施例的目的旨在能解决需要实时进行更新的应用程序更新效率不高的问题。
第一方面,本申请实施例提供了一种应用界面更新方法,该方法包括:
响应于针对目标应用的应用界面更新指令,获取目标应用对应的更新文件;更新文件基于Dart语言生成,包括目标应用的应用界面的目标组件对应的组件参数配置信息;
通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件;
解析组件配置文件,得到组件参数配置信息;
基于组件参数配置信息,渲染得到目标应用更新后的应用界面。
在第一方面的可选实施例中,方法还包括:
获取目标应用的安装包;
运行安装包以进行目标应用的安装;
安装包是通过以下方式生成的:
获取预设的构建用户界面工具包的引擎源码以及引擎源码对应的补丁文件;
基于补丁文件修改引擎源码中的编译配置;
基于修改后的引擎源码构建Dart虚拟机;
获取目标应用的工程文件;
在目标应用的工程文件中加入Dart虚拟机;
基于加入Dart虚拟机后的工程文件生成目标应用的安装包。
在第一方面的可选实施例中,目标应用的工程文件包括目标应用的初始应用界面对应的初始界面配置文件,初始界面配置文件是通过以下方式生成的:
对构建用户界面工具包中目标应用的组件进行封装;目标应用的组件包括与目标应用的应用界面显示有关的组件;
通过构建用户界面工具包的组件配置界面接收初始应用界面对应的初始组件参数配置信息;
基于初始组件参数配置信息和构建用户界面工具包中封装后的组件,构建初始应用界面对应的初始界面配置文件。
在第一方面的可选实施例中,更新文件是通过以下方式生成的:
通过构建用户界面工具包的组件配置界面接收目标组件对应的组件参数配置信息;
基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件;
对Dart文件进行编译,得到Dart文件对应的更新文件。
在第一方面的可选实施例中,基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件,包括:
从构建用户界面工具包的封装后的组件中确定出目标组件;
基于组件参数配置信息和目标组件,构建组件参数配置信息对应的Dart文件。
在第一方面的可选实施例中,更新文件包括目标组件构建函数,目标组件构建函数用于获取组件参数配置信息对应的组件配置文件;
通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件配置文件,包括:
通过目标应用内预配置的Dart虚拟机执行更新文件,获取更新文件中的目标组件构建函数,基于所述目标组件构建函数更新应用界面的组件构建函数;
调用更新后的组件构建函数,获取组件参数配置信息对应的组件配置文件。
在第一方面的可选实施例中,组件参数配置信息包括组件类型和组件配置参数,基于组件参数配置信息,渲染得到目标应用更新后的应用界面,包括:
基于组件参数配置信息中的组件类型和组件配置参数,对应用界面的组件进行更新,遍历更新后的应用界面的组件,生成组件配置树;
基于组件配置树,渲染得到目标应用更新后的应用界面。
第二方面,本申请实施例提供了一种应用界面更新的装置,该装置包括:
更新文件获取模块,用于响应于针对目标应用的应用界面更新指令,获取目标应用对应的更新文件;更新文件基于Dart语言生成,包括目标应用的应用界面的目标组件对应的组件参数配置信息;
更新文件执行模块,用于通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件;
配置文件解析模块,用于解析组件配置文件,得到组件参数配置信息;
应用界面渲染模块,用于基于组件参数配置信息,渲染得到目标应用更新后的应用界面。
在第二方面的可选实施例中,还包括目标应用安装模块,具体用于:
获取目标应用的安装包;
运行安装包以进行目标应用的安装;
还包括安装包生成模块,安装包生成模块具体用于:
获取预设的构建用户界面工具包的引擎源码以及引擎源码对应的补丁文件;
基于补丁文件修改引擎源码中的编译配置;
基于修改后的引擎源码构建Dart虚拟机;
获取目标应用的工程文件;
在目标应用的工程文件中加入Dart虚拟机;
基于加入Dart虚拟机后的工程文件生成目标应用的安装包。
在第二方面的可选实施例中,目标应用的工程文件包括目标应用的初始应用界面对应的初始界面配置文件;还包括初始配置文件生成模块,具体用于:
对构建用户界面工具包中目标应用的组件进行封装;目标应用的组件包括与目标应用的应用界面显示有关的组件;
通过构建用户界面工具包的组件配置界面接收初始应用界面对应的初始组件参数配置信息;
基于初始组件参数配置信息和构建用户界面工具包中封装后的组件,构建初始应用界面对应的初始界面配置文件。
在第二方面的可选实施例中,还包括更新文件生成模块,具体用于:
通过预设的构建用户界面工具包的组件配置界面接收目标组件对应的组件参数配置信息;
基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件;
对Dart文件进行编译,得到Dart文件对应的更新文件。
在第二方面的可选实施例中,更新文件生成模块在基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件时,具体用于:
从构建用户界面工具包的封装后的组件中确定出目标组件;
基于组件参数配置信息和目标组件,构建组件参数配置信息对应的Dart文件。
在第二方面的可选实施例中,更新文件包括目标组件构建函数,目标组件构建函数用于获取组件参数配置信息对应的组件配置文件;更新文件执行模块在通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件时,具体用于:
通过目标应用内预配置的Dart虚拟机执行更新文件,获取更新文件中的目标组件构建函数,基于所述目标组件构建函数更新应用界面的组件构建函数;
调用更新后的组件构建函数,获取组件配置文件。
在第二方面的可选实施例中,组件参数配置信息包括组件类型和组件配置参数,应用界面渲染模块在基于组件参数配置信息,渲染得到目标应用更新后的应用界面时,具体用于:
基于组件参数配置信息中的组件类型和组件配置参数,对应用界面的组件进行更新,遍历更新后的应用界面的组件,生成组件配置树;
基于组件配置树,渲染得到目标应用更新后的应用界面。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例的应用界面更新方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述任一实施例的应用界面更新方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现第一方面实施例所提供的方法。
本申请实施例提供的应用界面更新方法,响应于针对目标应用的应用界面更新指令,获取目标应用对应的、包含组件参数配置信息的更新文件,通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件,对组件配置文件进行解析,得到组件参数配置信息,可以基于组件参数配置信息,渲染得到目标应用更新后的应用界面。基于本申请实施例提供的该方法,可以通过在目标应用内嵌入的Dart虚拟机执行更新文件,实现应用界面内逻辑代码的动态化更新,并得到组件参数配置信息对应的组件配置文件,可以基于组件配置文件解析后得到的组件参数配置信息渲染得到更新后的应用界面,实现应用界面的动态化更新,提升了有即时更新需求的应用的应用界面更新效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种应用界面更新方法的流程示意图;
图2为本申请实施例提供的一种应用界面更新方法的流程示意图;
图3为本申请实施例提供的一种应用界面更新方法的流程示意图;
图4为本申请实施例提供的一种应用界面更新装置的结构示意图;
图5为本申请实施例提供的一种应用界面更新的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,或者实现为“A”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在当前广泛使用的跨平台的开发方案中,可以通过一套代码同时编译成多个平台可运行的应用程序。例如,Flutter是一种开源的构建用户界面工具包,可以帮助开发者通过一套代码库高效地构建能多平台运行的应用程序。
由于某些平台不支持热更新更能,因此,Flutter中也未提供热更新功能,使得基于Flutter框架开发的应用程序难以实现热更新功能,对于有即时更新需求的应用程序来说,通过应用商店审核后再对应用程序进行更新的效率较低,使用户等待时间较长,用户体验不好。
本申请提供的应用界面更新方法、装置、电子设备及可读存储介质,旨在解决现有技术的如上技术问题。
首先,对本申请中涉及的技术名词和相应的背景技术进行说明:
Dart语言:Dart语言是一种“结构化的Web(World Wide Web,全球广域网)编程”语言,Dart编程语言可以在几乎所有浏览器和环境中提供高性能。
Flutter:Flutter被设计为一个可扩展,分层的***,可以分为三层,上层的框架(Framework),中层的引擎(Engine),以及底层的嵌入层(Embedder)。其中,框架层是纯Dart语言实现的一个响应式框架,开发者平常需要通过该层和Flutter***交互;引擎层绝大部分是用“C++”语言实现的,其为Flutter***的核心,提供了一系列Flutter核心接口的底层实现,例如图形、文字布局和文件等,是连接框架和***的桥梁;嵌入层基本是由平台对应的语言实现的为Flutter***提供了一个入口,Flutter***通过该入口访问底层***提供的服务。
Dart VM(Virtual Machine,虚拟机):Dart VM是一种为Dart语言提供执行环境的虚拟机,可以理解为用于在原生环境执行Dart代码的一系列组件的集合,既支持JIT(justin time,即时编译)模式,边解释执行边编译,同时也支持ATO模式(ahead of time,运行前编译),将Dart源码编译成机器码,运行在预编译运行时环境,这种环境中不包含任何编译器,因此无法在这种模式下动态加载Dart源码。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供的应用界面更新方法,该方法可以应用于服务器,也可以应用于终端。
本技术领域技术人员可以理解,这里所使用的“终端”可以是个人计算机、手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、MID(Mobile InternetDevice,移动互联网设备)等;“服务器”可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本申请实施例中提供了一种应用界面更新方法,以应用于终端为例,如图1所示,该方法包括:
步骤S101,响应于针对目标应用的应用界面更新指令,获取目标应用对应的更新文件;更新文件基于Dart语言生成,包括目标应用的应用界面的目标组件对应的组件参数配置信息。
其中,应用界面更新指令的触发方法本申请实施例不作限定,如可以是当服务器中有目标应用对应的更新文件时,目标应用向用户显示更新提示信息,提示用户可以对目标应用进行更新。当接收到用户针对更新提示信息的确认操作时,触发针对目标应用的应用界面更新指令。当然,也可以是当服务器中有目标应用对应的更新文件时,自动触发应用界面更新指令,如可以在指定的时段(如可以是用户指定的目标应用的更新时段)或者是目标应用处于特定状态(如用户端的目标应用处于后台运行时)时进行更新。
可选的,可以通过目标应用的应用界面向用户提供相应的更新设置选项,通过该选项用户可以进行更新设置,例如,用户可以在目标应用的更新设置选项的设置界面勾选自动更新选项,则服务器中存在目标应用对应的更新文件时,目标应用可以自动获取更新文件,并基于更新文件对目标应用进行更新。用户还可以通过更新设置选项对目标应用进行更细化的设置,例如,可以预先设置更新文件大小阈值,当更新文件小于或等于更新文件体积阈值时,目标应用的用户端可以自动获取更新文件,并基于更新文件对目标应用进行更新;当更新文件大于更新文件体积阈值时,目标应用需向用户显示更新提示信息,当接收到用户针对更新提示信息的确认操作时,触发针对目标应用的应用界面更新指令。
响应于针对目标应用的应用界面更新指令,可以从服务器中获取目标应用对应的更新文件;更新文件可以包括目标应用的应用界面的目标组件对应的组件参数配置信息,组件参数配置信息包含了针对目标组件的各种更新参数,用于更新目标组件。其中,目标应用的应用界面的目标组件可以是应用界面中需要更新的部分组件,也可以是应用界面的全部组件。具体的,目标组件可以包括更新前的目标应用中已经存在的组件,基于对应的组件更新配置信息,可以对该目标组件进行更新,目标组件也可以包括在更新前的目标应用中不包含的组件,也就是新组件的组件参数配置信息,基于各配置信息,可以实现在应用界面中增加新组件。
需要说明的是,上述更新前的目标应用的应用界面(也就是在基于应用界面更新指令进行更新处理前的界面)可以是初始应用界面,也就是用户终端上刚安装目标应用后的应用界面,也可以是初始应用界面经过一次或多次更新后的应用界面。
可选的,本申请实施例中的目标应用可以是基于Flutter框架开发的应用,相应的,本申请文件中的组件可以是Flutter中的控件(Widget),跟原生开发中的“控件”不同,Flutter中的Widget的概念更加广泛,Flutter中几乎所有的对象都是一个Widget,不仅可以表示UI元素,也可以表示一些功能性的组件。
在本申请实施例中,应用界面更新方法还可以包括如下步骤:获取目标应用的安装包,运行安装包以进行目标应用的安装。
其中,安装包可以通过以下方式生成:获取预设的构建用户界面工具包的引擎源码以及引擎源码对应的补丁文件;基于补丁文件修改引擎源码中的编译配置,然后可以基于修改后的引擎源码构建Dart虚拟机;获取目标应用的工程文件;在目标应用的工程文件中加入Dart虚拟机,基于加入所述Dart虚拟机后的工程文件生成目标应用的安装包。
在一个示例中,预设的构建用户界面工具包可以是Flutter,而上述生成安装包的过程可以理解为从Flutter中抽取出Dart虚拟机,将抽取出的Dart虚拟机嵌入目标应用内。
具体的,可以先下载Flutter引擎源码以及针对Flutter引擎源码的补丁(patch)文件,该补丁文件可以修改Flutter引擎中的编译配置,使Flutter引擎能编译出能在目标平台上运行的Dart虚拟机。可以将下载好的补丁文件放到Flutter引擎源码的根目录,并执行补丁文件,更改Flutter引擎中的编译配置。然后可以进入Flutter引擎中的Dart目录,将预设的构建配置代码加入到Flutter引擎源码中,通过修改后的Flutter引擎构建得到Dart虚拟机。获取目标应用的工程文件,此时目标应用处于还未发布状态,在目标应用的工程文件中加入构建所得的Dart虚拟机,基于加入Dart虚拟机后的工程文件得到目标应用的安装包,此时目标应用的安装包内包括了Dart虚拟机。
步骤S102,通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件。
在本申请实施例中,更新文件中可以包括目标组件构建函数,当Dart虚拟机执行更新文件时会调用目标组件构建函数,目标组件函数被调用后会返回组件配置文件。
其中,更新文件的格式可以为“.dill”文件(即Dart字节码文件),“.dill”文件是Dart文件编译后的产物,不能直接执行,需要通过目标应用内预配置的Dart虚拟机执行。通过Dart虚拟机执行更新文件后,可以得到组件参数配置信息对应的组件配置文件,组件配置文件的格式可以为JS(JavaScript Object Notation,对象简谱)格式,该格式的组件配置文件可以用简洁清晰的层次结构描述组件参数配置信息中的各类组件参数。
在本申请实施例中,更新文件可以包括目标组件构建函数,目标组件构建函数包含组件参数配置信息,用于获取组件参数配置信息对应的组件配置文件。具体的,组件构建函数可以是Flutter中的build(构建)方法,用于创建用户界面相关的组件。当使用build方法创建组件时,组件对应的组件参数配置信息会被写入相应的build函数内。本申请中的目标组件构建函数可以是需要更新在界面上的组件所对应的build函数,函数内包含了这些组件的组件参数配置信息。组件参数配置信息具体可以是组件名称、组件在应用界面的显示坐标、长和宽等参数。当Dart虚拟机执行更新文件时,调用目标build函数(目标组件构建函数),目标build函数将会返回组件参数配置信息对应的组件配置文件。可以理解为,组件配置文件是将build函数内渲染界面所需要的各种参数抽取出来,以JS格式更加清晰地表述。
在实际应用中,可以先基于Dart语言编写组件构建函数,得到包含组件构建函数的Dart源码文件(Dart文件),然后对Dart源码文件进行编译,得到Dart字节码文件,将Dart字节码文件作为更新文件。更新文件可以通过目标应用内的Dart虚拟机进行执行。
在本申请实施例中,在需要进行应用界面的更新时,通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件,可以包括如下步骤:
(1)通过目标应用内预配置的Dart虚拟机执行更新文件,基于更新文件中的目标组件构建函数更新应用界面的组件构建函数;其中,更新文件的格式可以为“.dill”文件,因此需要通过目标应用内预配置的Dart虚拟机执行更新文件,将当前应用界面的组件构建函数更新为目标组件构建函数;
(2)调用更新后的组件构建函数,获取所述组件参数配置信息对应的组件配置文件。在对组件进行渲染前,可以调用更新后的组件构建函数,获取组件参数配置信息对应的组件配置文件,其中,组件配置文件的格式可以为JSON格式,一种轻量级的数据交换格式,可以便于读取相应的组件参数配置信息。
步骤S103,解析组件配置文件,得到组件参数配置信息。
在本申请实施例中,可以对组件配置文件进行解析,得到组件参数配置信息,组件参数配置信息可以包括组件类型与组件配置参数。组件类型可以为文字类型、容器类型、辅助提示类型、列表类型、***主题风格类型、交互类型等。组件配置参数可以包括但不限于组件的颜色、大小、模板样式以及字体风格等。
步骤S104,基于组件参数配置信息,渲染得到目标应用更新后的应用界面。可以给予组件参数配置信息重构组件,通过应用程序的渲染引擎渲染得到目标应用更新后的应用界面,使更新后的应用界面能够显示出组件参数配置信息对应的组件。
在本申请实施例中,组件参数配置信息可以包括组件类型和组件配置参数。基于组件参数配置信息,渲染得到目标应用更新后的应用界面,可以包括如下步骤:
基于组件参数配置信息中的组件类型和组件配置参数,对应用界面的组件进行更新,遍历更新后的应用界面的组件,生成组件配置树;
基于组件配置树,渲染得到目标应用更新后的应用界面。
其中,组件类型可以为文字类型、容器类型、列表类型、交互类型组件中的一种。
其中,文字类型的组件用于描述文字,比如文本组件,该类型的组件的组件配置参数可以有字体的颜色、大小、删除线、加粗以及字体风格等。容器类型的组件可以承载各类内容的展示,该类型的组件的组件配置参数可以有长、宽、是否给组件添加边框、边框颜色和边框宽度等。列表类型的组件在应用界面可以显示为列表样式,可以进行配置的组件配置参数为列表滑动方向、子组件集的组件配置参数、列表标题、预览小图标等。交互类型组件,可以设置一些与光标交互的显示效果,该类型的组件的组件配置参数可以包括光标点击时出现的提示信息、组件被点击时出现的水波纹颜色、光标悬停时按钮的颜色以及按钮不可用时的阴影大小等。
在通过解析组件配置文件得到组件参数配置信息之后,则可以基于组件参数配置信息中的组件类型和组件配置参数,对应用界面的组件进行更新,遍历更新后的应用界面的组件,生成组件配置树。具体的,当本申请中的目标应用给予Flutter框架开发时,组件配置树可以是Flutter框架中的视图树,视图树可以包含三类:控件(Widget)树,包含控件配置信息,用于描述应用界面特征,比如应用界面中各个组件的大小、颜色以及位置;元素(element)树,存放上下文信息,通过它来遍历视图树,支撑用户界面结构;渲染对象(RenderObject)树,应用界面更新的执行者,是真正调用渲染引擎去进行更新的对象。
遍历更新后的应用界面的组件,基于组件配置树,渲染得到目标应用更新后的应用界面可以包括如下步骤:基于组件参数配置信息重构组件,生成控件树,基于控件树进一步生成元素树,基于元素树创建相应的渲染对象树,通过渲染对象树来完成布局排列和绘制,生成相应的渲染层,将渲染层交给GPU进行渲染显示,得到更新后的应用界面。
上述应用界面更新方法,响应于针对目标应用的应用界面更新指令,获取目标应用对应的、包含组件参数配置信息的更新文件,通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件,对组件配置文件进行解析,得到组件参数配置信息,可以基于组件参数配置信息,渲染得到目标应用更新后的应用界面。通过在目标应用内嵌入的Dart虚拟机执行更新文件,实现应用界面内逻辑代码的动态化更新,同时,执行更新文件之后,得到组件参数配置信息对应的组件配置文件,可以基于组件配置文件解析后得到的组件参数配置信息渲染得到更新后的应用界面,实现应用界面的动态化更新,提升了有即时更新需求的应用的应用界面更新效率。
本申请实施例中提供了一种可能的实现方式,目标应用的工程文件包括目标应用的初始应用界面对应的初始界面配置文件,初始界面配置文件可以通过以下方式生成:
(1)对构建用户界面工具包中目标应用的组件进行封装;目标应用的组件包括与目标应用的应用界面显示有关的组件。具体的,封装是指隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机地结合,形成“类”,其中数据和函数都是类的成员。
构建用户界面工具包中可以包含各类组件之间的继承关系,则对预设的构建用户界面工具包中的组件进行封装,可以包括如下步骤:抽取构建用户界面工具包中至少一类组件的可配置属性;针对每一类组件,基于继承关系以及可配置属性生成该类组件的组件接口;组件接口可以用于根据组件接口获取到的组件配置文件对该类组件进行配置。
在本申请实施例中,对组件进行封装可以理解为将组件的所有能配置的属性抽取出来,形成组件接口,通过组件接口接收外部输入的包含配置参数的组件配置文件来对组件进行配置。包含配置参数的组件配置文件的格式可以为JSON文件。
构建用户界面工具包可以为Flutter,可以对Flutter中的所有基础组件进行封装,生成相应的组件接口,在设计应用界面时,可以通过组件接口进行传参,实现对组件进行配置。对组件进行封装可以减少使用处代码的代码量和层级,使代码精简直观;抽取出的代码可以多出复用,不局限于当前页面,便于灵活拓展,也便于后续阅读和维护。
(2)通过构建用户界面工具包的组件配置界面接收初始应用界面对应的初始组件参数配置信息。构建用户界面工具包可以是任一包含用户界面构建功能的插件或者软件。构建用户界面工具包的组件配置界面包括但不限于构建用户界面工具包的编码界面、以及可视化的组件绘制界面。可以通过组件配置界面接收用户针对初始应用界面设置的初始组件参数配置信息,其中,初始组件参数配置信息中包含了初始应用界面中的组件对应的各类参数,包括但不限于初始组件类型和初始组件配置参数。
(3)基于初始组件参数配置信息和构建用户界面工具包中封装后的组件,构建初始应用界面对应的初始界面配置文件。基于初始界面配置文件可以渲染得到目标应用的初始界面。
本申请实施例中提供了一种可能的实现方式,更新文件是通过以下方式生成的:通过构建用户界面工具包的组件配置界面接收目标组件对应的组件参数配置信息;基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件;对Dart文件进行编译,得到Dart文件对应的更新文件。具体的,更新文件可以为Dart字节码文件,Dart字节码文件由Dart文件编译所得。
其中,Dart字节码文件可以是“.dill”文件,“.dill”文件是Dart文件编译后的产物,不能直接执行,需要通过目标应用内预配置的Dart虚拟机执行。
可以通过预设的构建用户界面工具包的组件配置界面,接收用户设置的组件参数配置信息,组件参数配置信息中可以包含组件类型、组件配置参数以及构建组件的组件代码。通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件,然后可以基于构建用户界面工具包内置的虚拟机对Dart文件进行编译,得到相应的Dart字节码文件。研发人员可以将Dart字节码文件上传至服务器,由目标应用获取该Dart字节码文件,实现对目标应用的应用界面进行更新。
在另一些实施例中,更新文件可以是Dart文件,即用户直接通过Dart语言进行编码的源码文件,可以将Dart文件上传至服务器,目标应用获取到Dart文件后,在执行该Dart文件前,通过目标应用内置的Dart虚拟机将Dart文件编译为Dart字节码文件并执行,获取组件参数配置信息对应的组件配置文件,然后解析组件配置文件,得到组件参数配置信息,基于组件参数配置信息,渲染得到目标应用更新后的应用界面。
在本申请实施例中,在生成更新文件时,更新文件中可以调用构建用户界面工具包中的已经封装的组件。
则基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到所述组件参数配置信息对应的Dart文件,可以包括如下步骤:从构建用户界面工具包的封装后的组件中确定出目标组件;基于组件参数配置信息和目标组件,构建组件参数配置信息对应的Dart文件。
其中,目标组件可以根据组件参数配置信息中的组件类型进行确定,目标组件可以是应用界面中需要更新的组件,也可以是应用界面的全部组件,还可以是目标应用内未在应用界面进行显示的组件(或者研发人员想要进行添加到应用界面的新组件)。
可以通过构建用户界面工具包将Dart文件编译为相应的Dart字节码文件,上传至服务器。由目标应用从服务器获取Dart字节码文件,并通过目标应用内置的Dart虚拟机执行该Dart字节码文件,得到组件参数配置信息对应的组件配置文件。对组件配置文件进行解析,得到组件参数配置信息。由组件接口(组件的封装层)基于组件参数配置信息对应用界面的组件进行更新,遍历更新后的应用界面的组件,生成组件配置树,基于组件配置树,渲染得到目标应用更新后的应用界面。
为了能更清楚地了解本申请的应用界面更新方法,以下将结合示例对本申请的应用界面更新方法进行进一步阐述。
在一个示例中,如图2所示,本申请的应用界面更新方法,可以包括如下步骤:
步骤S201,通过预设的构建用户界面工具包的组件配置界面接收组件参数配置信息;
步骤S202,基于组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件;
步骤S203,对Dart文件进行编译,得到Dart文件对应的Dart字节码文件;Dart字节码文件可以是“.dill”文件,“.dill”文件是Dart文件编译后的产物,不能直接执行,需要通过目标应用内预配置的Dart虚拟机执行;
步骤S204,将Dart字节码文件作为更新文件上传至服务器;
步骤S205,响应于针对目标应用的应用界面更新指令,从服务器获取目标应用对应的更新文件;更新文件包括目标应用的应用界面的目标组件对应的组件参数配置信息;
步骤S206,通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件;
步骤S207,解析组件配置文件,得到组件参数配置信息;
步骤S208,基于组件参数配置信息中的组件类型和组件配置参数,对应用界面的组件进行更新,遍历更新后的应用界面的组件,生成组件配置树;
步骤S209,基于组件配置树,渲染得到目标应用更新后的应用界面。
在一个示例中,预设的构建用户界面工具包可以为Flutter,本申请中的应用界面更新方法可以如图3所示,包括如下步骤:
步骤S301,对Flutter中的基础组件进行封装,基于封装后的组件编写目标应用的工程文件;
步骤S302,获取Flutter的引擎源码以及对应的补丁文件,将补丁文件放在引擎源码的根目录中,并执行补丁文件;
步骤S303,可以进入Flutter引擎中的Dart目录,将预设的构建配置代码加入到Flutter引擎源码中,通过修改后的Flutter引擎构建得到Dart虚拟机,实现从Flutter中抽取出Dart虚拟机;
步骤S304,目标应用此时处于未发布状态,可以在目标应用的工程文件中加入Flutter引擎构建所得的Dart虚拟机;基于加入Dart虚拟机后的工程文件得到目标应用的安装包,实现在目标应用的安装包内嵌入Dart虚拟机;
步骤S305,用户基于安装包,安装目标应用;
步骤S306,响应于针对目标应用的应用界面更新指令,从服务器获取目标应用对应的更新文件;其中,更新文件可以为“.dill格式”(Dart字节码文件),由编译研发人员编写的Dart源码文件得到,不能直接执行,需要Dart虚拟机执行;
步骤S307,基于目标应用内预置的Dart虚拟机执行更新文件,得到包含组件配置参数信息的JSON文件;
步骤S308,通过组件的封装层接收JSON文件,对JSON文件进行解析,确定组件类型和组件配置参数;
步骤S309,基于组件类型和组件配置参数对应用界面的组件进行重构,基于重构后的应用界面的组件渲染得到更新后的应用界面。
本申请实施例提供了一种应用界面更新装置,如图4所示,该应用界面更新装置40可以包括:更新文件获取模块401、更新文件执行模块402、配置文件解析模块403以及应用界面渲染模块404,其中,
更新文件获取模块,用于响应于针对目标应用的应用界面更新指令,获取目标应用对应的更新文件;更新文件基于Dart语言生成,包括目标应用的应用界面的目标组件对应的组件参数配置信息;
更新文件执行模块,用于通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件;
配置文件解析模块,用于解析组件配置文件,得到组件参数配置信息;
应用界面渲染模块,用于基于组件参数配置信息,渲染得到目标应用更新后的应用界面。
上述的应用界面更新装置,响应于针对目标应用的应用界面更新指令,获取目标应用对应的、包含组件参数配置信息的更新文件,通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件,对组件配置文件进行解析,得到组件参数配置信息,可以基于组件参数配置信息,渲染得到目标应用更新后的应用界面。通过在目标应用内嵌入的Dart虚拟机执行更新文件,实现应用界面内逻辑代码的动态化更新,同时,执行更新文件之后,得到组件参数配置信息对应的组件配置文件,可以基于组件配置文件解析后得到的组件参数配置信息渲染得到更新后的应用界面,实现应用界面的动态化更新,提升了有即时更新需求的应用的应用界面更新效率。
在本申请实施例中,还包括目标应用安装模块,具体用于:
获取目标应用的安装包;
运行安装包以进行目标应用的安装;
还包括安装包生成模块,安装包生成模块具体用于:
获取预设的构建用户界面工具包的引擎源码以及引擎源码对应的补丁文件;
基于补丁文件修改引擎源码中的编译配置;
基于修改后的引擎源码构建Dart虚拟机;
获取目标应用的工程文件;
在目标应用的工程文件中加入Dart虚拟机;
基于加入Dart虚拟机后的工程文件生成目标应用的安装包。
在本申请实施例中,目标应用的工程文件包括目标应用的初始应用界面对应的初始界面配置文件;还包括初始配置文件生成模块,具体用于:
对构建用户界面工具包中目标应用的组件进行封装;目标应用的组件包括与目标应用的应用界面显示有关的组件;
通过构建用户界面工具包的组件配置界面接收初始应用界面对应的初始组件参数配置信息;
基于初始组件参数配置信息和构建用户界面工具包中封装后的组件,构建初始应用界面对应的初始界面配置文件。
在本申请实施例中,还包括更新文件生成模块,具体用于:
通过预设的构建用户界面工具包的组件配置界面接收目标组件对应的组件参数配置信息;
基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件;
对Dart文件进行编译,得到Dart文件对应的更新文件。
在本申请实施例中,更新文件生成模块在基于目标组件对应的组件参数配置信息,通过构建用户界面工具包构建得到组件参数配置信息对应的Dart文件时,具体用于:
从构建用户界面工具包的封装后的组件中确定出目标组件;
基于组件参数配置信息和目标组件,构建组件参数配置信息对应的Dart文件。
在本申请实施例中,更新文件包括目标组件构建函数,目标组件构建函数用于获取组件参数配置信息对应的组件配置文件;更新文件执行模块在通过目标应用内预配置的Dart虚拟机执行更新文件,得到组件参数配置信息对应的组件配置文件时,具体用于:
通过目标应用内预配置的Dart虚拟机执行更新文件,获取更新文件中的目标组件构建函数,基于所述目标组件构建函数更新应用界面的组件构建函数;
调用更新后的组件构建函数,获取组件配置文件。
在本申请实施例中,组件参数配置信息包括组件类型和组件配置参数,应用界面渲染模块在基于组件参数配置信息,渲染得到目标应用更新后的应用界面时,具体用于:
基于组件参数配置信息中的组件类型和组件配置参数,对应用界面的组件进行更新,遍历更新后的应用界面的组件,生成组件配置树;
基于组件配置树,渲染得到目标应用更新后的应用界面。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备(计算机装置/设备/***),包括存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:使目标应用的应用界面的逻辑代码和组件可以动态化更新,提升了有即时更新需求的应用的应用界面更新效率。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种应用界面更新方法,其特征在于,包括:
响应于针对目标应用的应用界面更新指令,获取所述目标应用对应的更新文件;所述更新文件基于Dart语言生成,包括所述目标应用的应用界面的目标组件对应的组件参数配置信息;
通过所述目标应用内预配置的Dart虚拟机执行所述更新文件,得到组件配置文件;
解析所述组件配置文件,得到所述组件参数配置信息;
基于所述组件参数配置信息,渲染得到所述目标应用更新后的应用界面。
2.根据权利要求1所述的应用界面更新方法,其特征在于,所述方法还包括:
获取所述目标应用的安装包;
运行所述安装包以进行所述目标应用的安装;
所述安装包是通过以下方式生成的:
获取预设的构建用户界面工具包的引擎源码以及所述引擎源码对应的补丁文件;
基于所述补丁文件修改所述引擎源码中的编译配置;
基于修改后的引擎源码构建Dart虚拟机;
获取所述目标应用的工程文件;
在所述目标应用的工程文件中加入所述Dart虚拟机;
基于加入所述Dart虚拟机后的工程文件生成所述目标应用的安装包。
3.根据权利要求2所述的应用界面更新方法,其特征在于,所述目标应用的工程文件包括所述目标应用的初始应用界面对应的初始界面配置文件,所述初始界面配置文件是通过以下方式生成的:
对所述构建用户界面工具包中所述目标应用的组件进行封装;所述目标应用的组件包括与所述目标应用的应用界面显示有关的组件;
通过所述构建用户界面工具包的组件配置界面接收初始应用界面对应的初始组件参数配置信息;
基于所述初始组件参数配置信息和所述构建用户界面工具包中封装后的组件,构建所述初始应用界面对应的初始界面配置文件。
4.根据权利要求3所述的应用界面更新方法,其特征在于,所述更新文件是通过以下方式生成的:
通过所述构建用户界面工具包的组件配置界面接收所述目标组件对应的组件参数配置信息;
基于所述目标组件对应的组件参数配置信息,通过所述构建用户界面工具包构建得到所述组件参数配置信息对应的Dart文件;
对所述Dart文件进行编译,得到所述Dart文件对应的更新文件。
5.根据权利要求4所述的应用界面更新方法,其特征在于,所述基于所述目标组件对应的组件参数配置信息,通过所述构建用户界面工具包构建得到所述组件参数配置信息对应的Dart文件,包括:
从所述构建用户界面工具包的所述封装后的组件中确定出所述目标组件;
基于所述组件参数配置信息和所述目标组件,构建所述组件参数配置信息对应的Dart文件。
6.根据权利要求1所述的应用界面更新方法,其特征在于,所述更新文件包括目标组件构建函数,所述目标组件构建函数用于获取所述组件参数配置信息对应的组件配置文件;
所述通过所述目标应用内预配置的Dart虚拟机执行所述更新文件,得到所述组件配置文件,包括:
通过所述目标应用内预配置的Dart虚拟机执行所述更新文件,获取所述更新文件中的目标组件构建函数,基于所述目标组件构建函数更新所述应用界面的组件构建函数;
调用更新后的组件构建函数,获取所述组件参数配置信息对应的组件配置文件。
7.根据权利要求1所述的应用界面更新方法,其特征在于,所述组件参数配置信息包括组件类型和组件配置参数,所述基于所述组件参数配置信息,渲染得到所述目标应用更新后的应用界面,包括:
基于所述组件参数配置信息中的所述组件类型和所述组件配置参数,对所述应用界面的组件进行更新,遍历更新后的所述应用界面的组件,生成组件配置树;
基于所述组件配置树,渲染得到所述目标应用更新后的应用界面。
8.一种应用界面更新装置,其特征在于,包括:
更新文件获取模块,用于响应于针对目标应用的应用界面更新指令,获取所述目标应用对应的更新文件;所述更新文件基于Dart语言生成,包括所述目标应用的应用界面的目标组件对应的组件参数配置信息;
更新文件执行模块,用于通过所述目标应用内预配置的Dart虚拟机执行所述更新文件,得到所述组件参数配置信息对应的组件配置文件;
配置文件解析模块,用于解析所述组件配置文件,得到所述组件参数配置信息;
应用界面渲染模块,用于基于所述组件参数配置信息,渲染得到所述目标应用更新后的应用界面。
9.一种电子设备,包括显示器、摄像头、存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的应用界面更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111400737.9A CN113918195A (zh) | 2021-11-19 | 2021-11-19 | 应用界面更新方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111400737.9A CN113918195A (zh) | 2021-11-19 | 2021-11-19 | 应用界面更新方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918195A true CN113918195A (zh) | 2022-01-11 |
Family
ID=79247799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111400737.9A Pending CN113918195A (zh) | 2021-11-19 | 2021-11-19 | 应用界面更新方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918195A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489894A (zh) * | 2022-01-13 | 2022-05-13 | 北京齐尔布莱特科技有限公司 | 客户端用户界面更新方法和装置、客户端和服务器 |
CN114610516A (zh) * | 2022-03-10 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 应用程序的修复方法、装置、计算机设备以及存储介质 |
CN114610364A (zh) * | 2022-03-22 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 应用程序更新、应用程序开发方法、装置及计算机设备 |
CN114675879A (zh) * | 2022-03-04 | 2022-06-28 | 慧之安信息技术股份有限公司 | 基于Cordova与Vue的跨平台应用开发方法 |
CN116561075A (zh) * | 2023-05-15 | 2023-08-08 | 北京百度网讯科技有限公司 | 动态链接库文件的生成方法、算子的调用方法及装置 |
-
2021
- 2021-11-19 CN CN202111400737.9A patent/CN113918195A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489894A (zh) * | 2022-01-13 | 2022-05-13 | 北京齐尔布莱特科技有限公司 | 客户端用户界面更新方法和装置、客户端和服务器 |
CN114675879A (zh) * | 2022-03-04 | 2022-06-28 | 慧之安信息技术股份有限公司 | 基于Cordova与Vue的跨平台应用开发方法 |
CN114675879B (zh) * | 2022-03-04 | 2022-10-21 | 慧之安信息技术股份有限公司 | 基于Cordova与Vue的跨平台应用开发方法 |
CN114610516A (zh) * | 2022-03-10 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 应用程序的修复方法、装置、计算机设备以及存储介质 |
CN114610516B (zh) * | 2022-03-10 | 2023-07-04 | 抖音视界有限公司 | 应用程序的修复方法、装置、计算机设备以及存储介质 |
CN114610364A (zh) * | 2022-03-22 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 应用程序更新、应用程序开发方法、装置及计算机设备 |
CN116561075A (zh) * | 2023-05-15 | 2023-08-08 | 北京百度网讯科技有限公司 | 动态链接库文件的生成方法、算子的调用方法及装置 |
CN116561075B (zh) * | 2023-05-15 | 2024-01-30 | 北京百度网讯科技有限公司 | 动态链接库文件的生成方法、算子的调用方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113918195A (zh) | 应用界面更新方法、装置、电子设备及可读存储介质 | |
CN110691136B (zh) | 数据交互方法、装置、电子设备及存储介质 | |
US9471553B2 (en) | Automatically rendering web or hybrid applications natively | |
EP3971706B1 (en) | Method, apparatus and electronic device for deploying operator in deep learning frame work | |
CN111381852A (zh) | 基于Flutter的应用动态更新方法、装置、存储介质及电子设备 | |
US8584147B2 (en) | Managed execution environment for software application interfacing | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
KR20150043333A (ko) | 선언형 템플릿을 사용하여 컨트롤을 스탬프 아웃하기 위한 사용자 인터페이스 컨트롤 프레임워크 | |
KR101416104B1 (ko) | 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법 | |
CN107038060B (zh) | 一种页面着色器代码调试方法、装置 | |
CN102693238B (zh) | Widget应用方法、***及多媒体终端 | |
CN112818176B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
Botturi et al. | Model-driven design for the development of multi-platform smartphone applications | |
CN114217789A (zh) | 功能组件拓展方法、装置、设备、存储介质及程序产品 | |
CN111971655B (zh) | 用于超文本标记语言图形内容的本机运行时技术 | |
CN109408057B (zh) | 自动生成代码的方法、装置、介质和计算设备 | |
CN109542447B (zh) | 一种otx程序文件执行方法及装置 | |
CN112379885B (zh) | 小程序编译方法、装置、设备及可读存储介质 | |
CN111782196A (zh) | 基于mvp架构的开发方法及装置 | |
CN114741294A (zh) | 一种页面的调试方法、装置、设备及存储介质 | |
CN114168151A (zh) | 基于容器的程序编译方法、装置、电子设备及存储介质 | |
Burnette | Google web toolkit | |
RU2799988C2 (ru) | Система и способ динамической визуализации элементов программного обеспечения | |
Antebi et al. | Cross-compiling android applications to windows phone 7 | |
Son et al. | Design and implementation of the smart virtual machine on iOS platform for the mobile game portability |
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 |