CN115168007A - 用于跨平台的应用程序迁移的方法、设备和程序载体 - Google Patents
用于跨平台的应用程序迁移的方法、设备和程序载体 Download PDFInfo
- Publication number
- CN115168007A CN115168007A CN202210848764.0A CN202210848764A CN115168007A CN 115168007 A CN115168007 A CN 115168007A CN 202210848764 A CN202210848764 A CN 202210848764A CN 115168007 A CN115168007 A CN 115168007A
- Authority
- CN
- China
- Prior art keywords
- application
- platform
- vehicle
- vehicle platform
- conversion
- 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/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/51—Source to source
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
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)
- Stored Programmes (AREA)
Abstract
本发明提供一种用于跨平台的应用程序迁移的方法,所述方法包括:将特定于源平台的应用程序转换为可运行于车辆平台的应用程序,其中,所述转换包括:将待转换的应用程序的特定于源平台的用户界面转换为基于Web的用户界面;将待转换的应用程序中对特定于源平台的API的调用转换成对车辆平台的API的调用。本发明还提供一种用于跨平台的应用程序迁移的设备、一种应用程序平台、一种车辆系统、一种用于跨平台的应用程序迁移的系统和一种机器可读程序载体。本发明通过将应用程序从具有特定生态系统的移动终端直接移植到车辆平台中,消除了应用程序对不同平台及操作系统的依赖性,降低了在车辆平台中提供应用程序的难度。
Description
技术领域
本发明涉及一种用于跨平台的应用程序迁移的方法、一种用于跨平台的应用程序迁移的设备、一种应用程序平台、一种车辆系统、一种用于跨平台的应用程序迁移的系统和一种机器可读程序载体。
背景技术
当前,不同车辆制造商都拥有自己的车载信息娱乐系统,在此基础上能够向车辆用户提供具有多样化服务和内容的应用程序。然而,逐一开发这些应用程序需要花费大量时间和精力,同时,随着移动互联网的高速发展,在智能移动设备领域已经由不同内容提供商开发出各种丰富的应用程序(所谓的移动应用程序),以供智能移动设备平台的消费者使用。如何将这些成熟的应用程序从智能移动设备平台迁移到车辆平台是目前面临的一大难题。
为了实现应用程序从第三方的移动设备平台(或第三方应用程序生态系统)到车辆平台的移植,许多车辆制造商依赖于车载操作系统与安卓(Android)或iOS操作系统的集成(例如采用基于安卓系统的车载操作系统)。这种方案有例如下列劣势:需要特定操作系统(例如安卓系统)与车辆软、硬件的深度集成;为了满足车辆需求,需进行硬件、安全性等方面的更改。此外,还需要额外的硬件或虚拟机管理程序,这通常伴随着巨大开销。即使在车辆中集成了特定操作系统,也通常需要对每个原生应用程序调整和适配、必要时甚至完全重写,以使其适应于车辆的操作系统和环境。另外,基于安卓系统的车载操作系统会局限于安卓生态系统,不能与其它生态系统集成或兼容。
现有技术中还提出了基于云的分布式应用程序系统,其旨在将应用程序集中部署和托管在云端,通过在云中的部署,可使应用程序运行在不同类型的设备上。但基于云的分布式应用程序系统也有不足,例如:如果想要获得车辆数据资源则需要车辆首先将其同步到云端服务器,这意味着用户在使用过程中的较大操作数据(如文件读写)也需要借助云端存储完成,在数据安全及用户隐私信息保护方面也存在隐患。而且基于云的分布式应用程序需要依赖终端设备与云端或服务器端的网络连接;当终端设备无法连接网络时,则无法正常运行。
发明内容
本发明涉及一种用于跨平台的应用程序迁移的方法、一种用于跨平台的应用程序迁移的设备、一种应用程序平台、一种车辆系统、一种用于跨平台的应用程序迁移的系统和一种机器可读程序载体,以至少解决现有技术中的部分问题。
根据本发明的第一方面,提出一种用于跨平台的应用程序迁移的方法,所述方法包括:
将特定于源平台的应用程序转换为可运行于车辆平台的应用程序,其中,所述转换包括:
将待转换的应用程序的特定于源平台的用户界面转换为基于Web的用户界面;
将待转换的应用程序中对特定于源平台的API的调用转换成对车辆平台的API的调用。
本发明尤其包括以下技术构思:通过将应用程序从基于特定生态系统的移动终端移植到车辆平台中,汽车制造商可以通过车载应用商店轻松地将丰富的内容和服务从智能移动设备平台移植和部署到车辆平台(例如车辆平台),而无须在车辆平台对应用程序重新进行开发和编译,有利地减轻了内容服务商和开发人员的负担。同时,通过在用户界面和API调用方面执行转换,消除或减少了应用程序对于不同底层车载操作系统的依赖性,使得转换后的应用程序可以更好地跨平台/操作系统使用,提高了应用程序的跨平台/操作系统的通用性。
可选地,所述方法还包括将转换后的应用程序下载、部署和/或安装到车辆平台。
在此,与常见的基于客户端-服务器的云共享应用程序模式不同,在运行应用程序时不需要始终通过网络实时将车辆数据同步到云端,而是将经转换的应用程度部署在车辆平台,从而允许其可靠地调用和访问车辆本地资源(例如GPS定位信息、车辆唯一标识符等),这极大地提高了车辆数据的安全性。
可选地,所述用户界面的转换包括在UI/UX元素方面对应用程序的转换,其中,将应用程序的概念描述模型转换为与车辆平台实现相关的模型
在此,基于web技术的应用程序不受限于操作系统和所使用的平台,并且具备安全隔离特性。通过对概念描述模型的这种适配,例如仅通过在车辆平台的浏览器中打开即可为用户提供与在任意操作系统中一致的操作体验。
可选地,所述用户界面的转换包括:
获取应用程序的UI/UX元素的开发者声明,所述开发者声明包括UI/UX元素的显示属性和逻辑属性,所述显示属性尤其包括关于UI/UX元素在车辆平台的样式、大小和/或布局的注释,所述逻辑属性尤其包括关于UI/UX元素在车辆平台的交互逻辑的注释;以及
确定渲染策略;
根据渲染策略,基于所述显示属性和所述逻辑属性生成基于Web的UI/UX元素。
在此,由于基于应用程序的源代码或开发者声明所提取的原始概念描述模型本身已具备足够的抽象性,因此为了完成平台到平台的映射过程只需要执行利用中间层的后端逻辑转换,由此有利地提高了转换效率。
可选地,所述API调用的转换包括将对源平台系统资源的访问转换为对车辆平台资源的访问,使得转换后的应用程序能够访问车辆平台的硬件设备、本地资源和/或本地数据。
在此,通过修改API调用,可以支持应用程序在车辆平台对资源访问权限的检查,确保了数据安全性。
可选地,所述应用程序转换中的用户界面的转换和API调用的转换均在车辆平台侧、车辆平台云侧和源平台侧的其中之一进行。
在此,由于根据本发明的转换不受时间和地点限制,因此极大地提高了应用程序迁移的灵活性。尤其当网络信号较差时,可以在云端服务器实现这种转换,由此一方面能够更高效地执行迁移过程,另一方面能够降低对车辆本地的硬件要求和计算开销。
可选地,所述应用程序的转换分阶段地分别在车辆平台侧、车辆平台云侧和源平台侧的其中两处进行
在此,例如可以使涉及车辆敏感数据的转换部分在车辆本地进行,而使转换的其余部分在源平台侧进行,由此在确保数据安全性的同时降低了车辆侧的计算开销。
可选地,API调用的转换在车辆平台云侧或者车辆平台侧、尤其在车辆平台本地进行。
在此,在API调用转换的过程中通常涉及大量车辆本地资源的调用和读取,在车辆侧执行与物理层的对接以及车辆本地数据资源的交互可以确保与安全和隐私相关的数据均从本地获取和/或存储,避免了不信任的第三方平台通过内容同步和共享而对车辆数据滥用。
可选地,所述方法还包括:
接收对应用程序的迁移或者转换请求,
响应于对应用程序的迁移或者转换请求,将特定于源平台的应用程序转换为可运行于车辆平台的应用程序。
可选地,对所述应用程序的迁移或者转换请求响应于用户发起的在车辆平台下载、安装应用程序的请求和/或首次在车辆平台使用应用程序的请求而发起,或者由系统发起。
可选地,对所述应用程序的转换不基于迁移或者转换请求而预先进行。
由此,提供了多种应用程序迁移的触发机制,不仅可以以用户的具体使用过程为导向,而且也可以在开发阶段执行预转换,拓展了本方案的应用场景。
根据本发明的第二方面,提供一种用于跨平台的应用程序迁移的设备,所述设备用于执行根据本发明的第一方面所述的方法,所述设备包括:
转换模块,其配置成能够将特定于源平台的应用程序转换为可运行于车辆平台的应用程序,
其中,所述转换包括:
将待转换的应用程序的特定于源平台的用户界面转换为基于Web的用户界面;
将待转换的应用程序中对特定于源平台的API的调用转换成对车辆平台的API的调用。
根据本发明的第三方面,提供一种应用程序平台、尤其车辆平台,所述应用程序平台包括:用户界面层、系统层和应用接口层;所述应用程序平台被配置为能够运行借助根据本发明的第一方面所述的方法转换后的应用程序。
可选地,所述应用程序平台包括根据本发明的第二方面所述的设备。
根据本发明的第四方面,提供一种车辆系统,所述车辆系统包括根据本发明的第二方面所述的设备和/或根据本发明的第三方面所述的应用程序平台。
根据本发明的第五方面,提供一种用于跨平台的应用程序迁移的系统,所述系统包括车辆平台、车辆平台云和源平台生态系统云,所述系统被配置为能够执行根据本发明的第一方面所述的方法。
根据本发明的第六方面,提供一种机器可读程序载体,在其上存储有计算机程序,所述计算机程序用于当其在计算机上运行时能够实施根据本发明的第一方面的方法。
附图说明
下面,通过参看附图更详细地描述本发明,可以更好地理解本发明的原理、特点和优点。附图包括:
图1示出了根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的设备的框图;
图2示出了根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的系统的框图;
图3示出了根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的方法的流程图;
图4示出了借助根据本发明的方法的一个示例性实施例将应用程序迁移到车辆平台的示意图;
图5示出了借助根据本发明的方法的另一示例性实施例将应用程序迁移到车辆平台的示意图;
图6示出了在实施根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的方法的时序图;以及
图7示出了在实施根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的方法的另一时序图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案以及有益的技术效果更加清楚明白,以下将结合附图以及多个示例性实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,而不是用于限定本发明的保护范围。
图1示出了根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的设备的框图。
在本发明的意义上,应用程序包括但不限于文字处理应用程序、电子表格应用程序、导航应用程序、音/视频播放应用程序、电子邮件应用程序、数据库应用程序、游戏应用程序和信息获取类应用程序。
如图1所示,设备1包括应用程序转换模块3。此外在该实施例中,设备1还可选地包括接口模块2和下载服务模块4。
接口模块2例如可以构造为或者连接到车辆平台的用户界面(UI接口),并且可以包括或者能够访问车辆的各种资源组件(例如屏幕、扬声器、麦克风、触摸屏和/或键盘),基于该用户界面可向用户呈现能够在车辆平台上提供的应用程序及其列表。接口模块2还可以包括通信接口并且能够以通信方式接收来自系统自身或系统外部的对应用程序的迁移请求。例如,这种迁移请求可以是用户触发的对应用程序的下载和/或安装请求,也可以是由系统自动触发的对应用程序的预转换请求。
接口模块2可以以能够传输信号的方式连接到应用程序转换模块3。应用程序转换模块3例如可以构造为转换引擎,以便可以将特定于源平台的应用程序转换为可运行于车辆平台(以及不同于源平台的其它平台或操作系统)的应用程序。所述可运行于车辆平台的应用程序例如可以在车辆平台上以独立于操作系统的方式运行,而且还可以是可运行于不同平台的以独立于底层操作系统的方式运行的跨平台应用程序。应用程序的转换可以基于迁移或者转换请求而进行,也可以不基于迁移或者转换请求而预先进行。迁移或者转换请求例如可以是响应于用户发起的在车辆平台下载、安装应用程序的请求和/或首次在车辆平台使用应用程序的请求而发起的,也可以是由系统发起的。应用程序的转换可以以同步或者异步方式执行。例如,以同步方式执行应用程序的转换可以是在接收到用户发起的在车辆平台下载、安装应用程序的请求和/或首次在车辆平台使用某应用程序的请求的同时执行应用程序的跨平台转换。以异步方式执行应用程序的转换可以在用户发起在车辆平台下载、安装应用程序的请求和/或首次在车辆平台使用某应用程序的请求之前,预先完成应用程序的转换(例如可以是响应于系统的预转换请求);当用户发起在车辆平台下载安装应用程序的请求和/或首次在车辆平台使用某应用程序的请求时,该应用程序的(预)转换已经预先完成。
在本发明中,特定于源平台的应用程序可以理解为针对任一特定移动终端平台(例如智能手机、智能平板、笔记本电脑、可穿戴设备等)和/或特定操作系统(例如嵌入式Linux操作系统、Windows操作系统、Unix操作系统、安卓操作系统、Mac OS X操作系统和iOS操作系统、特定的车载操作系统等)所开发的应用程序,这些应用程序依赖于特定平台和/或特定操作系统而运行,无法直接在另外的生态系统(例如其它平台或其它操作系统)上运行和使用。根据本发明的一个实施例,跨平台应用程序可以是能够独立于特定平台和/或特定操作系统而运行的应用程序(例如混合模式应用程序Hybrid App),这些应用程序能够在无需与特定平台和/或特定操作系统进行深度集成的情况下正常运行。作为示例,这种跨平台应用程序例如可以是基于web和/或容器化技术的应用程序。
如在图1中示例性所示,应用程序转换模块3可以包括UI/UX元素转换单元10和API调用转换单元20。UI/UX元素转换单元10可以将待转换的应用程序的特定于源平台的用户界面(UI/UX)转换为基于Web的用户界面。例如,UI/UX元素转换单元10可以被配置为能够在UI/UX元素方面对应用程序进行转换。在本发明的意义上,UI元素可以理解为包括呈现在用户界面上的控件元素和布局元素,其中,控件元素例如包括按钮、菜单、滚动条、窗口、子窗口、搜索栏、表格、图形等,布局元素例如表示各控件之间的布局定位、交互事件、界面动画、过渡等。UX元素取决于用户的操作体验,这例如包括与用户的交互方式设计相关的元素。
在UI/UX元素转换单元10中,例如可以将源应用程序的概念描述模型转换为与车辆平台实现相关的模型。例如可以首先获取源应用程序的UI/UX元素的开发者声明(例如源代码),该开发者声明包括UI/UX元素的显示属性和逻辑属性。显示属性包括关于内容元素在车辆平台的样式、大小、布局的注释,逻辑属性包括关于内容元素在车辆平台的交互逻辑的注释。在获取了显示属性和逻辑属性之后,还可以例如借助状态机来确定渲染策略:例如基于车辆平台支持的图形显示方式确定相应的渲染策略(例如着色、剔除、混合)。最后,根据所确定的渲染策略,基于显示属性和逻辑属性生成UI/UX元素在车辆平台的描述文档并由此生成可以在浏览器中显示的基于web的UI/UX元素。
作为示例,待转换的应用程序的开发者声明为“一个按钮,点击时跳转到另一个页面”,于是,在转换单元中将这种开发者声明转换为在车辆平台上对应的按钮和点击事件的描述文档及相应的基于web的UI/UX元素,从而完成从抽象模型到车辆平台模型的映射。
除了显示属性和逻辑属性,还可以获取应用程序及其内容元素在源平台的状态属性,以便基于该状态属性记录应用程序在源平台操作环境中的执行状态以及用户历史偏好数据,由此可以在车辆平台系统层中创建的目标容器中以所记录的状态属性继续运行经转换的应用程序。
此外,应用程序转换模块3还可以包括API(Application ProgrammingInterface,应用程序编程接口)调用转换单元20。API调用转换单元20可以实现API调用方面的转换。例如可以将待转换的应用程序中对特定于源平台的API的调用转换成对车辆平台的API调用或者独立于特定平台的API调用。在这一过程中将对源平台系统资源的特定访问转换为对车辆平台资源的访问。例如通过改变API调用来定义GPS信息返回请求、相册访问请求、获取来电接口、定义音频传送到扬声器的方式、获取移动终端唯一编码等,以使访问和调用资源和/或数据的方式适应于车辆平台的使用环境。作为示例,在智能手机平台使用导航应用程序时,用于获取位置信息的原生API请求返回移动终端的定位标准以及定位坐标,但是在车辆平台中一般只支持国标所以只会返回定位坐标,而定位标准作为系统默认配置并不会被返回。因此,在车辆平台中,为了应用程序的正常运行,API调用转换单元可以为该API补充定位标准字段,指定为国标。
通过API调用的转换和适配,可以使得应用程序在不与车辆平台进行操作系统级的深度集成的情况下实现交互功能的转换和适配,使得从应用开发者和终端用户的角度并不会感受到API的差异。以用户在移动终端的扫一扫功能为例,原生API被配置为能够访问用户的移动终端的摄像头,在利用根据本发明的方法进行转换之后,新的API例如能够请求调用车辆的前置摄像头来进行拍摄,并将所拍摄的图像文件保存到预定存储位置,通过预定事件解析和读取所述图像文件,然后执行处理该图像文件的代码。然而如果车辆不支持摄像头,则也会获得在手机上没有摄像头一样的出错提示。
在车辆平台,可以利用浏览器和/或容器(Container)技术和/或车辆抽象层(Vehicle Abstraction Layer,VAS)作为经过转换的应用程序调用和/或访问车辆平台的API或车辆平台的本地资源和/或数据,和/或在经过转换的应用程序运行在车辆平台(例如车辆平台)或加载到车辆平台的容器之后与车辆平台底层硬件设备或本地资源数据的通信方式。
在图1中还示例性地示出(可选的)下载服务模块4,该下载服务模块4例如可以用于将未经转换的、经部分转换的或经转换后的应用程序下载到车辆平台,和/或将经转换后的应用程序部署和/或安装到车辆平台。下载服务模块还可以为所下载的应用程序提供运行环境,使得应用程序组件能够以适当方式运行在车辆平台环境中并能够调用车辆平台中的资源和/或数据。应用程序转换模块3与下载服务模块4以能够进行双向通信的方式连接。根据本发明的一种实施方式,响应于对应用程序的迁移请求,可以通过下载服务模块4从云服务器(例如源平台的生态系统云、原平台的应用程序商店,或车辆云)下载待转换的特定于源平台的应用程序,然后再(例如借助应用程序转换模块3)对这些特定于源平台的应用程序进行转换,以便能够在车辆平台侧以非深度集成的方式运行该应用程序。根据本发明的另一种实施方式,也可以预先进行应用程序的跨平台转换,以消除其对于特定平台或操作系统的依赖性,并可以将转换后的应用程序安装包存储在服务器端或云端(例如源平台的生态系统云或在车辆平台云);然后,例如响应于用户在车辆平台上下载/安装相应的应用程序的请求或指令,可以(例如通过车辆平台上的下载服务模块4)从服务器或云端下载并在车辆平台中安装和运行转换后的(跨平台)应用程序。根据本发明的另一种实施方式,还可以将转换后的应用程序作为预置应用程序预先部署和/或安装到车辆平台(不需要用户从服务器或云端下载)。
图2示出了根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的系统的框图。
在本示例性实施例中,用于跨平台的应用程序迁移的系统包括车辆平台100,车辆平台云200和源平台生态系统云300。
在本示例性实施例中,用于运行跨平台应用程序的应用程序平台为车辆平台。根据本发明的实施例,跨平台的应用程序迁移的目标平台还可以包括不同于源平台(即迁移或转换前的应用程序所基于的平台)的其它平台(例如其它移动设备)或其它操作系统。参考图2,车辆平台100作为车辆系统的一部分示出并且例如可以包括用户界面层110、系统层120和应用接口层130。
用户界面层110例如用于实现与用户的人机交互操作并且例如以用户界面(UI)的形式为用户呈现可视化图形组件。例如可以使用基于Web的用户界面,从而可以实现支持跨平台(或者独立于平台)的应用程序用户界面显示和交互。在此,基于Web的用户界面可以包括基于Web技术的UI组件,例如html超文本标记语言形式的、CSS或javascript形式的标准web元素等。这些web元素可以在标准的web浏览器或web视图(web view)中运行,从而实现跨平台或者平台的独立性。例如大多数的车辆平台或车载操作系统均支持web浏览器或web视图。作为示例,可以通过用户界面向用户呈现应用程序商店图形元素111以及相应的应用程序列表图形元素112、113、114。
在该示例性实施例中,系统层120被配置成能够与用户接口层110交互。系统层120例如可以具有基于容器(Container)技术的应用程序运行环境,从而可以作为虚拟化解决方案使得应用程序能够运行在不同的车辆平台或底层操作系统(例如基于Linux的车辆平台和基于安卓的车辆平台)上。用户界面层110和/或系统层120中所运行的应用程序例如可以是由特定于源平台的应用程序经过跨平台转换之后的应用程序(例如可以以独立于底层操作系统的方式运行的跨平台应用程序)。在该示例性实施例中,系统层120可以包括应用程序转换模块121,该应用程序转换模块121可以具有图1所示实施例中的应用程序转换模块3的全部或部分功能。系统层120还可以包括应用程序管理服务模块122。应用程序管理服务模块122负责应用程序的生命周期管理,例如包括下载、安装、卸载和启动等。系统层120还可以包括Web服务器(Web Content Server)模块。
在该示例性实施例中,应用接口层130可以以能够传输信号的方式与系统层120耦合,应用接口层130可以通过例如API接口的方式为系统层120和/或系统层120中运行的应用程序提供对车辆平台底层的本地软硬件资源、功能和/或数据(例如底层硬件、车辆数据)等的访问。
除了车辆平台100之外,在图2中还示出车辆平台云200和源平台生态系统云300。在本实施例中,车辆平台云200也简称为车辆云,其例如可以是由车辆制造商提供的云或后台服务器,可以直接与车辆平台100进行通信,为车辆系统提供云服务或后台服务。在车辆云200中例如设有应用程序商店后台模块210和相应的应用程序管理服务模块220。该应用程序管理服务模块220例如可以在车辆平台云端管理应用程序(例如可以是经过跨平台转换的可运行于车辆平台的应用程序);例如可以用于将应用程序从第三方平台(例如源平台生态系统云300)下载到车辆云;例如可以基于来自车辆平台(例如车辆平台)的应用程序下载请求将应用程序推送到车辆平台(例如车辆平台)。此外可选地,车辆云200也可以包括应用程序转换模块230,该应用程序转换模块230可以具有图1所示实施例中的应用程序转换模块3的全部或部分功能。
源平台生态系统云300例如可以是第三方的基于源平台的应用程序的云或服务器,其提供基于源平台(不同于车辆平台)的(例如可以是基于安卓的、基于快应用的或基于小程序的)应用程序包310。此外,源平台生态系统云300可以包括应用程序开发工具,使得第三方应用程序开发者可以为该源平台生态系统开发各种应用程序。可选地,源平台生态系统云300也可以包括应用程序转换模块330,该应用程序转换模块330可以具有图1所示实施例中的应用程序转换模块3的全部或部分功能。
图3示出了根据本发明的一个示例性实施例的用于跨平台的应用程序迁移的方法的流程图。
在可选的步骤S1中,可以(例如借助图1中所示的接口模块2)接收来自用户和/或系统的对应用程序的迁移或转换请求。作为示例,用户可以在车辆平台(例如车辆系统)中提供的用户界面(UI)中通过相应的操作来触发应用程序的安装或使用请求。这种应用请求可以被传输给图1中所示的应用程序转换模块3。
在步骤S2中,可以(例如通过应用程序转换模块3)将特定于源平台的应用程序转换为可运行于车辆平台(以及不同于源平台的其它平台或操作系统)的应用程序,使得该应用程序在车辆平台上能够以独立于底层操作系统的方式运行。应用程序的转换例如可以包括将待转换的应用程序的特定于源平台的用户界面转换为基于Web的用户界面;以及将待转换的应用程序中对特定于源平台的API的调用转换成对车辆平台的API调用。应用程序的转换可以基于例如步骤S1中所述的迁移或者转换请求而进行,也可以不基于迁移或者转换请求而预先进行。
根据本发明的实施例,还可选地在转换的步骤S2之前或之后包括步骤S3。在该步骤S3中,可以将所转换的、尚未转换的或部分转换的应用程序从服务器或云端下载/安装到车辆平台,因此,即使在未联网的情况下也可以在车辆平台中运行和使用所述应用程序。
图4示出了借助根据本发明的方法的一个示例性实施例将应用程序迁移到车辆平台的示意图。
在图4所示的示例性实施例中示出车辆平台100'。应用程序的跨平台转换可以分阶段地在车辆平台100'和源平台生态系统云300'中进行。在此应用程序的转换分为两阶段进行,在第一阶段中,在源平台生态系统云300'中进行应用程序用户界面的转换,将特定于源平台的应用程序的用户界面转换为基于Web的用户界面,例如将特定于源平台的原生应用程序400的UI/UX元素转换为基于web技术的UI/UX元素,由此形成了经过部分转换(用户界面转换)的应用程序401。接下来,将这种经过部分转换的应用程序401从源平台生态系统云300'下载到车辆云200'。随后,车辆平台100'例如可以借助相应的应用程序管理服务模块将该经过部分转换的应用程序401下载到车辆本地、即下载到车辆平台100'中,以便在那里进行第二阶段的转换。在车辆平台100'中,例如可以借助系统层120'中的应用程序转换模块121'对应用程序401进行第二阶段的转换,即API调用的转换,将特定于源平台的原生API调用转换为对车辆平台的API调用,从而使得转换后的应用程序可以访问车辆平台(本实施例中为车辆平台)的本地资源、功能和/或数据等。经过用户界面转换和API调用转换的应用程序例如可以基于Web和/或容器技术运行在车辆平台,并例如可以通过应用接口层130'访问车辆平台的本地资源、功能和/或数据等。
图5示出了借助根据本发明的另一示例性实施例的将应用程序迁移到车辆平台的方法的示意图。
在图5所示的示例性实施例中示出车辆平台100”。应用程序的跨平台转换可以分阶段地在车辆平台100”和车辆云200”中进行。在此应用程序的转换同样分为两阶段进行,然而不同于图4所示的实施例,在源平台生态系统云300”(或者说在源平台侧)不再执行应用程序的转换,而完全在车辆平台侧或车辆云进行转换,这样的好处在于,可以更好地保障车辆数据资源安全。
在该实施例中,首先从源平台侧(例如源平台生态系统云300”)将期望进行迁移的应用程序400'下载到车辆云200”中。然后,在车辆云200”中进行应用程序用户界面的转换,将特定于源平台的应用程序的用户界面转换为基于Web的用户界面,例如将特定于源平台的原生应用程序400'的UI/UX元素转换为基于web技术的UI/UX元素,由此形成经过部分转换(用户界面转换)的应用程序401'。接下来,可以将这种经过部分转换的应用程序401'从车辆云200”下载到车辆平台100”。在车辆平台,例如可以借助车辆平台100”的系统层120'中的转换模块121”对应用程序401'进行第二阶段的转换,即API调用的转换,将特定于源平台的API调用转换为车辆平台的API调用,从而使得转换后的应用程序可以访问车辆平台的本地资源、功能和/或数据等。经过用户界面转换和API调用转换的应用程序例如可以基于Web和/或容器技术运行在车辆平台,并例如可以通过应用接口层130”访问车辆平台的本地资源、功能和/或数据等。
根据本发明的不同实施例,应用程序转换中的用户界面的转换和API调用的转换可以均在车辆平台侧、车辆平台云侧和源平台侧(例如源平台生态系统云)的其中之一进行,也可以分阶段地分别在车辆平台侧、车辆平台云侧和者源平台侧(例如源平台生态系统云)的其中两处进行。
图6示出了在实施根据本发明的实施例的用于跨平台的应用程序迁移的方法的时序图。
参考图6,在最上方示出所涉及的各个节点或实体:用户600、车辆平台(本实例中为车辆)601、车辆平台云(本实施例中为车辆云)602以及源平台系统生态云603。根据本发明的不同实施例:根据本发明的用于跨平台的应用程序迁移的转换模块可以布置在车辆601、车辆云602和源平台系统生态云603中的一个或多个上。在步骤S101中,用户600例如通过适当的交互操作触发在车辆601提供的车载平台上下载和/或安装应用程序的请求。在步骤S102中,由车辆601向车辆云602发送应用程序的下载和/或安装请求。然后,在步骤S103中,车辆云602判断其服务器中是否存在用户请求下载的应用程序的安装包(例如根据本发明的跨平台的应用程序迁移/转换方法由特定于源平台的应用程序进行预先转换之后的可运行于目标车辆平台的应用程序安装包),如果存在,则直接将安装包返回给车辆601。如果不存在,则可以在步骤S103中由车辆云602将请求下载应用程序安装包的请求转发给源平台系统生态云603。
根据本发明的一种实施方式,在可选的步骤S104中,可以在源平台系统生态云603中(例如借助布置在那里的转换模块)将特定于源平台的应用程序转换为可运行与目标车辆平台的应用程序的安装包;在步骤S105中将这种经转换的应用程序的安装包下载到车辆云601,并且在步骤S106中进一步下载到车辆601本地。最后在步骤S107中在车辆601中完成对应用程序的安装及运行。
根据本发明的另一种实施方式,可以不在源平台系统生态云603中进行应用程序的跨平台转换,而在步骤S105将未经转换的特定于源平台的应用程序下载到车辆云602,然后在车辆云将其转换为可运行与目标车辆平台的应用程序。
或者,如前所述,应用程序转换中的用户界面的转换和API调用的转换可以分阶段地分别在车辆平台侧、车辆平台云侧或者源平台侧(例如源平台生态系统云)中的其中两处进行。
图7示出了在实施根据本发明的用于跨平台的应用程序迁移的方法期间的另一信号时序图。
在此,同样在最上方示出所涉及的各个节点或实体:用户700、车辆平台(本实例中为车辆701)、车辆平台云(本实施例中为车辆云)702以及源平台系统生态云703。根据本发明的不同实施例:根据本发明的用于跨平台的应用程序迁移的转换模块可以布置在车辆701、车辆云702和源平台系统生态云703中的一个或多个上。
在步骤S201中,用户700通过交互操作触发对应用程序在车辆701提供的车载平台上的首次使用请求。响应于此,然后依次在步骤S202至S207中执行检测更新、请求更新、更新数据包的跨平台转换、下载更新数据包、准备运行时数据和启动应用程序。到步骤S206为止,应用程序的转换与图6中的首次下载安装过程相同。但是在步骤S207中准备运行时数据时,可以附加地涉及在车辆701本地的转换,这例如包括更新应用程序的授权信息(以保证车辆数据和/或功能的安全)。
尽管这里详细描述了本发明的特定实施方式,但它们仅仅是为了解释的目的而给出的,而不应认为它们对本发明的范围构成限制。在不脱离本发明精神和范围的前提下,各种替换、变更和改造可被构想出来。
Claims (15)
1.一种用于跨平台的应用程序迁移的方法,所述方法包括:
将特定于源平台的应用程序转换为可运行于车辆平台的应用程序,其中,所述转换包括:
将待转换的应用程序的特定于源平台的用户界面转换为基于Web的用户界面;
将待转换的应用程序中对特定于源平台的API的调用转换成对车辆平台的API的调用。
2.根据权利要求1所述的方法,还包括将转换后的应用程序下载、部署和/或安装到车辆平台。
3.根据权利要求1或2所述的方法,其中,所述用户界面的转换包括在UI/UX元素方面对应用程序的转换,其中,将应用程序的概念描述模型转换为与车辆平台实现相关的模型。
4.根据权利要求1至3中任一项所述的方法,其中,所述用户界面的转换包括:
获取应用程序的UI/UX元素的开发者声明,所述开发者声明包括UI/UX元素的显示属性和逻辑属性,所述显示属性尤其包括关于UI/UX元素在车辆平台的样式、大小和/或布局的注释,所述逻辑属性尤其包括关于UI/UX元素在车辆平台的交互逻辑的注释;以及
确定渲染策略;
根据渲染策略,基于所述显示属性和所述逻辑属性生成基于Web的UI/UX元素。
5.根据权利要求1至4中任一项所述的方法,其中,所述API调用的转换包括将对源平台系统资源的访问转换为对车辆平台资源的访问,使得转换后的应用程序能够访问车辆平台的硬件设备、本地资源和/或本地数据。
6.根据权利要求1至5中任一项所述的方法,其中,所述应用程序转换中的用户界面的转换和API调用的转换均在车辆平台侧、车辆平台云侧和源平台侧的其中之一进行,或者分阶段地分别在车辆平台侧、车辆平台云侧和源平台侧的其中两处进行;优选地,API调用的转换在车辆平台云侧或者车辆平台侧、尤其在车辆平台本地进行。
7.根据权利要求1至6中任一项所述的方法,其中,所述方法还包括:
接收对应用程序的迁移或者转换请求,
响应于对应用程序的迁移或者转换请求,将特定于源平台的应用程序转换为可运行于车辆平台的应用程序。
8.根据权利要求7所述的方法,其中,对所述应用程序的迁移或者转换请求响应于用户发起的在车辆平台下载、安装应用程序的请求和/或首次在车辆平台使用应用程序的请求而发起,或者由系统发起。
9.根据权利要求1至6中任一项所述的方法,其中,对所述应用程序的转换不基于迁移或者转换请求而预先进行。
10.一种用于跨平台的应用程序迁移的设备,所述设备用于执行根据权利要求1至9中任一项所述的方法,所述设备包括:
转换模块,其配置成能够将特定于源平台的应用程序转换为可运行于车辆平台的应用程序,
其中,所述转换包括:
将待转换的应用程序的特定于源平台的用户界面转换为基于Web的用户界面;
将待转换的应用程序中对特定于源平台的API的调用转换成对车辆平台的API的调用。
11.一种应用程序平台、尤其车辆平台,所述应用程序平台包括:用户界面层、系统层和应用接口层;所述应用程序平台被配置为能够运行借助根据权利要求1至9中任一项所述的方法转换后的应用程序。
12.根据权利要求11所述的应用程序平台,其特征在于,所述应用程序平台包括根据权利要求10所述的设备。
13.一种车辆系统,所述车辆系统包括根据权利要求10所述的设备和/或根据权利要求11或12所述的应用程序平台。
14.一种用于跨平台的应用程序迁移的系统,所述系统包括车辆平台、车辆平台云和源平台生态系统云,所述系统被配置为能够执行根据权利要求1至9中任一项所述的方法。
15.一种机器可读程序载体,在其上存储有计算机程序,所述计算机程序用于当其在计算机上运行时能够实施根据权利要求1至9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210848764.0A CN115168007A (zh) | 2022-07-19 | 2022-07-19 | 用于跨平台的应用程序迁移的方法、设备和程序载体 |
PCT/CN2023/108057 WO2024017278A1 (en) | 2022-07-19 | 2023-07-19 | Method, device and program carrier for cross-platform porting of applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210848764.0A CN115168007A (zh) | 2022-07-19 | 2022-07-19 | 用于跨平台的应用程序迁移的方法、设备和程序载体 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168007A true CN115168007A (zh) | 2022-10-11 |
Family
ID=83494242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210848764.0A Pending CN115168007A (zh) | 2022-07-19 | 2022-07-19 | 用于跨平台的应用程序迁移的方法、设备和程序载体 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115168007A (zh) |
WO (1) | WO2024017278A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606573B2 (en) * | 2017-06-07 | 2020-03-31 | Syntel, Inc. | System and method for computer language migration using a re-architecture tool for decomposing a legacy system and recomposing a modernized system |
-
2022
- 2022-07-19 CN CN202210848764.0A patent/CN115168007A/zh active Pending
-
2023
- 2023-07-19 WO PCT/CN2023/108057 patent/WO2024017278A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024017278A1 (en) | 2024-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026396B (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
US8407584B1 (en) | Stable and secure use of content scripts in browser extensions | |
US11853820B2 (en) | Cross-process communication method, apparatus, and device | |
CN113312037B (zh) | 应用于微服务的数据处理方法、装置、设备和存储介质 | |
US8966508B2 (en) | Method for executing hybrid web application and apparatus therefor | |
EP1445696A2 (en) | Method and system for implementing native software application wrapper | |
US20140208326A1 (en) | File presenting method and apparatus for a smart terminal | |
CN111026491B (zh) | 界面显示方法、装置、电子设备、服务器及存储介质 | |
CN110990105B (zh) | 界面显示方法、装置、电子设备及存储介质 | |
CN109240697B (zh) | 调用处理方法及装置、存储介质 | |
EP2946574A1 (en) | Systems and methods for building and using hybrid mobile applications | |
WO2013139268A1 (zh) | 离线应用的生成及调用方法、终端及系统 | |
CN111596916A (zh) | 一种应用程序管理方法、装置、设备及计算机存储介质 | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN110865863B (zh) | 快应用的界面显示方法、装置及存储介质 | |
KR101482151B1 (ko) | 웹 어플리케이션 실행 장치 및 방법 | |
CN108153533B (zh) | 制作安装程序的方法和装置、程序的安装方法和装置 | |
CN108268261B (zh) | 一种智能终端的ui定制方法、存储介质及智能终端 | |
KR20110130611A (ko) | 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛 | |
CN116954824A (zh) | 一种支持多种扩展现实 (xr) 技术规范应用程序与2d应用程序多进程混合运行的运行时系统、数据交互方法、设备及介质 | |
WO2021097683A1 (zh) | 安卓系统启动的方法、装置、设备及存储介质 | |
KR101154717B1 (ko) | 데이터 언어로 다수 언어들을 관리하기 위한 방법 및 장치 | |
CN110908629A (zh) | 电子设备操作方法、装置、电子设备和存储介质 | |
CN115168007A (zh) | 用于跨平台的应用程序迁移的方法、设备和程序载体 | |
KR101482152B1 (ko) | 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 |
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 |