CN109032606B - 原生应用程序的编译处理方法、装置及终端 - Google Patents

原生应用程序的编译处理方法、装置及终端 Download PDF

Info

Publication number
CN109032606B
CN109032606B CN201810753513.8A CN201810753513A CN109032606B CN 109032606 B CN109032606 B CN 109032606B CN 201810753513 A CN201810753513 A CN 201810753513A CN 109032606 B CN109032606 B CN 109032606B
Authority
CN
China
Prior art keywords
code
codes
native application
format
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.)
Active
Application number
CN201810753513.8A
Other languages
English (en)
Other versions
CN109032606A (zh
Inventor
余鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201810753513.8A priority Critical patent/CN109032606B/zh
Publication of CN109032606A publication Critical patent/CN109032606A/zh
Application granted granted Critical
Publication of CN109032606B publication Critical patent/CN109032606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

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

Abstract

本公开是关于一种原生应用程序的编译处理方法、装置及终端,所述方法包括:获取原生应用程序的源代码,所述源代码使用前端语言编写;根据预设的语法转换库,对所述源代码进行转换,得到中间代码,所述中间代码使用控制页面业务逻辑的语言编写;根据所述中间代码,生成所述原生应用程序的可执行代码。该方法通过将使用前端语言编写的源代码转换成使用控制页面业务逻辑的语言编写的中间代码,从而使得使用前端语言编写的源代码可以基于运行原生应用的操作***来直接运行,从而实现使用Web应用的开发方式开发原生应用,提升了前端代码的可移植性。同时,开发人员可以按照前端的开发习惯来开发原生应用,也极大提升了原生应用的开发效率。

Description

原生应用程序的编译处理方法、装置及终端
技术领域
本公开涉及计算机领域,特别涉及一种原生应用程序的编译处理方法、装置及终端。
背景技术
随着移动通信技术的快速发展,出现了越来越多的在移动终端上运行的应用程序(Application,APP)。其中,在移动终端上运行的应用程序主要可以分为基于浏览器的应用,即Web应用,以及原生应用。其中,Web应用需要浏览器的支持再进行页面展示以及用户交互,原生应用可以直接利用操作***提供商所提供的语言和工具等直接操控硬件设备。
相关技术中,Web应用可以使用HTML5技术进行开发,原生应用根据运行的操作***,使用操作***提供商所提供的语言和工具进行开发。
发明内容
本公开实施例提供了一种原生应用程序的编译处理方法、装置及终端,所述技术方案如下。
根据本公开实施例的第一方面,提供一种原生应用程序的编译处理方法,包括:
获取原生应用程序的源代码,所述源代码使用前端语言编写;
根据预设的语法转换库,对所述源代码进行转换,得到中间代码,所述中间代码使用控制页面业务逻辑的语言编写,所述中间代码用于终端根据所述中间代码,生成所述原生应用程序的可执行代码。
本公开实施例提供的技术方案可以包括以下有益效果:
通过将使用前端语言编写的源代码转换成使用控制页面业务逻辑的语言编写的中间代码,从而使得使用前端语言编写的源代码可以基于运行原生应用的操作***来直接运行,从而实现使用Web应用的开发方式开发原生应用,提升了前端代码的可移植性。同时,开发人员可以按照前端的开发习惯来开发原生应用,也极大提升了原生应用的开发效率。并且,使用该方法所得到的原生应用可以实现Web应用的各种体验,因此也可以极大提升用户的使用体验。
进一步的,所述原生应用程序为快应用;
所述前端语言包括超文本标记语言HTML5、Java脚本语言JS以及级联样式表CSS;
所述中间代码为JS格式的代码。
进一步的,所述根据预设的语法转换库,对所述源代码进行转换,得到中间代码,包括:
根据预设的语法转换库,将所述源代码中的HTML5代码以及CSS代码转换成JS代码;
将转换得到的JS代码以及所述源代码中的JS代码组合形成所述中间代码。
本公开实施例提供的技术方案可以包括以下有益效果:
通过将源代码中的HTML5代码以及CSS代码转换为JS代码,不仅能够实现将无法基于操作***直接运行的代码转换成可以基于操作***直接运行的代码,并且由于选择JS作为中间代码,因此,可以减少需要转换的代码量,提升代码转换的效率。
进一步的,所述根据预设的语法转换库,将所述源代码中的HTML5以及CSS转换成JS,包括:
根据所述预设的语法转换库中的图片转换规则,将所述源代码中HTML5格式的图片代码以及CSS格式的图片转换成JS格式的图片代码;和/或,
根据所述预设的语法转换库中的文字转换规则,将所述源代码中HTML5格式的文字代码以及CSS格式的文字转换成JS格式的文字代码;和/或,
根据所述预设的语法转换库中的列表转换规则,将所述源代码中HTML5格式的列表代码以及CSS格式的列表转换成JS格式的列表代码。
进一步的,所述根据所述中间代码,生成所述原生应用程序的可执行代码,包括:
使用预设的引擎加载所述中间代码,生成树形组件代码;
根据所述树形组件代码,生成所述原生应用程序的可执行代码。
进一步的,还包括:
接收用户的操作指示;
根据所述用户的操作指示,更新所述树形组件代码。
进一步的,还包括:
接收服务器发送的更新指示;
根据所述服务器发送的更新指示,更新所述树形组件代码。
进一步的,所述更新所述树形组件代码,包括:
确定所述树形组件代码中的待更新的元素;
对所述待更新的元素执行更新操作,所述更新操作包括增加操作、删除操作或修改操作。
根据本公开实施例的第二方面,提供一种原生应用程序的编译处理装置,包括:
获取模块,被配置为获取原生应用程序的源代码,所述源代码使用前端语言编写;
转换模块,被配置为根据预设的语法转换库,对所述源代码进行转换,得到中间代码,所述中间代码使用控制页面业务逻辑的语言编写,所述中间代码用于终端根据所述中间代码,生成所述原生应用程序的可执行代码。
进一步的,所述原生应用程序为快应用;
所述前端语言包括超文本标记语言HTML5、Java脚本语言JS以及级联样式表CSS;
所述中间代码为JS格式的代码。
进一步的,所述转换模块包括:
转换子模块,被配置为根据预设的语法转换库,将所述源代码中的HTML5代码以及CSS代码转换成JS代码;
组合子模块,被配置为将转换得到的JS代码以及所述源代码中的JS代码组合形成所述中间代码。
进一步的,所述转换子模块被配置为:
根据所述预设的语法转换库中的图片转换规则,将所述源代码中HTML5格式的图片代码以及CSS格式的图片转换成JS格式的图片代码;和/或,
根据所述预设的语法转换库中的文字转换规则,将所述源代码中HTML5格式的文字代码以及CSS格式的文字转换成JS格式的文字代码;和/或,
根据所述预设的语法转换库中的列表转换规则,将所述源代码中HTML5格式的列表代码以及CSS格式的列表转换成JS格式的列表代码。
进一步的,所述根据所述中间代码,生成所述原生应用程序的可执行代码包括:
使用预设的引擎加载所述中间代码,生成树形组件代码;
根据所述树形组件代码,生成所述原生应用程序的可执行代码。
进一步的,还包括:
第一接收模块,被配置为接收用户的操作指示;
第一更新模块,被配置为根据所述用户的操作指示,更新所述树形组件代码。
进一步的,还包括:
第二接收模块,被配置为接收服务器发送的更新指示;
第二更新模块,被配置为根据所述服务器发送的更新指示,更新所述树形组件代码。
进一步的,所述更新所述树形组件代码,包括:
确定所述树形组件代码中的待更新的元素;
对所述待更新的元素执行更新操作,所述更新操作包括增加操作、删除操作或修改操作。
根据本公开实施例的第三方面,提供一种终端,所述终端包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面所述的方法步骤。
根据本公开实施例的第四方面,提供一种终端,所述终端包括:
存储器、处理器以及计算机程序,所述处理器运行所述计算机程序执行上述第一方面所述的方法步骤。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,所述介质上存储有计算机程序,所述程序被处理器执行时实现上述第一方面所述的方法步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图;
图2是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图;
图3是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图;
图4是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图;
图5是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图;
图6是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图;
图7是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图;
图8是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图;
图9是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图;
图10是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图;
图11是根据一示例性实施例示出的一种终端的实体的框图;
图12是根据一示例性实施例示出的一种终端1100的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
需要说明的是,为便于描述,本公开以下实施例中将“原生应用程序”简称为“原生应用”。
相关技术中,Web应用可以使用HTML5技术进行开发,原生应用根据运行的操作***,使用操作***提供商所提供的语言和工具进行开发。即对于原生应用,由于使用操作***提供商所提供的语言和工具进行开发,因此,对于同一款原生应用,就需要开发出针对不同操作***的多套代码,这会导致原生代码的可移植性差、开发效率低。
本公开基于上述问题,提供一种原生应用程序的编译处理方法,通过诸如HTML5的前端语言来编写源代码,进而将前端语言转换成诸如JS的控制页面业务逻辑的代码,进而基于中间代码得到可执行代码,从而实现使用Web应用的开发方式开发原生应用,提升了前端代码的可移植性。同时,开发人员可以按照前端的开发习惯来开发原生应用,也极大提升了原生应用的开发效率。并且,使用该方法所得到的原生应用可以实现Web应用的各种体验,因此也可以极大提升用户的使用体验。
图1是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图,该方法的执行主体可以是进行原生应用编译的设备,例如台式电脑等,具体可以为运行在该设备上的编译器。如图1所示,该方法包括:
在步骤S101中,获取原生应用程序的源代码,该源代码使用前端语言编写。
当开发人员使用前端语言编写完原生应用的源代码之后,可以由编译器来获取这些源代码。示例性的,开方人员将源代码保存在预设的目录下,并在编译器中输入该目录,进而,编译器即可获取到这些源代码。
其中,上述前端语言是指开发人员所习惯使用的用于编写原生应用的前端页面对应代码的语言。
在步骤S102中,根据预设的语法转换库,对上述源代码进行转换,得到中间代码,该中间代码使用控制页面业务逻辑的语言编写。
上述预设的语法转换库为预先存储在编译器中的转换规则的集合,利用该集合中的转换规则,编译器可以将前端语言编写的源代码转换成中间代码。
其中,上述中间代码使用控制页面业务逻辑的语言编写。
其中,上述中间代码用于终端根据上述中间代码,生成上述原生应用程序的可执行代码。
前端代码主要用于实现前端页面的功能,因此,前端代码中包括了实现页面框架以及页面样式等功能的代码,这些代码并非业务逻辑代码,因此,这些代码并不能直接基于原生应用所在的操作***来运行。因此,本步骤中,通过预设的语法转换库将源代码转换成使用控制页面逻辑的语言编写的中间代码,由于中间代码使用控制页面业务逻辑的语言编写,因此,在该中间代码进一步编译成可执行代码后,就可以直接基于原生应用所在的操作***来运行。
进而,可选的,当生成上述中间代码之后,可以将该中间代码打包为安装文件供用户下载安装。当该安装文件被下载到用户所使用的终端上,用户点击该安装文件之后,终端根据上述中间代码可以生成上述原生应用程序的可执行代码,该可执行代码例如可以是可执行文件,在用户操作等的触发下,该可执行文件被启动并运行其中的可执行代码。
本实施例中,通过将使用前端语言编写的源代码转换成使用控制页面业务逻辑的语言编写的中间代码,从而使得使用前端语言编写的源代码可以基于运行原生应用的操作***来直接运行,从而实现使用Web应用的开发方式开发原生应用,提升了前端代码的可移植性。同时,开发人员可以按照前端的开发习惯来开发原生应用,也极大提升了原生应用的开发效率。并且,使用该方法所得到的原生应用可以实现Web应用的各种体验,因此也可以极大提升用户的使用体验。
作为一种可选的实施方式,上述原生应用程序可以为快应用。快应用是区别于传统应用的一种应用生态,用户在使用快应用时,无需下载安装,即点即用,可以使得用户快速方便地获取到所需要的服务。
另外,上述前端语言可以包括超文本标记语言(HyperText Markup Language,简称HTML)5、Java脚本语言(Javascript,简称JS)以及级联样式表(Cascading StyleSheets,简称CSS)。
其中,HTML5是HTML语言的第五次修订版本,HTML5主要负责页面的框架。CSS负责页面的样式。JS负责页面的业务逻辑。在相关技术中,Web应用的开发主要使用这三者,但是HTML5和CSS的代码需要在浏览器中运行才能正常的显示。而在本公开中,虽然源代码也使用上述三种语言,但是由于进行了代码转换,因此可以使得代码不依赖浏览器而直接基于操作***来执行,即实现使用Web应用的开发方法来开发原生应用。
另外,上述中间代码为JS格式的代码。
由于JS为控制页面业务逻辑的语言,因此,本公开中可以统一将前端语言转换成JS格式的代码。
需要说明的是,本公开以下实施例都以上述的可选实施方式为例说明编译过程。而除上述的可选实施方式外,本公开的方法也可以应用于其他的原生应用。上述前端语言也不仅限于HTML5、CSS和JS,上述中间代码也可以是用其他控制业务逻辑的语言所编写的代码。
在上述实施例的基础上,本实施例涉及对源代码进行转换得到中间代码的可选方法。
图2是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图,如图2所示,上述步骤S102包括:
在步骤S201中,根据预设的语法转换库,将上述源代码中的HTML5代码以及CSS代码转换成JS代码。
在步骤S202中,将转换得到的JS代码以及上述源代码中的JS代码组合形成上述中间代码。
如前所述,HTML5主要负责页面的框架,CSS负责页面的样式,JS负责页面的业务逻辑。在开发人员所编写的源代码中,可能会包含这三种类型的代码,将这三种类型的代码中的HTML5和CSS统一根据预设的语法转换库转换成JS代码,再将转换得到的JS代码与源代码中的JS进行组合,形成完整的中间代码。
本实施例中,通过将源代码中的HTML5代码以及CSS代码转换为JS代码,不仅能够实现将无法基于操作***直接运行的代码转换成可以基于操作***直接运行的代码,并且由于选择JS作为中间代码,因此,可以减少需要转换的代码量,提升代码转换的效率。
在上述实施例的基础上,本实施例涉及将源代码中的HTML5和CSS转换成JS的可选方法。
图3是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图,如图3所示,上述步骤S201包括:
在步骤S301中,根据上述预设的语法转换库中的图片转换规则,将上述源代码中HTML5格式的图片代码以及CSS格式的图片转换成JS格式的图片代码。
在步骤S302中,根据上述预设的语法转换库中的文字转换规则,将上述源代码中HTML5格式的文字以及CSS格式的文字代码转换成JS格式的文字代码。
在步骤S303中,根据上述预设的语法转换库中的列表转换规则,将上述源代码中HTML5格式的列表以及CSS格式的列表代码转换成JS格式的列表代码。
需要说明的是,在实际实施过程中,可以根据具体需要,选择上述步骤S301-S303的所有步骤,也可以选择其中一部分步骤。示例性的,当源代码中仅包括图片以及文字时,则仅执行上述步骤S301以及S302即可,当源代码中包括图片、文字以及列表时,选择上述步骤S301-S303。
另外,在实际实施过程中,可以按照上述步骤S301-S303来顺序执行,或者,也可以由源代码中的代码顺序来决定上述各步骤的顺序,例如源代码中列表在图片之前,则会先执行上述步骤S303,再执行上述步骤S301。本公开对上述步骤S301-S303的执行顺序不作限定。
可选的,原生应用的页面中包括各种元素,例如上述的图片、文字以及列表。开发人员在编写源代码时,根据实际需要可能使用HTML5或者CSS来表示上述的图片、文字以及列表。进而,在编译时,编译器会根据上述预设的语法转换库来进行代码转换。
可选的,上述语法转换库中针对每种元素分别给出了转换规则,当编译器识别出HTML5或者CSS格式的元素时,可以在语法转换库中查找该元素对应的转换规则,并按照转换规则将HTML5或CSS格式的代码转换为JS格式的代码。
以下以图片元素和文字元素为例说明转换规则以及转换过程。
一种示例中,对于图片元素,使用HTML5语言编写的代码为:
<image src="http://XXX.jpg"class="image"></image>
针对该元素,可以设置图片转换规则为:
Figure BDA0001726179230000081
则上述示例代码转换之后所得到的JS代码为:
Figure BDA0001726179230000082
Figure BDA0001726179230000091
另一种示例中,对于文字元素,使用HTML5语言编写的代码为:
<text class="item-title">test</text>
针对该元素,可以设置文字转换规则为:
Figure BDA0001726179230000092
则上述示例代码转换之后所得到的JS代码为:
Figure BDA0001726179230000093
在上述实施例的基础上,本实施涉及根据中间代码生成可执行代码的可选方法。
图4是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图,如图4所示,上述步骤S102中由终端根据中间代码生成原生应用的可执行代码时,具体可以包括:
在步骤S401中,使用预设的引擎加载上述中间代码,生成树形组件代码。
在步骤S402中,根据上述树形组件代码,生成上述原生应用程序的可执行代码。
其中,上述预设的引擎可以为JS引擎,该JS引擎在加载上述中间代码,例如JS代码之后,会生成树形组件代码,该树形组件代码例如可以是JS Tree组件格式的代码。进而,终端可以将引擎输出的该树形组件代码以可执行文件的形式保存,从而得到上述源代码对应的可执行代码。
进而,在用户操作等的触发下,该可执行代码会***作***执行,从而实现向用户显示界面元素以及与用户交互的功能。
在上述实施例的基础上,本实施例涉及对树形组件代码进行更新的过程。
需要说明的是,经过上述实施例,源代码已经完成编译。下述实施例为源代码编译完成后更新树形组件代码的过程,该过程可以由运行在终端上的原生应用来执行。
其中,更新树形组件代码可能由用户的操作来触发,或者,也可能由服务器来触发,以下分别进行说明。
图5是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图,如图5所示,该方法还包括:
在步骤S501中,接收用户的操作指示。
在步骤S502中,根据上述用户的操作指示,更新上述树形组件代码。
示例性的,假设用户原生应用的某个页面上输入一行文字,则此时该页面发生变化,原生应用会相应的修改该页面对应的树形组件代码,进而,原生应用会通知操作***来更新当前的页面。
图6是根据一示例性实施例示出的一种原生应用程序的编译处理方法的流程图,如图6所示,该方法还包括:
在步骤S601中,接收服务器发送的更新指示。
在步骤S602中,根据上述服务器发送的更新指示,更新上述树形组件代码。
可选的,在原生应用运行过程中,服务器可能会向原生应用发送更新指示,以指示更新某个页面的显示格式、显示内容等。当原色应用接收到服务器发送的更新指示后,会相应更新树形组件代码,进而通知操作***更新当前的页面。
在一种可选的实施方式中,在上述步骤S502和S602中更新树形组件代码时,原生应用可以首先确定树形组件代码中的待更新的元素,进而,对该待更新的元素执行更新操作。其中,该更新操作可以是增加操作、删除操作或者修改操作。
示例性的,以图6所示的场景为例,假设原生应用接收到服务器发送的更新指示,指示原生应用在页面A中的图片B上方增加图片C,则原生应用首先在树形组件代码中查找图片B,进而,图片B对应的代码前增加图片C对应的代码,从而实现树形组件代码的更新。进而,原生应用通知操作***更新页面A,操作***会根据新的树形组件代码更新页面A。
图7是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图,如图7所示,该装置包括:
获取模块701,被配置为获取原生应用程序的源代码,所述源代码使用前端语言编写。
转换模块702,被配置为根据预设的语法转换库,对所述源代码进行转换,得到中间代码,所述中间代码使用控制页面业务逻辑的语言编写,所述中间代码用于终端根据所述中间代码,生成所述原生应用程序的可执行代码。
另一实施例中,所述原生应用程序为快应用。
所述前端语言包括HTML5、Java JS以及CSS。
所述中间代码为JS格式的代码。
图8是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图,如图8所示,转换模块702包括:
转换子模块7021,被配置为根据预设的语法转换库,将所述源代码中的HTML5代码以及CSS代码转换成JS代码;
组合子模块7022,被配置为将转换得到的JS代码以及所述源代码中的JS代码组合形成所述中间代码。
另一实施例中,转换子模块被配置为:
根据所述预设的语法转换库中的图片转换规则,将所述源代码中HTML5格式的图片代码以及CSS格式的图片转换成JS格式的图片代码;和/或,
根据所述预设的语法转换库中的文字转换规则,将所述源代码中HTML5格式的文字代码以及CSS格式的文字转换成JS格式的文字代码;和/或,
根据所述预设的语法转换库中的列表转换规则,将所述源代码中HTML5格式的列表代码以及CSS格式的列表转换成JS格式的列表代码。
另一实施例中,上述根据所述中间代码,生成所述原生应用程序的可执行代码包括:
使用预设的引擎加载所述中间代码,生成树形组件代码。
根据所述树形组件代码,生成所述原生应用程序的可执行代码。
图9是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图,如图9所示,该装置还包括:
第一接收模块703,被配置为接收用户的操作指示。
第一更新模块704,被配置为根据所述用户的操作指示,更新所述树形组件代码。
图10是根据一示例性实施例示出的一种原生应用程序的编译处理装置的模块结构图,如图10所示,该装置还包括:
第二接收模块705,被配置为接收服务器发送的更新指示。
第二更新模块706,被配置为根据所述服务器发送的更新指示,更新所述树形组件代码。
另一实施例中,所述更新所述树形组件代码,包括:
确定所述树形组件代码中的待更新的元素;
对所述待更新的元素执行更新操作,所述更新操作包括增加操作、删除操作或修改操作。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种终端的实体的框图,如图11所示,该终端包括:
存储器91和处理器92。
存储器91用于存储处理器92的可执行指令。
处理器92被配置为执行上述方法实施例中所述的方法步骤。
在上述终端的实施例中,应理解,处理器92可以是中央处理子模块(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。SIM卡也称为用户身份识别卡、智能卡,数字移动电话机必须装上此卡方能使用。即在电脑芯片上存储了数字移动电话客户的信息,加密的密钥以及用户的电话簿等内容。结合本公开实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
图12是根据一示例性实施例示出的一种终端1200的框图。其中,终端1200可以是移动电话,计算机,平板设备,个人数字助理等。
参照图12,终端1200可以包括以下一个或多个组件:处理组件1202,存储器1204,电源组件1206,多媒体组件1208,音频组件1210,输入/输出(I/O)的接口1212,传感器组件1214,以及通信组件1216。
处理组件1202通常控制终端1200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1202可以包括一个或多个处理器1220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1202可以包括一个或多个模块,便于处理组件1202和其他组件之间的交互。例如,处理组件1202可以包括多媒体模块,以方便多媒体组件1208和处理组件1202之间的交互。
存储器1204被配置为存储各种类型的数据以支持在终端1200的操作。这些数据的示例包括用于在终端1200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1206为终端1200的各种组件提供电力。电源组件1206可以包括电源管理***,一个或多个电源,及其他与为终端1200生成、管理和分配电力相关联的组件。
多媒体组件1208包括在所述终端1200和用户之间的提供一个输出接口的触控显示屏。在一些实施例中,触控显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1208包括一个前置摄像头和/或后置摄像头。当终端1200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括一个麦克风(MIC),当终端1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1204或经由通信组件1216发送。在一些实施例中,音频组件1210还包括一个扬声器,用于输出音频信号。
I/O接口1212为处理组件1202和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1214包括一个或多个传感器,用于为终端1200提供各个方面的状态评估。例如,传感器组件1214可以检测到终端1200的打开/关闭状态,组件的相对定位,例如所述组件为终端1200的显示器和小键盘,传感器组件1214还可以检测终端1200或终端1200一个组件的位置改变,用户与终端1200接触的存在或不存在,终端1200方位或加速/减速和终端1200的温度变化。传感器组件1214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1216被配置为便于终端1200和其他设备之间有线或无线方式的通信。终端1200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1216经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述原生应用程序的编译处理方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1204,上述指令可由终端1200的处理器1220执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端1200的处理器执行时,使得终端1200能够执行一种原生应用程序的编译处理方法。所述方法包括:
获取原生应用程序的源代码,所述源代码使用前端语言编写;
根据预设的语法转换库,对所述源代码进行转换,得到中间代码,所述中间代码使用控制页面业务逻辑的语言编写,所述中间代码用于终端根据所述中间代码,生成所述原生应用程序的可执行代码。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

Claims (15)

1.一种原生应用程序的编译处理方法,其特征在于,包括:
获取原生应用程序的源代码,所述源代码使用前端语言编写,所述前端语言包括超文本标记语言HTML5、Java脚本语言JS以及级联样式表CSS;
根据预设的语法转换库,将所述源代码中的HTML5代码以及CSS代码转换成JS代码;
将转换得到的JS代码以及所述源代码中的JS代码组合形成中间代码,所述中间代码用于终端根据所述中间代码,生成所述原生应用程序的可执行代码;
所述根据所述中间代码,生成所述原生应用程序的可执行代码,包括:
使用预设的引擎加载所述中间代码,生成树形组件代码;
根据所述树形组件代码,生成所述原生应用程序的可执行代码。
2.根据权利要求1所述的方法,其特征在于,所述原生应用程序为快应用。
3.根据权利要求1所述的方法,其特征在于,所述根据预设的语法转换库,将所述源代码中的HTML5以及CSS转换成JS,包括:
根据所述预设的语法转换库中的图片转换规则,将所述源代码中HTML5格式的图片代码以及CSS格式的图片转换成JS格式的图片代码;和/或,
根据所述预设的语法转换库中的文字转换规则,将所述源代码中HTML5格式的文字代码以及CSS格式的文字转换成JS格式的文字代码;和/或,
根据所述预设的语法转换库中的列表转换规则,将所述源代码中HTML5格式的列表代码以及CSS格式的列表转换成JS格式的列表代码。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收用户的操作指示;
根据所述用户的操作指示,更新所述树形组件代码。
5.根据权利要求1所述的方法,其特征在于,还包括:
接收服务器发送的更新指示;
根据所述服务器发送的更新指示,更新所述树形组件代码。
6.根据权利要求4或5所述的方法,其特征在于,所述更新所述树形组件代码,包括:
确定所述树形组件代码中的待更新的元素;
对所述待更新的元素执行更新操作,所述更新操作包括增加操作、删除操作或修改操作。
7.一种原生应用程序的编译处理装置,其特征在于,包括:
获取模块,被配置为获取原生应用程序的源代码,所述源代码使用前端语言编写,所述前端语言包括超文本标记语言HTML5、Java脚本语言JS以及级联样式表CSS;
转换模块,被配置为根据预设的语法转换库,对所述源代码进行转换,得到中间代码,所述中间代码为JS格式的代码,所述中间代码用于终端根据所述中间代码,生成所述原生应用程序的可执行代码;
所述转换模块包括:
转换子模块,被配置为根据预设的语法转换库,将所述源代码中的HTML5代码以及CSS代码转换成JS代码;
组合子模块,被配置为将转换得到的JS代码以及所述源代码中的JS代码组合形成所述中间代码;
所述根据所述中间代码,生成所述原生应用程序的可执行代码包括:
使用预设的引擎加载所述中间代码,生成树形组件代码;
根据所述树形组件代码,生成所述原生应用程序的可执行代码。
8.根据权利要求7所述的装置,其特征在于,所述原生应用程序为快应用。
9.根据权利要求7所述的装置,其特征在于,所述转换子模块被配置为:
根据所述预设的语法转换库中的图片转换规则,将所述源代码中HTML5格式的图片代码以及CSS格式的图片转换成JS格式的图片代码;和/或,
根据所述预设的语法转换库中的文字转换规则,将所述源代码中HTML5格式的文字代码以及CSS格式的文字转换成JS格式的文字代码;和/或,
根据所述预设的语法转换库中的列表转换规则,将所述源代码中HTML5格式的列表代码以及CSS格式的列表转换成JS格式的列表代码。
10.根据权利要求7所述的装置,其特征在于,还包括:
第一接收模块,被配置为接收用户的操作指示;
第一更新模块,被配置为根据所述用户的操作指示,更新所述树形组件代码。
11.根据权利要求7所述的装置,其特征在于,还包括:
第二接收模块,被配置为接收服务器发送的更新指示;
第二更新模块,被配置为根据所述服务器发送的更新指示,更新所述树形组件代码。
12.根据权利要求10或11所述的装置,其特征在于,所述更新所述树形组件代码,包括:
确定所述树形组件代码中的待更新的元素;
对所述待更新的元素执行更新操作,所述更新操作包括增加操作、删除操作或修改操作。
13.一种终端,其特征在于,所述终端包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-6任一项所述的方法步骤。
14.一种终端,其特征在于,所述终端包括:
存储器、处理器以及计算机程序,所述处理器运行所述计算机程序执行权利要求1-6任一项所述的方法步骤。
15.一种计算机可读存储介质,所述介质上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-6任一项所述的方法步骤。
CN201810753513.8A 2018-07-10 2018-07-10 原生应用程序的编译处理方法、装置及终端 Active CN109032606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810753513.8A CN109032606B (zh) 2018-07-10 2018-07-10 原生应用程序的编译处理方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810753513.8A CN109032606B (zh) 2018-07-10 2018-07-10 原生应用程序的编译处理方法、装置及终端

Publications (2)

Publication Number Publication Date
CN109032606A CN109032606A (zh) 2018-12-18
CN109032606B true CN109032606B (zh) 2022-03-01

Family

ID=64641718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810753513.8A Active CN109032606B (zh) 2018-07-10 2018-07-10 原生应用程序的编译处理方法、装置及终端

Country Status (1)

Country Link
CN (1) CN109032606B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488152B (zh) * 2019-01-29 2023-05-16 阿里巴巴集团控股有限公司 一种应用程序页面预览的方法和相关装置、***
WO2020210994A1 (zh) * 2019-04-16 2020-10-22 深圳市欢太科技有限公司 快应用安装包调试方法、装置、电子设备以及存储介质
CN110389754B (zh) * 2019-06-18 2023-12-15 北京奇艺世纪科技有限公司 业务处理方法、***、服务器、终端、电子设备及存储介质
CN110489124B (zh) * 2019-07-12 2023-06-13 浙江口碑网络技术有限公司 源代码执行方法、装置、存储介质及计算机设备
CN110737431B (zh) * 2019-09-18 2023-07-14 深圳市金证科技股份有限公司 软件开发方法、开发平台、终端设备及存储介质
CN112416351A (zh) * 2020-11-24 2021-02-26 广州虎牙科技有限公司 代码添加方法、装置、电子设备及计算机可读存储介质
CN112579959A (zh) * 2020-12-24 2021-03-30 京东数字科技控股股份有限公司 应用程序的处理方法、装置、设备、存储介质和产品
CN112965701B (zh) * 2021-02-08 2024-02-09 中国工商银行股份有限公司 前端代码生成方法及装置
CN113656042B (zh) * 2021-08-24 2023-07-21 北京奇艺世纪科技有限公司 一种代码生成方法、装置、电子设备及存储介质
CN116028057A (zh) * 2021-10-27 2023-04-28 北京字节跳动网络技术有限公司 代码管理的方法和装置
CN115373683A (zh) * 2022-08-22 2022-11-22 北京字跳网络技术有限公司 页面的展示方法、编译源代码的方法及相关设备
CN115437620B (zh) * 2022-11-09 2023-03-28 广东省科技基础条件平台中心 一种自然语言编程方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009225081A (ja) * 2008-03-17 2009-10-01 Nec Infrontia Corp 電話交換装置の端末データ設定システム
CN104239071A (zh) * 2014-10-13 2014-12-24 浪潮通信信息***有限公司 一种基于通用组件和中转服务的跨平台移动应用开发框架***
CN105808305A (zh) * 2016-03-29 2016-07-27 北京小米移动软件有限公司 静态资源的加载方法和装置
CN105989068A (zh) * 2015-02-10 2016-10-05 ***通信集团贵州有限公司 基于超文本标记语言的移动应用生成方法及装置
CN106293645A (zh) * 2015-05-13 2017-01-04 Tcl集团股份有限公司 一种提高Web应用界面渲染效率的方法及***
CN107632833A (zh) * 2017-07-31 2018-01-26 广州神马移动信息科技有限公司 轻应用的生成方法、设备及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4220444A1 (en) * 2014-09-09 2023-08-02 Liveperson Inc. Dynamic code management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009225081A (ja) * 2008-03-17 2009-10-01 Nec Infrontia Corp 電話交換装置の端末データ設定システム
CN104239071A (zh) * 2014-10-13 2014-12-24 浪潮通信信息***有限公司 一种基于通用组件和中转服务的跨平台移动应用开发框架***
CN105989068A (zh) * 2015-02-10 2016-10-05 ***通信集团贵州有限公司 基于超文本标记语言的移动应用生成方法及装置
CN106293645A (zh) * 2015-05-13 2017-01-04 Tcl集团股份有限公司 一种提高Web应用界面渲染效率的方法及***
CN105808305A (zh) * 2016-03-29 2016-07-27 北京小米移动软件有限公司 静态资源的加载方法和装置
CN107632833A (zh) * 2017-07-31 2018-01-26 广州神马移动信息科技有限公司 轻应用的生成方法、设备及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Quikapp快应用开发入门;lzm风雨无阻;《https://www.cnblogs.com/lzmfywz/p/8650546.html》;20180326;第1-6页 *

Also Published As

Publication number Publication date
CN109032606A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
CN109032606B (zh) 原生应用程序的编译处理方法、装置及终端
CN106569800B (zh) 前端界面生成方法及装置
EP3416045A1 (en) Method for controlling a display, device, and storage medium
CN107423106B (zh) 支持多框架语法的方法和装置
CN110308908B (zh) 应用的配置文件的生成和应用页面的展示方法、装置及存储介质
CN105808305B (zh) 静态资源的加载方法和装置
CN107229711B (zh) 网页显示方法及装置
CN106547547B (zh) 数据采集方法及装置
CN107423218B (zh) 应用测试方法、装置及终端
CN109117144B (zh) 页面处理方法、装置、终端及存储介质
CN105786944B (zh) 浏览器自动翻页的处理方法和装置
CN107911482B (zh) 目标应用打开方法及装置
CN107463372B (zh) 一种数据驱动的页面更新方法和装置
CN107450912B (zh) 页面的布局方法、装置及终端
US11210449B2 (en) Page display method and device and storage medium
CN110968492B (zh) 信息处理方法及装置、存储介质
CN110221813B (zh) 应用的数据连接建立方法、装置、存储介质和电子设备
CN111221613A (zh) 程序调用方法及装置、存储介质
CN107861666B (zh) 桌面应用安装方法及装置
CN111338961B (zh) 应用调试方法及装置、电子设备及存储介质
CN111131000B (zh) 一种信息传输方法、装置、服务器、终端
CN108804181B (zh) 控件内容获取方法、装置及存储介质
CN112860625A (zh) 数据获取方法、数据存储方法、装置、设备及存储介质
CN112182449A (zh) 页面加载方法、装置、电子设备及存储介质
CN111597106A (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