CN110737468A - 一种可执行程序的跨平台实现方法 - Google Patents
一种可执行程序的跨平台实现方法 Download PDFInfo
- Publication number
- CN110737468A CN110737468A CN201810794542.9A CN201810794542A CN110737468A CN 110737468 A CN110737468 A CN 110737468A CN 201810794542 A CN201810794542 A CN 201810794542A CN 110737468 A CN110737468 A CN 110737468A
- Authority
- CN
- China
- Prior art keywords
- operating system
- interface
- abstract class
- abstract
- abstracting
- 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 23
- 238000009877 rendering Methods 0.000 claims abstract description 9
- 238000012856 packing Methods 0.000 claims abstract description 4
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000033772 system development Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种可执行程序的跨平台实现方法,包括:S1.对至少两种操作系统的硬件驱动进行抽象并生成第一抽象类;S2.对所述操作系统的界面渲染进行抽象并生成第二抽象类;S3.基于所述第一抽象类和所述第二抽象类编写可执行程序的源代码;S4.根据所述操作系统的接口类型,将所述源代码打包成与所述操作系统相匹配的实现类。根据本发明,可以只通过编写一次源代码,通过对源代码按照不同操作系统的接口对源代码进行相应的编译及封装后,即可得到不同平台的多套餐饮管理系统。同时,还保持了界面样式、操作逻辑的完全一致。不需要开展多个开发小组分别开发不同操作系统的餐饮管理系统,极大的简化了跨平台开发的成本,节约了资源。
Description
技术领域
本发明涉及一种可执行程序的跨平台实现方法,尤其涉及一种用于餐饮管理系统的可执行程序的跨平台实现方法。
背景技术
近年来,随着移动设备,如手机、平板、智能穿戴设备的兴起,使得应用程序的开发和应用达到了一个前所未有的高度。通常情况下,一般APP的研发都是针对操作系统,针对特定服务平台而制定的,如果在不同平台,不同操作系统上发布产品,必须要研发多套应用程序。目前市面上存在多种餐饮管理系统,他们主要运行在windows或者是安卓操作系统上。两个操作系统开发软件的方式都有着非常大的差异,导致餐饮软件不能同时兼容两个平台。如果想在两个操作系统上同时运行,需要对于每个操作系统平台投入相应的开发人员各自进行开发不同的应用程序版本,从而导致高昂的研发成本,时间成本和发布成本。
发明内容
本发明的目的在于提供一种可执行程序的跨平台实现方法,解决可执行程序不能同时兼容多个平台的问题。
为实现上述发明目的,本发明提供一种可执行程序的跨平台实现方法,包括:
S1.对至少两种操作系统的硬件驱动进行抽象并生成第一抽象类;
S2.对所述操作系统的界面渲染进行抽象并生成第二抽象类;
S3.基于所述第一抽象类和所述第二抽象类编写可执行程序的源代码;
S4.根据所述操作系统的接口类型,将所述源代码打包成与所述操作系统相匹配的实现类。
根据本发明的一个方面,步骤S1中包括:
S11.根据所述操作系统的系统特性,分析所述操作系统的硬件驱动的驱动特性;
S12.根据各所述操作系统的所述驱动特性,将各所述操作系统的硬件驱动抽象为同一格式的第一抽象类。
根据本发明的一个方面,步骤S2中包括:
S21.根据所述操作系统的界面特性,获取所述操作系统的界面特性;
S22.根据各所述操作系统的所述界面特性,将各所述操作系统的界面渲染抽象为同一格式的第二抽象类。
根据本发明的一个方面,步骤S22中,将各所述操作系统的界面渲染抽象为同一格式的第二抽象类的过程中,将界面样式抽象为一系列基本操作空间的组合,并且界面布局通过相对位置描述;以及将交互行为抽象为一系列的动作。
根据本发明的一个方面,步骤S3中包括:
S31.建立标准的基础控件抽象类;
S32.基于所述第二抽象类对用户界面进行配置,并基于所述第一抽象类对所述源代码进行封装。
根据本发明的一个方面,步骤S4包括;
S41.根据所述操作系统的接口类型,对所述源代码进行编译成相应格式的程序;
S42.将编译后形成的所述程序打包生成相应格式的安装程序。
根据本发明的一个方面,所述操作系统包括:Windows mobile操作系统、Android操作系统、苹果iso操作系统、Windows操作系统及Linux操作系统。
根据本发明的一个方面,步骤S33中,通过采用Java AWT并基于所述第二抽象类对用户界面进行配置。
根据本发明的一种方案,可以只通过编写一次源代码,通过对源代码按照不同操作系统的接口对源代码进行相应的编译及封装后,即可得到不同平台的多套餐饮管理系统。同时,还保持了界面样式、操作逻辑的完全一致。不需要开展多个开发小组分别开发不同操作系统的餐饮管理系统,极大的简化了跨平台开发的成本,节约了资源,从而可节省(1-(1/N))*100%的资源,N为跨越的目标平台数量。采用本发明的方法,还有利于对餐饮管理系统的维护,降低了维护人员的工作量,进一步节约了人力资源。同时,多种操作系统上的餐饮管理系统的界面样式和操作逻辑保持一致,还进一步保证用户操作的便利性,提高了用户的使用体验。
附图说明
图1示意性表示根据本发明的一种实施方式的流程图;
图2示意性表示根据本发明的一种实施方式的应用程序封装流程图;
图3示意性表示根据本发明的一种实施方式的系统开发库框图。
具体实施方式
为了更清楚地说明本发明实施方式或现有技术中的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在针对本发明的实施方式进行描述时,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”所表达的方位或位置关系是基于相关附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本发明的限制。
下面结合附图和具体实施方式对本发明作详细地描述,实施方式不能在此一一赘述,但本发明的实施方式并不因此限定于以下实施方式。
如图1所示,根据本发明的一种实施方式,本发明的一种可执行程序的跨平台实现方法,包括:
S1.对至少两种操作系统的硬件驱动进行抽象并生成第一抽象类;
S2.对操作系统的界面渲染进行抽象并生成第二抽象类;
S3.基于第一抽象类和第二抽象类编写可执行程序的源代码;
S4.根据操作系统的接口类型,将源代码打包成与操作系统相匹配的实现类。
根据本发明的一种实施方式,步骤S1中包括:
S11.根据操作系统的系统特性,分析操作系统的硬件驱动的驱动特性;
S12.根据各操作系统的驱动特性,将各操作系统的硬件驱动抽象为同一格式的第一抽象类。
根据本发明的一种实施方式,步骤S2中包括:
S21.根据操作系统的界面特性,获取操作系统的界面特性;
S22.根据各操作系统的界面特性,将各操作系统的界面渲染抽象为同一格式的第二抽象类。在本实施方式中,将各操作系统的界面渲染抽象为同一格式的第二抽象类的过程中,将界面样式抽象为一系列基本操作空间的组合,其中基本操作空间包括按钮、输入框、单选框、复选框等,并且界面布局通过相对位置描述;以及将交互行为抽象为一系列的动作。
根据本发明的一种实施方式,步骤S3中包括:
S31.建立标准的基础控件抽象类,其中,基础控件的抽象类包括按钮、输入框、单选框、复选框等;
S32.基于第二抽象类对用户界面进行配置,并基于第一抽象类对源代码进行封装。在本实施方式中,通过采用Java AWT并基于第二抽象类对用户界面进行配置。
根据本发明的一种实施方式,步骤S4包括;
S41.根据操作系统的接口类型,对源代码进行编译成相应格式的程序;
S42.将编译后形成的程序打包生成相应格式的安装程序。
在本实施方式中,操作系统包括:Windows mobile操作系统、Android操作系统、苹果iso操作系统、Windows操作系统及Linux操作系统。如图2所示,在本实施方式中,通过选择应用程序需要运行的目标平台对源代码进行编译。根据需要选取Windows操作系统和Android操作系统为应用程序的运行平台。针对Windows操作系统,复制Windows操作系统接口的实现类,对源代码编译构建JAVA程序,完成源代码的编译后打包成可在Windows操作系统上运行的EXE安装程序。针对Android操作系统,复制Android操作系统接口的实现类,对源代码编译构建JAVA程序,完成源代码的编译后打包成可在Android操作系统上运行的APK安装程序。
如图3所示,根据本发明的一种实施方式,本发明的可执行程序的跨平台实现方法通过系统开发库进行开发。在本实施方式中,适用于本发明的系统开发库包括核心代码编辑模块、GUI代码编辑模块、扩展模块、工具集模块和封装模块。在本实施方式中,扩展模块包括事件模块、驱动模块、XML模块、Sqlite数据库模块和打印模块。在本实施方式中,工具集模块包括打包工具模块和可编辑UI布局器模块。在本实施方式中,通过本系统开发库中的核心代码编辑模块编辑可执行程序的核心代码,并且通过GUI代码编辑模块编辑可执行程序的图形界面代码。通过分别选择相应的扩展模块对可执行程序所需执行的任务或功能进行添加,构成本发明的可执行程序的源代码。在本实施方式中,源代码通过打包工具模块进行打包,以Windows操作系统和Android操作系统为例,打包工具模块包括Windows操作系统打包工具和Android操作系统打包工具,分别将源代码打包成相应格式。在本实施方式中,完成对源代码的打包后,通过封装模块进行封装,以Windows操作系统和Android操作系统为例,封装模块包括Windows操作系统封装模块和Android操作系统封装模块,完成封装后生成在不同操作系统上运行的可执行程序。
根据本发明的方法,可以只通过编写一次源代码,通过对源代码按照不同操作系统的接口对源代码进行相应的编译及封装后,即可得到不同平台的多套餐饮管理系统。同时,还保持了界面样式、操作逻辑的完全一致。不需要开展多个开发小组分别开发不同操作系统的餐饮管理系统,极大的简化了跨平台开发的成本,节约了资源,从而可节省(1-(1/N))*100%的资源,N为跨越的目标平台数量。采用本发明的方法,还有利于对餐饮管理系统的维护,降低了维护人员的工作量,进一步节约了人力资源。同时,多种操作系统上的餐饮管理系统的界面样式和操作逻辑保持一致,还进一步保证用户操作的便利性,提高了用户的使用体验。
上述内容仅为本发明的具体方案的例子,对于其中未详尽描述的设备和结构,应当理解为采取本领域已有的通用设备及通用方法来予以实施。
以上所述仅为本发明的一个方案而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种可执行程序的跨平台实现方法,包括:
S1.对至少两种操作系统的硬件驱动进行抽象并生成第一抽象类;
S2.对所述操作系统的界面渲染进行抽象并生成第二抽象类;
S3.基于所述第一抽象类和所述第二抽象类编写可执行程序的源代码;
S4.根据所述操作系统的接口类型,将所述源代码打包成与所述操作系统相匹配的实现类。
2.根据权利要求1所述的跨平台实现方法,其特征在于,步骤S1中包括:
S11.根据所述操作系统的系统特性,分析所述操作系统的硬件驱动的驱动特性;
S12.根据各所述操作系统的所述驱动特性,将各所述操作系统的硬件驱动抽象为同一格式的第一抽象类。
3.根据权利要求2所述的跨平台实现方法,其特征在于,步骤S2中包括:
S21.根据所述操作系统的界面特性,获取所述操作系统的界面特性;
S22.根据各所述操作系统的所述界面特性,将各所述操作系统的界面渲染抽象为同一格式的第二抽象类。
4.根据权利要求3所述的跨平台实现方法,其特征在于,步骤S22中,将各所述操作系统的界面渲染抽象为同一格式的第二抽象类的过程中,将界面样式抽象为一系列基本操作空间的组合,并且界面布局通过相对位置描述;以及将交互行为抽象为一系列的动作。
5.根据权利要求1所述的跨平台实现方法,其特征在于,步骤S3中包括:
S31.建立标准的基础控件抽象类;
S32.基于所述第二抽象类对用户界面进行配置,并基于所述第一抽象类对所述源代码进行封装。
6.根据权利要求1所述的跨平台实现方法,其特征在于,步骤S4包括;
S41.根据所述操作系统的接口类型,对所述源代码进行编译成相应格式的程序;
S42.将编译后形成的所述程序打包生成相应格式的安装程序。
7.根据权利要求3所述的跨平台实现方法,其特征在于,所述操作系统包括:Windowsmobile操作系统、Android操作系统、苹果iso操作系统、Windows操作系统及Linux操作系统。
8.根据权利要求3所述的跨平台实现方法,其特征在于,步骤S33中,通过采用Java AWT并基于所述第二抽象类对用户界面进行配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810794542.9A CN110737468A (zh) | 2018-07-19 | 2018-07-19 | 一种可执行程序的跨平台实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810794542.9A CN110737468A (zh) | 2018-07-19 | 2018-07-19 | 一种可执行程序的跨平台实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110737468A true CN110737468A (zh) | 2020-01-31 |
Family
ID=69233632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810794542.9A Pending CN110737468A (zh) | 2018-07-19 | 2018-07-19 | 一种可执行程序的跨平台实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737468A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796898A (zh) * | 2020-07-03 | 2020-10-20 | 北京三快在线科技有限公司 | 布局调整方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127070A1 (en) * | 2006-10-23 | 2008-05-29 | Roland Barcia | System and method for instantiating an interface or abstract class in application code |
CN101295247A (zh) * | 2008-06-24 | 2008-10-29 | 杭州义益自动化有限公司 | 一种跨cpu平台的嵌入式图形界面生成方法 |
CN101303644A (zh) * | 2007-05-08 | 2008-11-12 | 西北民族大学 | 基于Windows OS与Linux OS的梵音藏文输入法 |
CN101304496A (zh) * | 2008-06-19 | 2008-11-12 | 上海交通大学 | 基于java的手机电视实现方法 |
CN102681893A (zh) * | 2011-03-09 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 可执行程序的跨平台实现方法及移动终端 |
CN106990966A (zh) * | 2017-03-31 | 2017-07-28 | 中国科学技术大学苏州研究院 | 基于前端框架的移动端跨平台应用开发框架及开发方法 |
-
2018
- 2018-07-19 CN CN201810794542.9A patent/CN110737468A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127070A1 (en) * | 2006-10-23 | 2008-05-29 | Roland Barcia | System and method for instantiating an interface or abstract class in application code |
CN101303644A (zh) * | 2007-05-08 | 2008-11-12 | 西北民族大学 | 基于Windows OS与Linux OS的梵音藏文输入法 |
CN101304496A (zh) * | 2008-06-19 | 2008-11-12 | 上海交通大学 | 基于java的手机电视实现方法 |
CN101295247A (zh) * | 2008-06-24 | 2008-10-29 | 杭州义益自动化有限公司 | 一种跨cpu平台的嵌入式图形界面生成方法 |
CN102681893A (zh) * | 2011-03-09 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 可执行程序的跨平台实现方法及移动终端 |
CN106990966A (zh) * | 2017-03-31 | 2017-07-28 | 中国科学技术大学苏州研究院 | 基于前端框架的移动端跨平台应用开发框架及开发方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796898A (zh) * | 2020-07-03 | 2020-10-20 | 北京三快在线科技有限公司 | 布局调整方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168749B (zh) | 一种编译方法、装置、设备和计算机可读存储介质 | |
WO2017185606A1 (zh) | 基于overlay机制的APK开发方法及系统 | |
CN110442327B (zh) | 一种应用程序构建方法、装置、服务器 | |
CN103677835B (zh) | 软件集成方法及系统 | |
CN105760162A (zh) | 混合型app软件的开发方法 | |
CN111061489B (zh) | 一种多平台编译检测方法、装置、设备及介质 | |
CN104679513A (zh) | 一种智能终端中的设备驱动架构开发方法 | |
KR102156371B1 (ko) | 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치 | |
CN111176629A (zh) | 一种应用开发的方法和装置 | |
CN113590104B (zh) | 实现图形化无代码软件开发平台及方法 | |
US12032941B2 (en) | Method and system for updating legacy software | |
CN101145982A (zh) | 一种基于对象模型与协议组态配置的通用网关设计方法 | |
CN110659031A (zh) | 应用程序的编译方法、装置、电子设备及存储介质 | |
CN104035778A (zh) | 一种Android应用程序开发方法 | |
US20010047512A1 (en) | Method and system for linking multiple processors having shared memory | |
CN111338925A (zh) | 小程序测试方法及装置、系统、电子设备和存储介质 | |
CN102541566A (zh) | 半导体软件界面框架生成方法 | |
CN111124420A (zh) | 编译方法、装置、电子设备及可读存储介质 | |
CN111158690A (zh) | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 | |
CN104331315A (zh) | 一种任意层次json对象的解析与生成方法及系统 | |
CN104598267A (zh) | 应用的调起方法及装置 | |
CN102023857B (zh) | 基于ServiceOS的多平台应用程序服务管理方法及系统 | |
CN112114896A (zh) | 一种插件框架及业务功能扩展的方法 | |
CN105511935A (zh) | 资源索引值的获取方法及装置 | |
US10891113B2 (en) | Source code rewriting during recording to provide both direct feedback and optimal code |
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 | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240614 |