CN111158689A - 跨***的ui应用生成方法、设备及计算机可读存储介质 - Google Patents
跨***的ui应用生成方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111158689A CN111158689A CN201911422746.0A CN201911422746A CN111158689A CN 111158689 A CN111158689 A CN 111158689A CN 201911422746 A CN201911422746 A CN 201911422746A CN 111158689 A CN111158689 A CN 111158689A
- Authority
- CN
- China
- Prior art keywords
- source code
- target
- application
- frame
- engine
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000011161 development Methods 0.000 claims abstract description 17
- 238000004806 packaging method and process Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 93
- 238000012360 testing method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种跨***的UI应用生成方法、设备及计算机可读存储介质,该方法包括步骤:获取预设的UI框架引擎,将所述UI框架引擎移植到Linux***中;使用兼容性语言封装所述Linux***中调用所述UI框架引擎的调用接口;基于所述UI框架引擎,根据接收的开发指令生成目标UI应用,其中,所述调用接口用于供各种***的终端调用所述目标UI应用。本发明实现了通过UI框架引擎所开发的UI应用对应的代码可以跨***运行,且由于所开发的UI应用是基于Flutter开源UI框架来实现的,避免了H5绘制UI界面的流畅性差的问题,因此提高了Linux***对应终端UI应用的流畅性。
Description
技术领域
本发明涉及终端技术领域,尤其涉及一种跨***的UI应用生成方法、设备及计算机可读存储介质。
背景技术
Launcher(桌面启动器)作为互联网电视***OSD(On-Screen Display,屏幕菜单式调节方式)的核心应用,Launcher的流畅度影响着电视用户的体验。
当前大部分电视都是Android(安卓)***,不过由于成本、历史原因等其他因素,还有一部分电视仍旧使用Linux***,寄生在Linux***的电视应用一般都是Web开发的,包括Launcher也是Web开发的,具体地,使用H5绘制的Launcher流畅性差,这个问题是Linux***先天存在的,通过程序优化也无法达到Android***电视Launcher的流畅性效果。另一方面,不管是Android***还是Linux***上的Launcher,为了保持一致的UI(UserInterface,用户界面)体验,同时也是为了减少UI设计师的工作,Android平台和Linux平台的工程师都是按照同一套UI效果图来编码实现UI应用的,但是需要两对UI设计师来设计,需要进行两遍UI应用的开发,后期UI应用维护也要投入两倍人力。
由此可知,目前不同终端***的UI应用对应的代码不能跨***运行,且Linux***对应终端的UI应用流畅性差。
发明内容
本发明的主要目的在于提供一种跨***的UI应用生成方法、设备及计算机可读存储介质,旨在解决现有的不同终端***的UI应用对应的代码不能跨***运行,且Linux***对应终端的UI应用流畅性差的技术问题。
为实现上述目的,本发明提供一种跨***的UI应用生成方法,所述跨***的UI应用生成方法包括步骤:
获取预设的UI框架引擎,将所述UI框架引擎移植到Linux***中;
使用兼容性语言封装所述Linux***中调用所述UI框架引擎的调用接口;
基于所述UI框架引擎,根据接收的开发指令生成目标UI应用,其中,所述调用接口用于供各种***的终端调用所述目标UI应用。
优选地,所述基于所述UI框架引擎,根据接收的开发指令生成目标UI应用的步骤之前,还包括:
获取所述UI框架引擎对应的UI框架源码,检测所述UI框架源码中是否存在目标优先级对应的待修改目标源码;
若确定所述UI框架源码中存在所述待修改目标源码,则获取所述待修改目标源码对应的第一补丁文件;
根据所述第一补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
优选地,所述获取所述UI框架引擎对应的UI框架源码,检测所述UI框架源码中是否存在目标优先级对应的待修改目标源码的步骤包括:
获取所述UI框架引擎对应的UI框架源码,在所述Linux***中对所述UI框架源码进行兼容性测试,以确定所述UI框架源码中的待修改源码;
若检测到所述待修改源码为与所述UI框架引擎成功运行相关的代码,则确定与所述UI框架引擎成功运行相关的代码为目标优先级对应的待修改目标源码。
优选地,所述获取所述UI框架引擎对应的UI框架源码,检测所述UI框架源码中是否存在目标优先级对应的待修改目标源码的步骤之后,还包括:
若确定所述UI框架源码中未存在所述待修改目标源码,则确定所述UI框架引擎中各个功能对应的目标功能代码;
将所述目标功能代码发送给预设终端,以供所述预设终端的用户查看所述目标功能代码;
检测是否接收到所述预设终端发送的,根据所述目标功能代码修改后的UI框架源码;
若接收到修改后的UI框架源码,则根据修改后的UI框架源码更新所述UI框架引擎,以使所述UI框架引擎成功运行。
优选地,所述检测是否接收到所述预设终端发送的,根据所述目标功能代码修改后的UI框架源码的步骤之后,还包括:
若未接收到修改后的UI框架源码,则确定所述目标功能代码对应的第二补丁文件,并根据所述第二补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
优选地,所述若确定所述UI框架源码中未存在所述待修改目标源码,则确定所述UI框架引擎中各个功能对应的目标功能代码的步骤之后,还包括:
若确定不需要将所述目标功能代码发送给预设终端,则确定所述目标功能代码对应的第二补丁文件,并根据所述第二补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
优选地,所述获取所述UI框架引擎对应的UI框架源码的步骤之后,还包括:
备份所述UI框架源码。
优选地,所述基于所述UI框架引擎,根据接收的开发指令生成目标UI应用的步骤之后,还包括:
若通过所述调用接口接收到安卓终端发送的第一调用指令,则根据所述第一调用指令将所述目标UI应用封装成安卓应用程序包,并将所述安卓应用程序包发送给所述安卓终端;
若通过所述调用接口接收到Linux电视发送的第二调用指令,则根据所述第二调用指令将所述目标UI应用封装成TPK格式的应用程序包,并将所述TPK格式的应用程序包发送给所述Linux电视。
此外,为实现上述目的,本发明还提供一种跨***的UI应用生成设备,所述跨***的UI应用生成设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的跨***的UI应用生成程序,所述跨***的UI应用生成程序被所述处理器执行时实现如上所述的跨***的UI应用生成方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有跨***的UI应用生成程序,所述跨***的UI应用生成程序被处理器执行时实现如上所述的跨***的UI应用生成方法的步骤。
本发明通过将UI框架引擎移植到Linux***中,并使用兼容性语言封装Linux***中调用UI框架引擎的调用接口,基于UI框架引擎,根据接收的开发指令生成目标UI应用,其中,调用接口用于供各种***的终端调用目标UI应用,通过利用Flutter开源UI框架跨平台特性,移植Flutter Engine(UI框架引擎)到Linux***,实现了通过UI框架引擎所开发的UI应用对应的代码可以跨***运行,如一套Launcher代码可以同时运行在安卓电视和Linux电视上,在安卓电视和Linux电视中提供了一致的UI交互体验,并且由于所开发的UI应用是基于Flutter开源UI框架来实现的,避免了H5绘制UI界面的流畅性差的问题,因此提高了Linux***对应终端UI应用的流畅性。
附图说明
图1是本发明跨***的UI应用生成方法第一实施例的流程示意图;
图2是本发明实施例中Flutter Engine的架构示意图;
图3是本发明实施例中电视Launcher的一种架构示意图;
图4是本发明跨***的UI应用生成方法第二实施例的流程示意图;
图5是本发明跨***的UI应用生成方法第三实施例的流程示意图;
图6是本发明实施例方案涉及的硬件运行环境的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种跨***的UI应用生成方法,参照图1,图1为本发明跨***的UI应用生成方法第一实施例的流程示意图。
本发明实施例提供了跨***的UI应用生成方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
跨***的UI应用生成方法应用于终端中,终端并不限定于个人计算机、电视、手机、平板电脑等终端,该终端可为移动终端,也可为固定终端。在跨***的UI应用生成方法的各个实施例中,为了便于描述,省略执行主体进行阐述各个实施例。跨***的UI应用生成方法包括:
步骤S10,获取预设的UI框架引擎,将所述UI框架引擎移植到Linux***中。
获取预设的UI框架引擎,其中,该UI框架引擎为Flutter Engine,Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。该UI框架引擎可为预先存储在安卓终端中的,需要用的时候从安卓终端中获取,也可将UI框架引擎存储在服务器或者云端,需要用的时候从服务器或者云端获取等。在本发明实施例中,安卓终端为Android***的终端,Linux终端为Linux***的终端。具体地,参照图2,图2为本发明实施例中Flutter Engine的架构示意图,由图2可知,在Flutter Engine中,含有UI组件、Skia和EGL等。Skia是个2D向量图形处理函数库,包含字型、坐标转换,以及点阵图都有高效能且简洁的表现。EGL是图形渲染API(如OpenGL ES)与本地平台窗口***的一层接口。
当获取到UI框架引擎后,将UI框架引擎移植到Linux***中,即将UI框架引擎移植到Linux***的终端中,如将UI框架引擎移植到Linux***的电视中。需要说明的是,将UI框架引擎移植到Linux***中就是将UI框架引擎复制到Linux***中。
步骤S20,使用兼容性语言封装所述Linux***中调用所述UI框架引擎的调用接口。
当将UI框架引擎移植到Linux***中后,使用兼容性语言封装Linux***中调用UI框架引擎的调用接口,该调用接口用于供各种***的终端调用目标UI应用。具体地,在本实施例中,通过Dart语言封装Linux***中调用UI框架引擎的调用接口,Dart是面向对象的、类定义的、单继承的语言,它的语法类似C语言,可以转译为JavaScript,支持接口(interfaces)、混入(mixins)、抽象类(abstract classes)、具体化泛型(reifiedgenerics)、可选类型(optional typing)和sound type system。在其它实施例中,也可使用其它兼容性语言封装调用接口,本实施例对封装调用接口的兼容性语言不做具体限制。
步骤S30,基于所述UI框架引擎,根据接收的开发指令生成目标UI应用,其中,所述调用接口用于供各种***的终端调用所述目标UI应用。
检测是否接收的开发指令,其中,该开发指令可为用户在Linux***中触发的,也可为用户通过与Linux***建立连接关系的终端触发的。当接收到开发指令后,基于UI框架引擎,根据接收到开发指令生成目标UI应用,此时,其它***的终端可通过Linux***中的调用接口调用目标UI应用。需要说明的是,调用接口是Linux***应用层的调用接口,当Linux***的应用层接收到开发指令,通过该开发指令,使用UI框架引擎可开发目标UI应用。
具体地,在Linux***中,将Linux***的Porting层定义为UI框架引擎的API(Application Programming Interface,应用程序接口)子模块,将Linux***的Porting层以下的部分定义为Flutter Core子模块,Flutter Core子模块提供内部接口给UI框架引擎的API子模块调用,而UI框架引擎的API子模块提供对外接口,即UI框架引擎的API子模块提供给其它***的终端调用目标UI应用的调用接口。需要说明的是,在实现UI框架引擎的API子模块的过程中,可参照Android***中Porting层的实现方式,Porting层为数据传输需要涉及的数据层;而对于Flutter Core子模块,正常情况下不需要改动Flutter Core子模块对应源代码文件,除非在不改动源代码文件的情况下UI框架引擎无法运行时,开发人员才需要改动Flutter Core子模块对应源代码文件。
本实施例通过将UI框架引擎移植到Linux***中,并使用兼容性语言封装Linux***中调用UI框架引擎的调用接口,基于UI框架引擎,根据接收的开发指令生成目标UI应用,其中,调用接口用于供各种***的终端调用目标UI应用,通过利用Flutter开源UI框架跨平台特性,移植Flutter Engine(UI框架引擎)到Linux***,实现了通过UI框架引擎所开发的UI应用对应的代码可以跨***运行,如一套Launcher代码可以同时运行在安卓电视和Linux电视上,在安卓电视和Linux电视中提供了一致的UI交互体验,并且由于所开发的UI应用是基于Flutter开源UI框架来实现的,避免了H5绘制UI界面的流畅性差的问题,因此提高了Linux***对应终端UI应用的流畅性。
进一步地,可参照图3,图3是本发明实施例中电视Launcher(TV Launcher)的一种架构示意图。在电视的Launcher中,含有Dart框架(Dart Framework)、电视数据包(TVPackage)、UI框架引擎(Flutter Engine)、Host OS Package(主机操作***包)、Host OSService(主机操作***服务)和SitaTV service(Sita电视服务)。
进一步地,提出本发明跨***的UI应用生成方法第二实施例。
所述跨***的UI应用生成方法第二实施例与所述跨***的UI应用生成方法第一施例的区别在于,参照图4,所述跨***的UI应用生成方法还包括:
步骤S40,获取所述UI框架引擎对应的UI框架源码,检测所述UI框架源码中是否存在目标优先级对应的待修改目标源码。
当获取到UI框架引擎后,获取UI框架引擎对应的UI框架源码,需要说明的是,由于该UI框架引擎是开源的,因此在获取该UI框架引擎时,可以直接获取到该UI框架引擎对应的UI框架源码,即在获取该UI框架引擎时,可以一起获取该UI框架源码。当获取到UI框架源码后,检测该UI框架源码中是否存在目标优先级对应的待修改目标源码。需要说明的是,目标优先级的待修改目标源码为UI框架源码中不修改,则UI框架引擎无法正常运行的代码。在UI框架源码中,存在两种需要修改的代码中,一种是可以修改,也可以不修改的代码,该代码即使不修改也不会导致UI框架引擎无法正常运行;另一种是必须修改的代码,该代码不修改会影响UI框架引擎正常运行,必须修改的代码即为目标优先级对应的待修改目标源码。
具体地,在获取到UI框架源码后,输出该UI框架源码,并提示对应的开发人员确认UI框架源码中是否存在目标优先级对应的待修改目标源码。若接收到开发人员确认UI框架源码中存在目标优先级对应的待修改目标源码的确认指令,则根据该确认指令确定UI框架源码中的待修改目标源码。
除了让开发人员确认UI框架源码中是否存在待修改目标源码,也可自动确认UI框架源码中是否存在待修改目标源码,具体地,步骤S40包括:
步骤a,获取所述UI框架引擎对应的UI框架源码,在所述Linux***中对所述UI框架源码进行兼容性测试,以确定所述UI框架源码中的待修改源码。
获取UI框架引擎对应的UI框架源码,在Linux***中对UI框架源码进行兼容性测试,即将UI框架源码在Linux***中执行一次,以确定UI框架源码中的待修改源码。可以理解的是,在对UI框架源码进行兼容性测试过程中,若某个功能无法实现,或者某个功能的实现耗时大于正常耗时时,可确定该功能对应的代码为待修改代码。
步骤b,若检测到所述待修改源码为与所述UI框架引擎成功运行相关的代码,则确定与所述UI框架引擎成功运行相关的代码为目标优先级对应的待修改目标源码。
当确定UI框架源码中的待修改源码后,检测待修改源码是否为与UI框架引擎成功运行相关的代码。若检测到待修改源码为与UI框架引擎成功运行相关的代码,则确定与UI框架引擎成功运行相关的代码为目标优先级对应的待修改目标源码;若检测到待修改源码为与UI框架引擎成功运行无关的代码,则确定与UI框架引擎成功运行无关的代码不是目标优先级对应的待修改目标源码。可以理解的是,待修改目标源码为UI框架源码中,不修改就会导致对应功能无法实现的代码。
步骤S50,若确定所述UI框架源码中存在所述待修改目标源码,则获取所述待修改目标源码对应的第一补丁文件。
步骤S60,根据所述第一补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
若确定UI框架源码中存在待修改目标源码,则获取待修改目标源码对应的补丁文件,并将该补丁文件记为第一补丁文件,将第一补丁文件替换对应的待修改目标源码,以更新UI框架源码,使UI框架源码对应的UI框架引擎可以成功运行,即使UI框架引擎的各项功能都能实现。具体地,可预先存储UI框架源码对应各个功能的补丁文件,然后在确定待修改目标源码后,确定该待修改目标源码对应的功能标识,根据该功能标识获取待修改目标源码对应的补丁文件,此时,每一功能都存在对应的功能标识,通过该功能标识可唯一确定对应的功能;也可在确定待修改源码后,输出提示信息提示开发人员根据该待修改源码编写对应的补丁文件。可以理解的是,也可以在UI框架源码中添加新功能的代码,以使通过UI框架引擎生成的UI应用符合用户需求。
本实施例通过在基于UI框架引擎生成目标UI应用之前,检测UI框架引擎对应的UI框架源码中是否存在目标优先级对应的待修改目标源码,若确定UI框架源码中存在待修改目标源码,则根据待修改目标源码对应的补丁文件更新UI框架源码,使UI框架源码对应的UI框架引擎可以成功运行,从而提高了基于UI框架引擎生成的UI应用运行的成功率,即提高了不同终端***的UI应用对应的代码跨***运行的成功率。
进一步地,所述跨***的UI应用生成方法还包括:
步骤c,备份所述UI框架源码。
进一步地,在根据第一补丁文件更新UI框架源码之前,备份UI框架源码,避免更新UI框架源码之后,找不到原始的UI框架源码,不利于开发人员维护通过UI框架引擎生成的UI应用,实现了在通过UI框架引擎生成的UI应用处于故障状态时,可以根据更新后的UI框架源码和原始的UI框架源码,快速查找到UI应用的故障原因。
进一步地,提出本发明跨***的UI应用生成方法第三实施例。
所述跨***的UI应用生成方法第三实施例与所述跨***的UI应用生成方法第二实施例的区别在于,所述跨***的UI应用生成方法还包括:
步骤d,若确定所述UI框架源码中未存在所述待修改目标源码,则确定所述UI框架引擎中各个功能对应的目标功能代码。
若确定UI框架源码中未存在目标优先级对应的待修改目标源码,则确定UI框架引擎中各个功能对应的目标功能代码。需要说明的是,UI框架引擎中各个功能包括UI框架引擎原来能实现的功能,也包括根据需求在UI框架引擎中新增加的功能。每种功能都可能有多个方案来实现,每种方案都存在对应的功能代码,而目标功能代码为实现某种功能的最优方案的代码。目标功能代码可由开发人员决定,也可对每个功能对应的多种方案的代码进行测试,将其中运行效率最高的方案对应代码确定为该功能的目标功能代码。在本实施例中,对确定UI框架引擎各个功能对应的目标功能代码的方法不做具体限制,也可预先设置好UI框架引擎中各个功能对应的目标功能代码。进一步地,若UI框架源码中某些代码对应功能运行效率低于所设置的运行效率,或者由于其它原因需要修改UI框架源码中的某些代码,则UI框架源码中修改后的代码也属于目标功能代码。
步骤e,将所述目标功能代码发送给预设终端,以供所述预设终端的用户查看所述目标功能代码。
当得到目标功能代码后,将目标功能代码发送给预设终端,以供预设终端的用户查看目标功能代码。其中,该预设终端为开发UI框架引擎对应开发人员的终端。当预设终端接收到目标功能代码后,预设终端在其屏幕中输出该目标功能代码,并输出提示信息以提示对应的开发人员查阅该目标功能代码,并确定是否修改该目标功能代码。需要说明的是,若预设终端对应的开发人员确定不修改目标功能代码,则表明预设终端对应的开发人员接受对UI框架引擎的修改;若预设终端对应的开发人员确定修改目标功能代码,则表明预设终端对应开发人员不接受对UI框架引擎的修改。
当预设终端对应的开发人员接受对UI框架引擎的修改,预设终端的开发人员则会根据目标功能代码修改UI框架引擎的UI框架源码,得到修改后的UI框架源码。当预设终端得到修改后的UI框架源码后,预设终端会返回该修改后的UI框架源码。
步骤f,检测是否接收到所述预设终端发送的,根据所述目标功能代码修改后的UI框架源码。
步骤h,若接收到修改后的UI框架源码,则根据修改后的UI框架源码更新所述UI框架引擎,以使所述UI框架引擎成功运行。
当将目标功能代码发送给预设终端后,检测会否接收到预设终端发送的,根据目标功能代码修改后的UI框架源码。若接收到修改后的UI框架源码,则根据修改后的UI框架源码更新UI框架引擎,以使UI框架引擎可以成功运行。进一步地,在接收到修改后的UI框架源码后,存储该UI框架源码。
进一步地,所述跨***的UI应用生成方法还包括:
步骤i,若未接收到修改后的UI框架源码,则确定所述目标功能代码对应的第二补丁文件,并根据所述第二补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
若未接收到修改后的UI框架源码,则确定目标功能代码对应的补丁文件,将目标功能代码对应的补丁文件确定为第二补丁文件。可以理解的是,目标功能代码对应的第二补丁文件,就是将目标功能代码作为补丁文件,该目标功能代码对应多少个功能,则存在多少个补丁文件,即一个补丁文件对应一个功能。当确定第二补丁文件后,根据第二补丁文件更新UI框架源码,即更新第二补丁文件修改UI框架源码,并根据更新后的UI框架源码生成新的UI框架引擎,以使新的UI框架引擎成功运行。
进一步地,所述跨***的UI应用生成方法还包括:
步骤k,若确定不需要将所述目标功能代码发送给预设终端,则确定所述目标功能代码对应的第二补丁文件,并根据所述第二补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
进一步地,在得到目标功能代码后,可确定是否需要将目标功能代码发送给预设终端。具体地,是否将目标功能代码发送给预设终端可由Linux***的开发人员决定,Linux***的开发人员可通过触发发送指令来确定需要将目标功能代码发送给预设终端,也可通过触发否定指令开确定不需要将目标功能代码发送给预设终端。若确定不需要将目标功能代码发送给预设终端,则确定目标功能代码对应的第二补丁文件,并根据该第二补丁文件更新UI框架源码,以使UI框架引擎可以成功运行。需要说明的是,当确定不需要将目标功能代码发送给预设终端时,根据目标功能代码更新UI框架源码后,所得的UI框架源码为Linux***对应的代码,预设终端中的UI框架引擎对应的UI框架源码与Linux***对应的UI框架源码是不相同的。
本实施例通过当UI框架源码中未存在待修改目标源码时,确定UI框架引擎中各个功能对应的目标功能代码,根据该目标功能代码更新UI框架源码,以使UI框架引擎成功运行,进一步地提高了基于UI框架引擎生成的UI应用运行的成功率,即进一步地提高了不同终端***的UI应用对应的代码跨***运行的成功率。
进一步地,提出本发明跨***的UI应用生成方法第四实施例。
所述跨***的UI应用生成方法第四实施例与所述跨***的UI应用生成方法第一、第二和/或第三实施例的区别在于,参照图5,所述跨***的UI应用生成方法还包括:
步骤S70,若通过所述调用接口接收到安卓终端发送的第一调用指令,则根据所述第一调用指令将所述目标UI应用封装成安卓应用程序包,并将所述安卓应用程序包发送给所述安卓终端。
若通过调用接口接收到安卓终端发送的第一调用指令,则根据该第一调用指令将目标UI应用封装成安卓应用程序包,即将目标UI应用打包成APK(Android applicationpackage,Android应用程序包)格式的程序包,并将该安卓应用程序包发送给安卓终端。当安卓终端接收到该目标UI应用对应的安卓应用程序包后,可安装该安卓应用程序包。其中,第一调用指令为用户通过安卓终端发送的。
进一步地,所述跨***的UI应用生成方法还包括:
步骤m,若通过所述调用接口接收到Linux电视发送的第二调用指令,则根据所述第二调用指令将所述目标UI应用封装成TPK格式的应用程序包,并将所述TPK格式的应用程序包发送给所述Linux电视。
若通过调用接口接收到Linux电视发送的第二调用指令,则根据第二调用指令将目标UI应用封装成TPK格式的应用程序包,并TPK格式的应用程序包发送给Linux电视,其中,TPK是从地图或底图生成切片,并将切片进行打包从而创建单个压缩的.TPK文件,切片包(.TPK)是在地图或栅格数据集中能作为Web切片或Web高程图层发布的一组切片(图像),其中,TPK格式为符合电视AM(Amplitude Modulation,调幅)的格式。Linux电视为Linux***的电视。当Linux电视接收到TPK格式的应用程序包后,可安装该TPK格式的应用程序包,以在Linux电视成功运行目标UI应用。第二调用指令为用户在Linux电视中触发的。
需要说明的是,当发送调用指令对应终端的***不同时,会根据调用指令对应的***将目标UI应用打包成该***对应的应用程序包,以使目标UI应用可以在终端中正常运行。
进一步地,安卓终端、Linux电视等***的终端,可以通过获取目标UI应用来进行版本升级。
本实施例通过根据发送调用指令终端***的不同,将目标UI应用打包成对应***的应用程序包,以使终端调用目标UI应用后,该目标UI应用可以成功运行,提高了通过UI框架引擎生成的UI应用在不同***中运行的成功率。
此外,本发明还提供一种跨***的UI应用生成设备。如图6所示,图6是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图6即可为跨***的UI应用生成设备的硬件运行环境的结构示意图。
如图6所示,该跨***的UI应用生成设备可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,跨***的UI应用生成设备还可以包括RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图6中示出的跨***的UI应用生成设备结构并不构成对跨***的UI应用生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及跨***的UI应用生成程序。其中,操作***是管理和控制跨***的UI应用生成设备硬件和软件资源的程序,支持跨***的UI应用生成程序以及其它软件或程序的运行。
在图6所示的跨***的UI应用生成设备中,用户接口1003主要用于其它***终端,与其它***的终端进行数据通信,如连接安卓终端,与安卓终端进行数据通信,和/或连接Linux电视,与Linux电视进行数据通信;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的跨***的UI应用生成程序,并执行如上所述的跨***的UI应用生成方法的步骤。
本发明设备具体实施方式与上述跨***的UI应用生成方法各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有跨***的UI应用生成程序,所述跨***的UI应用生成程序被处理器执行时实现如上所述的跨***的UI应用生成方法的步骤。
本发明计算机可读存储介质具体实施方式与上述跨***的UI应用生成方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,设备,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种跨***的UI应用生成方法,其特征在于,所述跨***的UI应用生成方法包括以下步骤:
获取预设的UI框架引擎,将所述UI框架引擎移植到Linux***中;
使用兼容性语言封装所述Linux***中调用所述UI框架引擎的调用接口;
基于所述UI框架引擎,根据接收的开发指令生成目标UI应用,其中,所述调用接口用于供各种***的终端调用所述目标UI应用。
2.如权利要求1所述的跨***的UI应用生成方法,其特征在于,所述基于所述UI框架引擎,根据接收的开发指令生成目标UI应用的步骤之前,还包括:
获取所述UI框架引擎对应的UI框架源码,检测所述UI框架源码中是否存在目标优先级对应的待修改目标源码;
若确定所述UI框架源码中存在所述待修改目标源码,则获取所述待修改目标源码对应的第一补丁文件;
根据所述第一补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
3.如权利要求2所述的跨***的UI应用生成方法,其特征在于,所述获取所述UI框架引擎对应的UI框架源码,检测所述UI框架源码中是否存在目标优先级对应的待修改目标源码的步骤包括:
获取所述UI框架引擎对应的UI框架源码,在所述Linux***中对所述UI框架源码进行兼容性测试,以确定所述UI框架源码中的待修改源码;
若检测到所述待修改源码为与所述UI框架引擎成功运行相关的代码,则确定与所述UI框架引擎成功运行相关的代码为目标优先级对应的待修改目标源码。
4.如权利要求2所述的跨***的UI应用生成方法,其特征在于,所述获取所述UI框架引擎对应的UI框架源码,检测所述UI框架源码中是否存在目标优先级对应的待修改目标源码的步骤之后,还包括:
若确定所述UI框架源码中未存在所述待修改目标源码,则确定所述UI框架引擎中各个功能对应的目标功能代码;
将所述目标功能代码发送给预设终端,以供所述预设终端的用户查看所述目标功能代码;
检测是否接收到所述预设终端发送的,根据所述目标功能代码修改后的UI框架源码;
若接收到修改后的UI框架源码,则根据修改后的UI框架源码更新所述UI框架引擎,以使所述UI框架引擎成功运行。
5.如权利要求4所述的跨***的UI应用生成方法,其特征在于,所述检测是否接收到所述预设终端发送的,根据所述目标功能代码修改后的UI框架源码的步骤之后,还包括:
若未接收到修改后的UI框架源码,则确定所述目标功能代码对应的第二补丁文件,并根据所述第二补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
6.如权利要求4所述的跨***的UI应用生成方法,其特征在于,所述若确定所述UI框架源码中未存在所述待修改目标源码,则确定所述UI框架引擎中各个功能对应的目标功能代码的步骤之后,还包括:
若确定不需要将所述目标功能代码发送给预设终端,则确定所述目标功能代码对应的第二补丁文件,并根据所述第二补丁文件更新所述UI框架源码,以使所述UI框架引擎成功运行。
7.如权利要求2所述的跨***的UI应用生成方法,其特征在于,所述获取所述UI框架引擎对应的UI框架源码的步骤之后,还包括:
备份所述UI框架源码。
8.如权利要求1至7任一项所述的跨***的UI应用生成方法,其特征在于,所述基于所述UI框架引擎,根据接收的开发指令生成目标UI应用的步骤之后,还包括:
若通过所述调用接口接收到安卓终端发送的第一调用指令,则根据所述第一调用指令将所述目标UI应用封装成安卓应用程序包,并将所述安卓应用程序包发送给所述安卓终端;
若通过所述调用接口接收到Linux电视发送的第二调用指令,则根据所述第二调用指令将所述目标UI应用封装成TPK格式的应用程序包,并将所述TPK格式的应用程序包发送给所述Linux电视。
9.一种跨***的UI应用生成设备,其特征在于,所述跨***的UI应用生成设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的跨***的UI应用生成程序,所述跨***的UI应用生成程序被所述处理器执行时实现如权利要求1至8中任一项所述的跨***的UI应用生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有跨***的UI应用生成程序,所述跨***的UI应用生成程序被处理器执行时实现如权利要求1至8中任一项所述的跨***的UI应用生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911422746.0A CN111158689A (zh) | 2019-12-30 | 2019-12-30 | 跨***的ui应用生成方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911422746.0A CN111158689A (zh) | 2019-12-30 | 2019-12-30 | 跨***的ui应用生成方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111158689A true CN111158689A (zh) | 2020-05-15 |
Family
ID=70560660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911422746.0A Pending CN111158689A (zh) | 2019-12-30 | 2019-12-30 | 跨***的ui应用生成方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158689A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256279A (zh) * | 2020-09-29 | 2021-01-22 | 深圳市广和通无线股份有限公司 | 源码转换方法、装置、计算机设备及可读存储介质 |
CN113515300A (zh) * | 2021-07-09 | 2021-10-19 | 北京字节跳动网络技术有限公司 | 代码查看方法、装置、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080022697A (ko) * | 2006-09-07 | 2008-03-12 | 한국전자통신연구원 | 동적 ui 프레임워크 및 이를 기반으로 하는 사용자인터페이스 구현 방법 |
CN101980155A (zh) * | 2010-11-04 | 2011-02-23 | 青岛海信电器股份有限公司 | 电视机用户界面的实现方法和***、电视机 |
CN101986273A (zh) * | 2010-11-15 | 2011-03-16 | 中国电信股份有限公司 | 多媒体播放***及其移植处理方法 |
US20160100025A1 (en) * | 2014-10-01 | 2016-04-07 | Rachel Ebner | Ui framework support for portal systems |
CN105893014A (zh) * | 2015-12-08 | 2016-08-24 | 乐视云计算有限公司 | 用于前端的项目开发方法及*** |
CN110286927A (zh) * | 2019-06-24 | 2019-09-27 | 北京字节跳动网络技术有限公司 | Flutter应用的热更新方法、装置及设备 |
CN110618811A (zh) * | 2019-03-18 | 2019-12-27 | 北京无限光场科技有限公司 | 信息呈现方法和装置 |
-
2019
- 2019-12-30 CN CN201911422746.0A patent/CN111158689A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080022697A (ko) * | 2006-09-07 | 2008-03-12 | 한국전자통신연구원 | 동적 ui 프레임워크 및 이를 기반으로 하는 사용자인터페이스 구현 방법 |
CN101980155A (zh) * | 2010-11-04 | 2011-02-23 | 青岛海信电器股份有限公司 | 电视机用户界面的实现方法和***、电视机 |
CN101986273A (zh) * | 2010-11-15 | 2011-03-16 | 中国电信股份有限公司 | 多媒体播放***及其移植处理方法 |
US20160100025A1 (en) * | 2014-10-01 | 2016-04-07 | Rachel Ebner | Ui framework support for portal systems |
CN105893014A (zh) * | 2015-12-08 | 2016-08-24 | 乐视云计算有限公司 | 用于前端的项目开发方法及*** |
CN110618811A (zh) * | 2019-03-18 | 2019-12-27 | 北京无限光场科技有限公司 | 信息呈现方法和装置 |
CN110286927A (zh) * | 2019-06-24 | 2019-09-27 | 北京字节跳动网络技术有限公司 | Flutter应用的热更新方法、装置及设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256279A (zh) * | 2020-09-29 | 2021-01-22 | 深圳市广和通无线股份有限公司 | 源码转换方法、装置、计算机设备及可读存储介质 |
CN112256279B (zh) * | 2020-09-29 | 2024-05-14 | 深圳市广和通无线股份有限公司 | 源码转换方法、装置、计算机设备及可读存储介质 |
CN113515300A (zh) * | 2021-07-09 | 2021-10-19 | 北京字节跳动网络技术有限公司 | 代码查看方法、装置、电子设备和存储介质 |
CN113515300B (zh) * | 2021-07-09 | 2023-08-22 | 北京字节跳动网络技术有限公司 | 代码查看方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113312037B (zh) | 应用于微服务的数据处理方法、装置、设备和存储介质 | |
WO2017185253A1 (zh) | 基于补丁升级的文件处理方法、装置、终端以及存储介质 | |
US20170085419A1 (en) | System and method for deploying an application | |
KR101489199B1 (ko) | 컴퓨터에서 실행 가능한 어플리케이션 패키지를 생성하는 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체 | |
CN107305553B (zh) | 一种基于Hybrid App中动态跳转Hybrid页面的方法及*** | |
CN110413259B (zh) | Android服务框架、实现扩展服务的方法及装置 | |
EP3188011B1 (en) | Automatic provisioning of a software platform to a device ecosystem | |
CN106686200B (zh) | 移动应用程序更新方法、移动终端及更新*** | |
CN110764805B (zh) | 客户端无感升级的方法、装置、终端及存储介质 | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN106502717B (zh) | 应用程序运行方法及装置 | |
CN111158689A (zh) | 跨***的ui应用生成方法、设备及计算机可读存储介质 | |
CN108845800B (zh) | 一种组件扩展功能的实现方法、装置、设备及存储介质 | |
CN112698839A (zh) | 数据中心节点部署方法、装置、***及计算机存储介质 | |
CN108268261B (zh) | 一种智能终端的ui定制方法、存储介质及智能终端 | |
CN108052401B (zh) | ***属性监听方法、终端设备及计算机可读存储介质 | |
US11071151B2 (en) | Methods and apparatuses for connecting a wireless access point through an application in a user equipment | |
CN110599112B (zh) | 一种网络页面开发、维护方法和装置 | |
CN108009084B (zh) | 一种混合移动应用的测试方法、装置及*** | |
CN107704279B (zh) | 一种数据加载方法以及装置 | |
CN104133669B (zh) | 一种桌面应用的控制方法及终端设备 | |
CN116433835A (zh) | 三维增强现实操作***的构造方法、装置和介质 | |
CN113138768B (zh) | 应用程序包生成方法、装置、电子设备以及可读存储介质 | |
CN103984541A (zh) | 基于终端源代码生成应用程序的方法和*** | |
CN113950034A (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 |