CN113961242A - 布局文件的转换方法、装置、电子设备及存储介质 - Google Patents
布局文件的转换方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113961242A CN113961242A CN202010698419.4A CN202010698419A CN113961242A CN 113961242 A CN113961242 A CN 113961242A CN 202010698419 A CN202010698419 A CN 202010698419A CN 113961242 A CN113961242 A CN 113961242A
- Authority
- CN
- China
- Prior art keywords
- layout
- file
- operating system
- information
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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
- 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
Abstract
本申请实施例提供了一种布局文件的转换方法、装置、电子设备、存储介质、程序产品及芯片,包括:获取第一操作系统的布局文件,对第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据,分别对控件信息、属性信息及逻辑信息进行转换,生成第二布局结构缓存数据,生成与第二布局结构缓存数据对应的第二操作系统的布局文件,可以避免相关技术中通过重新编写代码可能造成的人工成本较高和效率较低等问题,从而实现降低人工成本和提高生成相应布局文件的效率,且由于可以避免人工参与,则相对可以避免由于人工失误造成的准确性偏低的问题,从而实现提高生成相应布局文件准确性和可靠性的技术效果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种布局文件的转换方法、装置、电子设备、存储介质、程序产品及芯片。
背景技术
由于不同操作系统之间的差异,导致部分应用在不同的操作系统之间缺乏兼容性。
在现有技术中,将某一操作系统的应用转换为另一操作系统的应用(如小程序)时,通常采用的方法为:通过人工的方式重新编写代码。
然而,发明人在实现本申请的过程中,发现通过上述现有技术中的方法至少存在以下问题:重新编写代码的成本较高,效率偏低。
发明内容
为解决上述技术问题,本申请实施例提供了一种布局文件的转换方法、装置、电子设备、存储介质、程序产品及芯片。
根据本申请实施例的一个方面,本申请实施例提供了一种布局文件的转换方法,所述方法包括:
获取第一操作系统的布局文件;
对所述第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据;
分别对所述控件信息、所述属性信息及所述逻辑信息进行转换,生成第二布局结构缓存数据;
生成与所述第二布局结构缓存数据对应的第二操作系统的布局文件。
也就是说,在本申请实施例中,可以对第一操作系统的布局文件进行解析,生成第一布局结构缓存数据,并可以对第一布局结构缓存数据进行转换,生成第二布局结构缓存数据,从而生成与第二布局结构缓存数据对应的第二操作系统的布局文件。
在本申请实施例中,通过引入基于对某操作系统(即第一操作系统)的布局文件进行转换,从而得到其他操作系统(即第二操作系统)的布局文件的发明构思,可以避免相关技术中通过重新编写代码可能造成的人工成本较高和效率较低等问题,从而实现降低人工成本和提高生成相应布局文件(如第二操作系统的布局文件)的效率,且由于可以避免人工参与,则相对可以避免由于人工失误造成的准确性偏低的问题,从而实现提高生成相应布局文件(如第二操作系统的布局文件)的准确性和可靠性,且由于可以对不同的操作系统的布局文件进行转换,因此可以提高布局文件转换(如由第一操作系统的布局文件转换为第二操作系统的布局文件)的普遍实用性。
在一些实施例中,对所述控件信息进行转换包括:控件一对一转换和/或结合所述逻辑信息的控件转换。
也就是说,在本申请实施例中,在对控件信息进行转换时,可以采用控件一对一转换,如将第一操作系统的布局文件中的某一控件转换为第二操作系统的布局文件中的另一控件;也可以采用结合逻辑信息的控件转换,如基于逻辑信息进行两个不同的操作系统的布局文件中的控件的功能等的分析,从而将第一操作系统的布局文件中的某一控件转换为第二操作系统的布局文件中的一个或多个控件;也可以基于转换需求将两种控件转换方式相结合。
在一些实施例中,结合所述逻辑信息的控件转换包括:控件组合转换和/或控件节点变更转换。
也就是说,在本申请实施例中,结合逻辑信息的控件转换可以从三个维度进行理解,一个维度为控件组合转换,另一维度为控件节点变更转换,再一个维度为控件组合转换和控件节点变更转换相结合。
其中,控件组合转换可以理解为将第一操作系统的布局文件中的某一控件转换为第二操作系统的布局文件中的多个控件组合后的控件;控件节点变更转换可以理解为将第一操作系统的布局文件中的某一控件转换为第二操作系统的布局文件中的另一控件,且该另一控件中嵌套有多个控件。
在本申请实施例中,通过采用多种方式对控件信息进行转换,可以实现控件转换的灵活性和多样性,且提高了控件转换的成功率和可靠性的技术效果。
在一些实施例中,所述第一操作系统的布局文件包括语言相关文件和界面布局相关文件,所述对所述第一操作系统的布局文件进行解析包括:
对所述语言相关文件进行解析,生成所述逻辑信息;
对所述界面布局相关文件进行解析,生成所述控件信息和所述属性信息。
也就是说,在本申请实施例中,逻辑信息可以为解析语言相关文件生成的与逻辑相关的信息;控件信息可以理解为解析界面布局相关文件生成的与界面布局相关的控件的信息;属性信息可以理解为解析界面布局相关文件生成的与界面布局相关的控件的属性相关的信息。
在一些实施例中,所述对所述界面布局相关文件进行解析包括:依次对所述界面布局相关文件进行文件解析和缓存解析,且所述缓存解析包括直接缓存、语义缓存及引用缓存。
也就是说,在本申请实施例中,可以从两个维度对解析界面布局相关文件进行理解,一个维度可以为对界面布局相关文件进行的文件解析,另一个维度为基于上一维度的文件解析的解析结果进行的缓存解析。
且缓存解析可以从三个维度进行理解,一个维度为直接缓存,另一个维度为语义缓存,再一个维度为引用缓存。
在本申请实施例中,通过从两个维度对界面布局相关文件进行解析,且从三个维度实现缓存解析,可以实现缓存解析的灵活性和多样性,从而可以实现对界面布局相关文件进行解析的灵活性、多样性、可靠性及准确性的技术效果。
在一些实施例中,所述属性信息包括与直接缓存对应的基础属性信息、与引用缓存对应的特殊属性信息及与语义缓存对应的变量属性信息。
基于上述分析可知,由于可以从三个维度对缓存解析进行理解,因此,可以将属性信息分为不同的类型,如根据不同的缓存解析将属性信息划分为不同的类型,从而得到基础属性信息、特殊属性信息及变量属性信息。
在一些实施例中,对所述逻辑信息进行转换包括:
根据逻辑信息确定与界面视图相关的事件;
缓存并封装与所述事件对应的相关信息;
将与所述事件对应的相关信息转换为所述第二操作系统的布局文件中的逻辑代码。
在一些实施例中,所述生成与所述第二布局结构缓存数据对应的第二操作系统的布局文件包括:
确定所述第二操作系统的文件结构;
基于所述第二操作系统的文件结构对所述第二布局结构缓存数据进行文件处理,生成所述第二操作系统的布局文件。
根据本申请实施例的另一个方面,本申请实施例还提供了一种布局文件的转换装置,所述装置包括:
获取模块,用于获取第一操作系统的布局文件;
解析模块,用于对所述第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据;
转换模块,用于分别对所述控件信息、所述属性信息及所述逻辑信息进行转换,生成第二布局结构缓存数据;
生成模块,用于生成与所述第二布局结构缓存数据对应的第二操作系统的布局文件。
在一些实施例中,所述转换模块用于,控件一对一转换和/或结合所述逻辑信息的控件转换。
在一些实施例中,结合所述逻辑信息的控件转换包括:控件组合转换和/或控件节点变更转换。
在一些实施例中,所述第一操作系统的布局文件包括语言相关文件和界面布局相关文件,所述解析模块用于,对所述语言相关文件进行解析,生成所述逻辑信息,对所述界面布局相关文件进行解析,生成所述控件信息和所述属性信息。
在一些实施例中,所述解析模块用于,依次对所述界面布局相关文件进行文件解析和缓存解析,且所述缓存解析包括直接缓存、语义缓存及引用缓存。
在一些实施例中,所述属性信息包括与直接缓存对应的基础属性信息、与引用缓存对应的特殊属性信息及与语义缓存对应的变量属性信息。
在一些实施例中,所述转换模块用于,根据逻辑信息确定与界面视图相关的事件,缓存并封装与所述事件对应的相关信息,将与所述事件对应的相关信息转换为所述第二操作系统的布局文件中的逻辑代码。
在一些实施例中,所述生成模块用于,确定所述第二操作系统的文件结构,基于所述第二操作系统的文件结构对所述第二布局结构缓存数据进行文件处理,生成所述第二操作系统的布局文件。
根据本申请实施例的另一个方面,本申请实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机指令,当所述计算机指令在被处理器运行时,使得上述任一实施例所述的方法被执行。
根据本申请实施例的另一个方面,本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品在处理器上运行时,使得上述任一实施例所述的方法被执行。
根据本申请实施例的另一个方面,本申请实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一实施例所述的方法。
根据本申请实施例的另一个方面,本申请实施例还提供了一种芯片,包括:
输入接口,用于获取第一操作系统的布局文件;
逻辑电路,用于执行如权利要求1至8中任一项所述的方法,得到第二操作系统的布局文件;
输出接口,用于输出所述第二操作系统的布局文件。
附图说明
附图用于更好地理解本申请实施例,不构成对本申请的限定。其中,
图1为本申请实施例的布局文件的转换方法的应用场景的示意图;
图2为本申请一个实施例的布局文件的转换方法的流程示意图;
图3为本申请另一实施例的布局文件的转换方法的流程示意图;
图4为本申请实施例的多节点的树形结构的示意图;
图5为本申请实施例的控件转换的原理示意图;
图6为本申请实施例的布局文件的转换装置的示意图;
图7为本申请实施例的电子设备的框图;
图8为本申请实施例的芯片的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请实施例提供的布局文件的转换方法,可以适用于如图1所示的应用场景。
在如图1所示的应用场景中,包括:第一操作系统的布局文件、第二操作系统的布局文件及处理器。
其中,第一操作系统和第二操作系统为不同的操作系统。
例如,若第一操作系统为安卓(Android)操作系统,则第二操作系统可以为与安卓操作系统不同的操作系统,如IOS操作系统或者鸿蒙操作系统等;同理,若第一操作系统为IOS操作系统,则第二操作系统可以为与IOS操作系统不同的安卓操作系统或者鸿蒙操作系统;同理,若第一操作系统为鸿蒙操作系统,则第二操作系统可以为与鸿蒙操作系统不同的安卓操作系统或者IOS操作系统。
值得说明的是,上述关于第一操作系统和第二操作系统的描述只是用于示范性地说明第一操作系统和第二操作系统可能的操作系统,而不能理解为对第一操作系统和第二操作系统的限定。
且在本申请实施例中,为了避免繁琐地赘述,以第一操作系统为安卓操作系统、第二操作系统为鸿蒙操作系统为例,进行示范性地阐述。
其中,布局文件可以用于表征与应用的前端布局相关的文件,即布局文件可以是与应用对应的文件,且该文件为与该应用的前端布局对应的文件。
值得说明的是,针对某一应用,当将该应用设置于不同的操作系统时,对应的布局文件不同。
例如,针对共享单车的应用,将共享单车的应用设置于安卓操作系统时对应的布局文件不同于将共享单车的应用设置于鸿蒙操作系统时对应的布局文件。
因此,在如图1所示的应用场景中,第一操作系统的布局文件与第二操作系统的布局文件不同。
其中,处理器可以用于表征具有文件处理功能的服务器(可以包括本地服务器和云端服务器)、终端设备及芯片等,以便用于将安卓操作系统的布局文件转换为鸿蒙操作系统的布局文件。
在一些实施例中,终端设备可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据;终端设备还可以是个人通信业务(PersonalCommunication Service,PCS)电话、无绳电话、会话发起协议(SessionInitiation Protocol,SIP)话机、无线本地环路(Wireless Local Loop,WLL)站、个人数字助理(Personal Digital Assistant,PDA),平板型电脑、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(Machine TypeCommunication,MTC)终端等设备;终端设备也可以称为系统、订户单元(SubscriberUnit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、远程终端(Remote Terminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(User Agent)、用户设备(User Device or User Equipment),等等,在此不作限定。
在相关技术中,由于两个不同的操作系统之间的不兼容问题,因此当需要将安卓操作系统的应用转换为鸿蒙操作系统的应用(如小程序)时,需要通过人工的方式基于安卓操作系统的应用对应的布局文件进行重新编写代码。
然而,重新编写代码可能造成人工成本较高、效率较低及不具有普遍适用性的问题。
本申请的发明人在经过创造性地劳动之后,得到了本申请的发明构思:依次对第一操作系统的布局文件进行解析、转换及文件处理,生成第二操作系统的布局文件。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
一个方面,本申请实施例提供了一种适用于上述应用场景的布局文件的转换方法。
请参阅图2,图2为本申请一个实施例的布局文件的转换方法的流程示意图。
如图2所示,该方法包括:
S101:获取第一操作系统的布局文件。
其中,本申请实施例的布局文件的转换方法的执行主体可以为布局文件的转换装置(下文简称转换装置),且结合上述应用场景的描述可知,转换装置可以为图1所示的处理器,还可以为服务器、终端设备及芯片等,本申请实施例不做限定。
基于上述示例可知,第一操作系统的布局文件可以用于表征,当某应用设置于第一操作系统时的布局文件,第一操作系统的布局文件中的“第一”可以用于与后文中的第二操作系统的布局文件进行区分,而不能理解为对布局文件的内容的限定。
在本申请实施例中,对转换装置获取第一操作系统的布局文件的方法不做限定,例如,转换装置可以提供用于输入第一操作系统的布局文件的输入接口,并通过该输入接口接收由外接装置输入的第一操作系统的布局文件,外接装置存储有第一操作系统的布局文件。
S102:对第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据。
也就是说,在该步骤中,转换装置可以对第一操作系统的布局文件进行解析,生成第一布局结构缓存数据,且该第一布局结构缓存数据可以包括第一操作系统的布局文件的控件信息、属性信息及逻辑信息。
同理,第一布局结构缓存数据可以用于表征,与第一操作系统的布局文件对应的布局结构的缓存数据,第一布局结构缓存数据中的“第一”可以用于与后文中的第二布局结构缓存数据进行区分,而不能理解为对布局结构缓存数据的内容的限定。
也就是说,第一布局结构缓存数据可以为缓存于第一布局结构中的数据,在一些实施例中,第一布局结构为多节点的树形结构,第一操作系统的布局文件中的不同控件对应树形结构中的不同节点。
其中,控件信息可以用于表征对数据和方法的封装,且控件信息可以包括控件的名称,如容器ViewGroup控件和视图View控件等;属性信息可以用于表征与控件的属性相关的信息,如控件的字体、字号、颜色、是否自动调整控件大小、对齐方式及背景是否透明等;逻辑信息可以用于表征与第一操作系统的布局文件的代码的逻辑相关的信息,如Java逻辑信息等。
S103:分别对控件信息、属性信息及逻辑信息进行转换,生成第二布局结构缓存数据。
也就是说,在该步骤中,转换装置可以通过对控件信息进行转换、对属性信息进行转换以及对逻辑信息进行转换,得到第二布局结构缓存数据。
同理,第二布局结构缓存数据可以用于表征,与第二操作系统的布局文件对应的布局结构的缓存数据,第二布局结构缓存数据中的“第二”不能理解为对布局结构缓存数据的内容的限定。
且第二布局结构缓存数据可以为缓存于第二布局结构中的数据,在一些实施例中,第二布局结构为多节点的树形结构,第二操作系统的布局文件中的不同控件对应树形结构中的不同节点。
其中,关于转换装置对控件信息、属性信息及逻辑信息的转换的方法本申请实施例不做限定,例如,转换装置可以基于第二操作系统的需求对控件信息、属性信息及逻辑信息进行适应性转换,转换装置可以基于预先设置的转换规则对控件信息、属性信息及逻辑信息进行转换,等等。
S104:生成与第二布局结构缓存数据对应的第二操作系统的布局文件。
同理,第二操作系统的布局文件可以用于表征,当某应用设置于第二操作系统时的布局文件,第二操作系统的布局文件中的“第二”可以用于与前文中的第一操作系统的布局文件进行区分,而不能理解为对布局文件的内容的限定。
其中,该步骤可以理解为转换装置基于第二布局结构缓存数据生成与第二布局结构缓存数据对应的布局文件,且该布局文件可以为适用于第二操作系统的布局文件的过程,且该第二操作系统的布局文件即为可以设置于第二操作系统的小程序的布局文件。
基于上述分析可知,本申请实施例提供了一种布局文件的转换方法,该方法包括:获取第一操作系统的布局文件,对第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据,分别对控件信息、属性信息及逻辑信息进行转换,生成第二布局结构缓存数据,生成与第二布局结构缓存数据对应的第二操作系统的布局文件,通过引入基于对某操作系统(即第一操作系统)的布局文件进行转换,从而得到其他操作系统(即第二操作系统)的布局文件的发明构思,可以避免相关技术中通过重新编写代码可能造成的人工成本较高和效率较低等问题,从而实现降低人工成本和提高生成相应布局文件(如第二操作系统的布局文件)的效率,且由于可以避免人工参与,则相对可以避免由于人工失误造成的准确性偏低的问题,从而实现提高生成相应布局文件(如第二操作系统的布局文件)的准确性和可靠性,且由于可以对不同的操作系统的布局文件进行转换,因此可以提高布局文件转换(如由第一操作系统的布局文件转换为第二操作系统的布局文件)的普遍实用性。
为使读者更加深入地理解本申请实施例的布局文件的转换方法的原理和效果,现结合图3对本申请实施例的布局文件的转换方法进行更为详细地阐述。其中,图3为本申请另一实施例的布局文件的转换方法的流程示意图。
如图3所示,该方法包括:
S201:获取第一操作系统的布局文件,第一操作系统的布局文件包括语言相关文件和界面布局相关文件。
其中,关于S201的部分描述可以参见上述示例,此处不再赘述。
第一操作系统的布局文件包括两个维度的文件,一个维度的文件为语言相关文件(即语言维度的文件),另一个维度的文件为界面布局相关文件(即UI界面交互维度的文件)。
在本申请实施例中,以第一操作系统为Android操作系统,第二操作系统为ACE操作系统为例进行示范性地说明,则语言相关文件为Java文件,界面布局相关文件为XML布局文件和资源文件。
S202:对语言相关文件进行解析,生成逻辑信息。
基于上述示例,则在该步骤中,转换装置可以对Java文件进行解析,生成Java逻辑信息。
例如,转换装置可以从Java文件中解析出包括视图相关的变量(findViewById)、事件(setOnClickListener)及布局(setContentView)等Java逻辑信息。
S203:对界面布局相关文件进行解析,生成控件信息和属性信息。
基于上述示例,则在该步骤中,转换装置可以对XML布局文件和资源文件进行解析,生成控件信息和属性信息。
在一些实施例中,对界面布局相关文件进行解析包括:依次对界面布局相关文件进行文件解析和缓存解析,且缓存解析包括直接缓存、语义缓存及引用缓存。
即转换装置对XML布局文件和资源文件进行解析可以包括两个层次的解析,一个层次的解析为文件内容的解析,另一个层次的解析为缓存方法的解析。也就是说,转换装置可以先执行对XML布局文件和资源文件的文件内容的解析,而后基于对文件内容的解析结果进行缓存方法的解析,从而得到控件信息和属性信息。
其中,文件内容的解析可以包括:从XML布局文件和资源文件解析得到组成XML布局文件和资源文件的各个控件,如容器ViewGroup控件和视图View控件等,以及各个控件的属性信息,如控件的字体、字号、颜色、是否自动调整控件大小、对齐方式及背景是否透明等。
基于上述分析可知,在一些实施例中,缓存解析可以包括直接缓存,即可以在对文件内容的解析结果进行缓存时,将Android操作系统的文件内容的解析结果直接缓存为ACE操作系统的控件信息和属性信息,例如,Android操作系统的与间距属性(margin)相关的属性信息在ACE中有对应的属性信息,则转换装置可以直接对该属性信息进行缓存,如转换装置将Android操作系统的layout_marginLeft转换为ACE操作系统的margin-left,属性信息可以一一对应。
在另一些实施例中,缓存解析可以包括语义缓存,即可以在对文件内容的解析结果进行缓存时,结合Java逻辑信息的语义,并结合语义将Android操作系统的文件内容的解析结果缓存为ACE操作系统的控件信息和属性信息,例如,针对标识id相关的属性信息,在Java逻辑信息中会进行变量绑定操作,则可以结合Java逻辑信息的语义进行分析出变量名称,如伪代码name=findViewById(id),根据id获取变量name,然后进行缓存。
在另一些实施例中,缓存解析可以包括引用缓存,即可以在对文件内容的解析结果进行缓存时,结合静态资源等的引用等,例如,针对背景相关的属性信息,可以采用background=“@resource”(伪代码)进行静态资源的引用,然后进行缓存。
值得说明的是,在上述示例中,主要以对属性信息的缓存解析为例进行了示范性地说明,而针对控件信息的缓存解析与对属性信息的缓存解析的原理相同,此处不再一一赘述。
基于上述分析可知,属性信息可以采用直接缓存、语义缓存及引用缓存,则转换装置可以基于不同的缓存类型对属性信息进行分类,如可以将直接缓存的属性信息确定为基础属性信息,可以将引用缓存的属性信息确定为变量属性信息,可以将引用缓存的属性信息确定为特殊属性信息。
当然,上述对属性信息分类只是示范性地说明可以基于不同的缓存类型将属性信息划分成不同类型的属性信息,而不能理解为对划分属性信息的类型的限定。
S204:生成包括逻辑信息、控件信息和属性信息的第一布局结构缓存数据。
基于上述分析可知,转换装置可以生成第一布局结构缓存数据,且第一布局结构缓存数据中包括Java逻辑信息、控件属性信息及逻辑信息,且第一布局结构可以为多节点的树形结构,即Java逻辑信息、控件属性信息及逻辑信息可以为缓存在多节点的树形结构中的数据,且当控件信息包括容器ViewGroup控件和视图View控件时,则多节点的树形结构可以如图4所示。
S205:对控件信息进行转换。
在一些实施例中,对控件信息进行转换可以包括控件一对一转换,也可以包括结合逻辑信息的控件转换,且结合逻辑信息的控件转换可以包括控件组合转换和/或控件节点变更转换。
其中,控件一对一转换可以用于表征将第一操作系统的布局文件中的控件直接转换为第二操作系统的布局中的控件;控件组合转换可以用于表征将第一操作系统的布局文件中的控件转换为第二操作系统的布局文件中的多个控件组合的控件;控件节点变更转换可以用于表征将第一操作系统的布局文件中的控件转换为第二操作系统的布局文件中的控件,且该控件中包括其他控件;控件组合转换和控件节点变更转换包括控件组合转换与控件节点变更转换二者的结合,具体描述不再赘述。
结合上述示例和图5可知,当为控件一对一转换时,Android控件A可以转换为ACE控件A’,例如,Android操作系统的布局文件和ACE操作系统的布局文件中有类似的控件,可以基于一对一的映射转换即可实现视图结构的迁移,如Android操作系统的布局文件的控件TextView可以直接转换为ACE操作系统的布局文件中的控件text。
当为控件组合转换时,Android控件A可以转换为ACE控件B和控件C(即ACE控件B+ACE控件C),例如,Android操作系统和ACE操作系统的控件功能粒度不同,无法只通过转换为单一控件来进行视图迁移,则可以控件进行组合的方式实现视图的一致性,如Android操作系统的布局文件的控件CheckBox转换为ACE操作系统的布局文件的两个控件的组合input+text,且控件input可以为控件text的兄弟节点。
当为控件节点变更转换时,Android控件A可以转换为ACE控件B,且控件B中嵌套了控件C,例如,当采用控件组合转换无法是实现视图迁移时,可以在如图4所示的多节点的树形结构的基础上,增加父节点或者子节点的方法,改变原有的树形结构,以完成视图的迁移,如Android操作系统的布局文件的控件RecyclerView转换为ACE操作系统的布局文件的控件list+list-item+element的嵌套组合,控件list是控件list-item的父节点,而控件list-item是控件element的父节点。
当为控件组合转换和控件节点变更转换时,可以Android控件A可以转换为ACE控件B,且控件B中嵌套了控件C和控件D(即ACE控件C+ACE控件D),具体描述可以参见上述示例,此处不再赘述。
S206:对属性信息进行转换。
基于上述分析可知,属性信息可以包括基础属性信息、变量属性信息及特殊属性信息,则当属性信息为基础属性信息时,则转换装置可以直接进行一对一的映射转换,即转换装置可以将Android操作系统的布局文件的基础属性信息转换为ACE操作系统的布局文件的基础属性信息;当属性信息为变量属性信息时,则转换装置可以结合Java逻辑信息对应的代码获取变量名称,如mMessageTextView,然后转换为ACE操作系统的布局文件的变量属性;当属性信息为特殊属性信息时,则转换装置可以对Android操作系统的布局文件的特殊属性信息进行资源解析,然后对解析后的资源进行转换或者迁移。
S207:对逻辑信息进行转换。
基于上述分析可知,转换装置可以对Java逻辑信息进行转换,例如,转换装置可以结合Java文件的语义解析,如点击事件,可以解析出Java逻辑代码中是否注册对应控件的点击事件,缓存和封装对应的事件变量和方法信息,转换为ACE操作系统的布局文件中的Js文件下的JS逻辑代码。
值得说明的是,上述示例只是用于示范性地说明转换装置可能对控件信息进行转换、属性信息进行转换及对逻辑信息进行转换的实现方法,而不能理解为对执行转换顺序的限定,且不能理解为对转换方法的限定。
S208:确定第二操作系统的文件结构。
基于上述示例,转换装置可以确定ACE操作系统的文件结构,且分别为Hml文件结构、Js文件结构及Css文件结构。
在一些实施例中,Hml文件、Js文件及Css文件的生成可以使用Java文件读写函数完成,且Hml文件中可以包括布局结构信息,Js文件中可以包括页面的事件处理逻辑,Css文件中可以包括控件的样式信息。
S209:基于第二操作系统的文件结构对第二布局结构缓存数据进行文件处理,生成第二操作系统的布局文件。
也就是说,转换装置可以Hml文件结构、Js文件结构及Css文件结构对控件信息、属性信息及Java逻辑信息进行处理,且通过公共文件和资源文件进行处理,得到ACE操作系统的布局文件,且ACE操作系统的布局文件包括Hml文件、Js文件及Css文件。
根据本申请实施例的另一个方面,本申请实施例还提供了一种布局文件的转换装置,用于执行如上任一实施例所述的布局文件的转换方法,如用于执行如图2或者图3所示的布局文件的转换方法。
请参阅图6,图6为本申请实施例的布局文件的转换装置的示意图。
如图6所示,该装置包括:
获取模块11,用于获取第一操作系统的布局文件;
解析模块12,用于对所述第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据;
转换模块13,用于分别对所述控件信息、所述属性信息及所述逻辑信息进行转换,生成第二布局结构缓存数据;
生成模块14,用于生成与所述第二布局结构缓存数据对应的第二操作系统的布局文件。
在一些实施例中,所述转换模块13用于,控件一对一转换和/或结合所述逻辑信息的控件转换。
在一些实施例中,结合所述逻辑信息的控件转换包括:控件组合转换和/或控件节点变更转换。
在一些实施例中,所述第一操作系统的布局文件包括语言相关文件和界面布局相关文件,所述解析模块12用于,对所述语言相关文件进行解析,生成所述逻辑信息,对所述界面布局相关文件进行解析,生成所述控件信息和所述属性信息。
在一些实施例中,所述解析模块12用于,依次对所述界面布局相关文件进行文件解析和缓存解析,且所述缓存解析包括直接缓存、语义缓存及引用缓存。
在一些实施例中,所述属性信息包括与直接缓存对应的基础属性信息、与引用缓存对应的特殊属性信息及与语义缓存对应的变量属性信息。
在一些实施例中,所述转换模块13用于,根据逻辑信息确定与界面视图相关的事件,缓存并封装与所述事件对应的相关信息,将与所述事件对应的相关信息转换为所述第二操作系统的布局文件中的逻辑代码。
在一些实施例中,所述生成模块14用于,确定所述第二操作系统的文件结构,基于所述第二操作系统的文件结构对所述第二布局结构缓存数据进行文件处理,生成所述第二操作系统的布局文件。
根据本申请实施例的另一个方面,本申请实施例还提供了一种电子设备和一种可读存储介质。
请参阅图7,图7为本申请实施例的电子设备的框图。
其中,电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器101、存储器102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器101为例。
存储器102即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的布局文件的转换方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的布局文件的转换方法。
存储器102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块。处理器101通过运行存储在存储器102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的布局文件的转换方法。
存储器102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器102可选包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
电子设备还可以包括:输入装置103和输出装置104。处理器101、存储器102、输入装置103和输出装置104可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置103可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置104可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的另一个方面,本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品在处理器上运行时,使得上述任一实施例所述的方法被执行,如使得图2或者图3所示的方法被执行。
根据本申请实施例的另一个方面,本申请实施例还提供了一种芯片,用于执行上述任一实施例所述的方法,如执行如图2或者图3所示的方法。
请参阅图8,图8为本申请实施例的芯片的示意图。
如图8所示,该芯片包括:
输入接口21,用于获取第一操作系统的布局文件;
逻辑电路22,用于执行如上述任一实施例所述的方法,如执行如图2或者图3所示的方法,得到第二操作系统的布局文件;
输出接口23,用于输出所述第二操作系统的布局文件。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (20)
1.一种布局文件的转换方法,其特征在于,所述方法包括:
获取第一操作系统的布局文件;
对所述第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据;
分别对所述控件信息、所述属性信息及所述逻辑信息进行转换,生成第二布局结构缓存数据;
生成与所述第二布局结构缓存数据对应的第二操作系统的布局文件。
2.根据权利要求1所述的方法,其特征在于,对所述控件信息进行转换包括:控件一对一转换和/或结合所述逻辑信息的控件转换。
3.根据权利要求2所述的方法,其特征在于,结合所述逻辑信息的控件转换包括:控件组合转换和/或控件节点变更转换。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一操作系统的布局文件包括语言相关文件和界面布局相关文件,所述对所述第一操作系统的布局文件进行解析包括:
对所述语言相关文件进行解析,生成所述逻辑信息;
对所述界面布局相关文件进行解析,生成所述控件信息和所述属性信息。
5.根据权利要求4所述的方法,其特征在于,所述对所述界面布局相关文件进行解析包括:依次对所述界面布局相关文件进行文件解析和缓存解析,且所述缓存解析包括直接缓存、语义缓存及引用缓存。
6.根据权利要求5所述的方法,其特征在于,所述属性信息包括与直接缓存对应的基础属性信息、与引用缓存对应的特殊属性信息及与语义缓存对应的变量属性信息。
7.根据权利要求1至6中任一项所述的方法,其特征在于,对所述逻辑信息进行转换包括:
根据逻辑信息确定与界面视图相关的事件;
缓存并封装与所述事件对应的相关信息;
将与所述事件对应的相关信息转换为所述第二操作系统的布局文件中的逻辑代码。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述生成与所述第二布局结构缓存数据对应的第二操作系统的布局文件包括:
确定所述第二操作系统的文件结构;
基于所述第二操作系统的文件结构对所述第二布局结构缓存数据进行文件处理,生成所述第二操作系统的布局文件。
9.一种布局文件的转换装置,其特征在于,所述装置包括:
获取模块,用于获取第一操作系统的布局文件;
解析模块,用于对所述第一操作系统的布局文件进行解析,生成包括控件信息、属性信息及逻辑信息的第一布局结构缓存数据;
转换模块,用于分别对所述控件信息、所述属性信息及所述逻辑信息进行转换,生成第二布局结构缓存数据;
生成模块,用于生成与所述第二布局结构缓存数据对应的第二操作系统的布局文件。
10.根据权利要求9所述的装置,其特征在于,所述转换模块用于,控件一对一转换和/或结合所述逻辑信息的控件转换。
11.根据权利要求10所述的装置,其特征在于,结合所述逻辑信息的控件转换包括:控件组合转换和/或控件节点变更转换。
12.根据权利要求9至11中任一项所述的装置,其特征在于,所述第一操作系统的布局文件包括语言相关文件和界面布局相关文件,所述解析模块用于,对所述语言相关文件进行解析,生成所述逻辑信息,对所述界面布局相关文件进行解析,生成所述控件信息和所述属性信息。
13.根据权利要求12所述的装置,其特征在于,所述解析模块用于,依次对所述界面布局相关文件进行文件解析和缓存解析,且所述缓存解析包括直接缓存、语义缓存及引用缓存。
14.根据权利要求13所述的装置,其特征在于,所述属性信息包括与直接缓存对应的基础属性信息、与引用缓存对应的特殊属性信息及与语义缓存对应的变量属性信息。
15.根据权利要求9至14中任一项所述的装置,其特征在于,所述转换模块用于,根据逻辑信息确定与界面视图相关的事件,缓存并封装与所述事件对应的相关信息,将与所述事件对应的相关信息转换为所述第二操作系统的布局文件中的逻辑代码。
16.根据权利要求9至15中任一项所述的装置,其特征在于,所述生成模块用于,确定所述第二操作系统的文件结构,基于所述第二操作系统的文件结构对所述第二布局结构缓存数据进行文件处理,生成所述第二操作系统的布局文件。
17.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机指令,当所述计算机指令在被处理器运行时,使得权利要求1至8中任一项所述的方法被执行。
18.一种计算机程序产品,其特征在于,当所述计算机程序产品在处理器上运行时,使得权利要求1至8中任一项所述的方法被执行。
19.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使得权利要求1至8中任一项所述的方法被执行。
20.一种芯片,其特征在于,包括:
输入接口,用于获取第一操作系统的布局文件;
逻辑电路,用于执行如权利要求1至8中任一项所述的方法,得到第二操作系统的布局文件;
输出接口,用于输出所述第二操作系统的布局文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010698419.4A CN113961242B (zh) | 2020-07-20 | 2020-07-20 | 布局文件的转换方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010698419.4A CN113961242B (zh) | 2020-07-20 | 2020-07-20 | 布局文件的转换方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961242A true CN113961242A (zh) | 2022-01-21 |
CN113961242B CN113961242B (zh) | 2022-09-20 |
Family
ID=79459596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010698419.4A Active CN113961242B (zh) | 2020-07-20 | 2020-07-20 | 布局文件的转换方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961242B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016124013A1 (zh) * | 2015-02-03 | 2016-08-11 | 百度在线网络技术(北京)有限公司 | 一种用于动态实现应用功能的方法和装置 |
CN107729011A (zh) * | 2017-10-25 | 2018-02-23 | 南京大学 | 一种基于模型转换的从iOS到Android的跨平台页面转化方法 |
CN110069257A (zh) * | 2019-04-25 | 2019-07-30 | 腾讯科技(深圳)有限公司 | 一种界面处理方法、装置及终端 |
CN111209004A (zh) * | 2019-12-30 | 2020-05-29 | 北京健康之家科技有限公司 | 代码转换方法及装置 |
-
2020
- 2020-07-20 CN CN202010698419.4A patent/CN113961242B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016124013A1 (zh) * | 2015-02-03 | 2016-08-11 | 百度在线网络技术(北京)有限公司 | 一种用于动态实现应用功能的方法和装置 |
CN107729011A (zh) * | 2017-10-25 | 2018-02-23 | 南京大学 | 一种基于模型转换的从iOS到Android的跨平台页面转化方法 |
CN110069257A (zh) * | 2019-04-25 | 2019-07-30 | 腾讯科技(深圳)有限公司 | 一种界面处理方法、装置及终端 |
CN111209004A (zh) * | 2019-12-30 | 2020-05-29 | 北京健康之家科技有限公司 | 代码转换方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113961242B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144711B2 (en) | Webpage rendering method, device, electronic apparatus and storage medium | |
US11445008B2 (en) | Data processing methods, electronic devices, and storage media | |
CN111625738B (zh) | App目标页面的唤起方法、装置、设备和存储介质 | |
US11568015B2 (en) | Control method and system of applet, server and terminal device | |
CN112069201A (zh) | 目标数据的获取方法和装置 | |
CN111625224A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN111324833A (zh) | 页面展示方法、装置、电子设计及计算机可读介质 | |
CN111767089A (zh) | 加载文件的方法、装置、设备以及存储介质 | |
CN112287256A (zh) | 页面显示方法、终端设备、云服务器、系统及存储介质 | |
CN112506479A (zh) | 页面编辑的方法、装置、设备以及存储介质 | |
CN112506854A (zh) | 页面模板文件的存储和页面生成方法、装置、设备及介质 | |
CN111610972A (zh) | 页面生成方法、装置、设备及存储介质 | |
CN111309304A (zh) | 一种生成idl文件的方法、装置、介质和电子设备 | |
CN111125577A (zh) | 网页处理方法、装置、设备及存储介质 | |
CN113961242B (zh) | 布局文件的转换方法、装置、电子设备及存储介质 | |
WO2023169193A1 (zh) | 用于生成智能合约的方法和装置 | |
CN111752644A (zh) | 接口模拟方法、装置、设备及存储介质 | |
US9575751B2 (en) | Data extraction and generation tool | |
CN111767059A (zh) | 深度学习模型的部署方法、装置、电子设备和存储介质 | |
CN111125597A (zh) | 网页加载方法、浏览器、电子设备及存储介质 | |
CN111880778B (zh) | 接口文档的生成方法、装置、电子设备及存储介质 | |
CN111177558B (zh) | 频道业务构建方法及装置 | |
CN111596897B (zh) | 代码复用的处理方法、装置及电子设备 | |
US11698823B2 (en) | Application interface implementation method in a host platform layer, device, and medium | |
CN111723318B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |