CN111596959A - 应用程序跨平台开发移植方法及装置 - Google Patents
应用程序跨平台开发移植方法及装置 Download PDFInfo
- Publication number
- CN111596959A CN111596959A CN201910128487.4A CN201910128487A CN111596959A CN 111596959 A CN111596959 A CN 111596959A CN 201910128487 A CN201910128487 A CN 201910128487A CN 111596959 A CN111596959 A CN 111596959A
- Authority
- CN
- China
- Prior art keywords
- development
- functions
- wasm
- technology
- complex
- 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
- 238000011161 development Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000002054 transplantation Methods 0.000 title claims abstract description 9
- 230000006870 function Effects 0.000 claims abstract description 77
- 238000005516 engineering process Methods 0.000 claims abstract description 39
- 230000003993 interaction Effects 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 230000002452 interceptive effect Effects 0.000 claims description 7
- 238000009960 carding Methods 0.000 claims description 3
- 230000005012 migration Effects 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 2
- 230000018109 developmental process Effects 0.000 description 40
- 230000008901 benefit Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008140 language development Effects 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/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/40—Transformation of program code
- G06F8/41—Compilation
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
本发明提供了一种应用程序跨平台开发移植方法及装置。该方法包括:对所述应用程序的功能进行分类;根据所述分类结果确定复杂功能以及梳理原有的开发成果;使用WASM技术开发所述复杂功能并使用WASM技术改造所述开发成果,以适配多种平台。本发明使得一套开发代码能够在多个平台运行,不需要反复开发,适配多种平台;对于原有项目成果中的功能,通过较小的改动可以很快地移植到多种平台上。从而,减少项目开发的人力成本,缩短时间周期,降低后期维护的难度。
Description
技术领域
本发明涉及软件开发技术领域,特别地涉及一种应用程序跨平台开发及移植的方法及装置。
背景技术
随着Windows、MacOS、Linux操作系统电脑的普及,以及Android、IOS移动设备的增多,软件开发越来越需要注重多个平台的兼容,考虑到的设备也越来越多。如果针对每个平台都使用原生语言开发,势必会增加巨大的工作量和人力成本。而且不少开发项目在初期只考虑到了PC端,或者仅仅只支持Windows系统,当后来业务发展需要扩展到其他平台时,重新开发则会导致大量时间和费用成本的支出。目前的跨平台解决方案多使用Web应用技术,借助浏览器来展示,但是该方案无法调用系统本地函数,无法使用PC、移动设备等提供的高级硬件功能。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一,提供一种基于WASM的跨平台开发移植方案。
为此,根据本发明的第一方面,提供了一种应用程序跨平台开发方法,包括:
对所述应用程序的功能进行分类;
根据所述分类结果确定复杂功能以及梳理原有的开发成果;
使用WASM技术开发所述复杂功能并使用WASM技术改造所述开发成果,以适配多种平台。
进一步地,所述复杂功能包括需要与底层操作系统交互的功能和需要调用系统本地函数的功能。
进一步地,所述使用WASM技术开发和使用WASM技术改造后,实现所述功能的代码被编译成可执行的二进制包,供JavaScript调用。
进一步地,还包括:
根据所述分类结果确定界面和交互功能;使用Web技术开发所述界面和交互功能。
根据本发明的第二方面,提供了一种应用程序跨平台开发移植装置,包括:
分类模块,用于对所述应用程序的功能进行分类;
确定模块,用于根据所述分类结果确定复杂功能以及根据所述分类结果梳理原有的开发成果;
开发模块,用于使用WASM技术开发所述复杂功能;
移植模块,用于使用WASM技术改造所述开发成果。
进一步地,所述复杂功能包括需要与底层操作系统交互的功能和需要调用系统本地函数的功能。
进一步地,所述使用WASM技术开发和使用WASM技术改造后,实现所述功能的代码被编译成可执行的二进制包,供JavaScript调用。
进一步地,所述确定模块还用于根据所述分类结果确定界面和交互功能;所述开发模块还用于使用Web技术开发所述界面和交互功能。
本发明提供的跨平台开发移植方法和装置通过使用WASM技术,使得一套开发代码能够在多个平台运行,不需要反复开发,适配多种平台;对于原有项目成果中的功能,通过较小的改动可以很快地移植到多种平台上。从而,减少项目开发的人力成本,缩短时间周期,降低后期维护的难度。而且进一步地,相比纯Web应用的实现方案,能够发挥原生平台的优势,高效执行部分代码。
本发明的附加方面和优点将在下面的描述部分中给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明的应用程序跨平台开发方法的流程图;
图2是根据本发明的应用程序跨平台开发装置的结构图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
WASM(WebAssembly)是一个可移植、体积小、加载快并且兼容Web的全新格式。本发明借助时下流行的WASM开发技术,将功能编译成可执行的二进制模块,兼容多个平台,并且能最大限度的使用系统本身的资源。
参考图1,其示出了根据本发明的应用程序跨平台开发移植方法的流程,包括:
S11、对所述应用程序的功能进行分类;
可选地,功能分为原有开发成果和待开发功能,待开发的功能中又包括简单功能和复杂功能。
S12、根据所述分类结果确定复杂功能以及梳理原有的开发成果;
所述复杂功能包括需要与底层操作系统交互的功能和需要调用系统本地函数的功能。
S13、使用WASM技术开发所述复杂功能并使用WASM技术改造所述开发成果。
对于复杂功能,使用WASM技术开发,可以适配于多种平台;
对于原有的开发成果,使用WASM技术进行改造,可以将已开发的功能移植到多种平台。由于WASM技术对于C++等语言有很好的兼容性,因此能够很快的完成原有开发成果的移植。
使用WASM技术开发或改造后,实现所述功能的代码被编译成可执行的二进制包,供浏览器的JavaScript调用。
进一步地,方法还包括:
根据所述分类结果确定界面和交互功能;
使用Web技术开发所述界面和交互功能。所述Web技术包括HTML、JavaScript、CSS等。
上述不同类型的功能的确定和开发可以是串行的,也可以是并行的,例如根据分类结果确定出底层复杂功能、需要移植的原有开发成果以及界面和交互功能,之后并行地对不同功能利用相应的技术进行开发。
通过上述方法开发的应用程序能够通过浏览器在不同的平台上运行,例如个人电脑PC和移动设备。运行时只需由该平台上的浏览器的JavaScript调用WASM技术开发或改造得到的二进制包即可。
参考图2,其示出了根据本发明的应用程序跨平台开发装置,包括:
分类模块21,用于对所述应用程序的功能进行分类。可选地,功能分为原有开发成果和待开发功能,待开发的功能中又包括简单功能和复杂功能。
确定模块22,用于根据所述分类结果确定复杂功能以及根据所述分类结果梳理原有的开发成果。可选地,所述复杂功能包括需要与底层操作系统交互的功能和需要调用系统本地函数的功能。
开发模块23,用于使用WASM技术开发所述复杂功能,使用Web技术开发所述界面和交互功能。
移植模块24,用于使用WASM技术改造所述开发成果,以适配多种平台。
进一步地,所述使用WASM技术开发和使用WASM技术改造后,实现所述功能的代码被编译成可执行的二进制包,供浏览器中的JavaScript调用,这样通过上述装置开发的应用程序能够通过浏览器在不同的平台上运行。
综上,通过本发明提供的方法和装置,一套开发代码能够在多个平台运行,不需要反复开发,适配多种平台;能够将原有的项目成果,通过较小的改动,很快移植到多种平台上;而且能够具有调用系统函数等底层复杂功能,从而发挥原生平台的硬件功能和优势,提升代码执行效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中。以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种应用程序跨平台开发移植方法,其特征在于,包括:
对所述应用程序的功能进行分类;
根据所述分类结果确定复杂功能以及梳理原有的开发成果;
使用WASM技术开发所述复杂功能并使用WASM技术改造所述开发成果,以适配多种平台。
2.根据权利要求1所述的方法,其特征在于,所述复杂功能包括需要与底层操作系统交互的功能和需要调用系统本地函数的功能。
3.根据权利要求1所述的方法,其特征在于,所述使用WASM技术开发和使用WASM技术改造后,实现所述功能的代码被编译成可执行的二进制包,供JavaScript调用。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据所述分类结果确定界面和交互功能;使用Web技术开发所述界面和交互功能。
5.一种应用程序跨平台开发移植装置,其特征在于,包括:
分类模块,用于对所述应用程序的功能进行分类;
确定模块,用于根据所述分类结果确定复杂功能以及根据所述分类结果梳理原有的开发成果;
开发模块,用于使用WASM技术开发所述复杂功能;
移植模块,用于使用WASM技术改造所述开发成果。
6.根据权利要求5所述的装置,其特征在于,所述复杂功能包括需要与底层操作系统交互的功能和需要调用系统本地函数的功能。
7.根据权利要求6所述的装置,其特征在于,所述使用WASM技术开发和使用WASM技术改造后,实现所述功能的代码被编译成可执行的二进制包,供JavaScript调用。
8.根据权利要求5所述的装置,其特征在于,所述确定模块还用于根据所述分类结果确定界面和交互功能;所述开发模块还用于使用Web技术开发所述界面和交互功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910128487.4A CN111596959A (zh) | 2019-02-21 | 2019-02-21 | 应用程序跨平台开发移植方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910128487.4A CN111596959A (zh) | 2019-02-21 | 2019-02-21 | 应用程序跨平台开发移植方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111596959A true CN111596959A (zh) | 2020-08-28 |
Family
ID=72181471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910128487.4A Pending CN111596959A (zh) | 2019-02-21 | 2019-02-21 | 应用程序跨平台开发移植方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596959A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254002A (zh) * | 2021-07-08 | 2021-08-13 | 企查查科技有限公司 | 提升网页性能且支持跨平台调用的组件、介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445518A (zh) * | 2016-09-22 | 2017-02-22 | 中国传媒大学 | 一种跨平台移动终端应用程序开发方法及系统 |
CN107870821A (zh) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | 应用程序的跨平台调用方法及系统 |
CN108563517A (zh) * | 2018-03-30 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 系统接口的调用方法及装置 |
-
2019
- 2019-02-21 CN CN201910128487.4A patent/CN111596959A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445518A (zh) * | 2016-09-22 | 2017-02-22 | 中国传媒大学 | 一种跨平台移动终端应用程序开发方法及系统 |
CN107870821A (zh) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | 应用程序的跨平台调用方法及系统 |
CN108563517A (zh) * | 2018-03-30 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 系统接口的调用方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254002A (zh) * | 2021-07-08 | 2021-08-13 | 企查查科技有限公司 | 提升网页性能且支持跨平台调用的组件、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090437B (zh) | 应用部署方法、装置及计算机可读存储介质 | |
CN101930366B (zh) | 一种基于浏览器的手机运行时系统 | |
US20100023926A1 (en) | Call graph dependency extraction by static source code analysis | |
CN110895471A (zh) | 安装包生成方法、装置、介质及电子设备 | |
CN102693121A (zh) | 一种跨平台手机应用的自动开发制作系统及实现方法 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN110059456A (zh) | 代码保护方法、代码保护装置、存储介质与电子设备 | |
CN111209010A (zh) | 一种平台及其实现方法 | |
CN111338925A (zh) | 小程序测试方法及装置、系统、电子设备和存储介质 | |
CN110109671B (zh) | 一种webpack标签尺寸样式转换方法及装置 | |
CN102262684A (zh) | 移动终端网页页面生成方法及装置 | |
CN108089870B (zh) | 用于修复应用的方法和装置 | |
CN111459499A (zh) | 程序编译方法及装置、计算机存储介质、电子设备 | |
CN108804120B (zh) | 一种页面构建方法、装置、设备及存储介质 | |
CN104572054A (zh) | 一种能力调用方法和设备 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN102799444A (zh) | 跨平台打包程序的方法及装置 | |
CN118170431B (zh) | 跨操作系统的业务迁移方法、装置及电子设备 | |
AU2016378425B2 (en) | Application program running method and apparatus | |
CN115525282A (zh) | 跨平台桌面应用程序的实现方法及其相关设备 | |
CN114816672A (zh) | 虚拟机的创建方法、装置、电子设备和存储介质 | |
CN108845864B (zh) | 一种基于spring框架的JVM垃圾回收方法和装置 | |
CN111596959A (zh) | 应用程序跨平台开发移植方法及装置 | |
CN111367799B (zh) | 定位源代码崩溃位置的方法、装置、介质及电子设备 | |
CN114115884A (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 |