CN106095420A - 基于移动跨平台的抽象控件模型实现方法 - Google Patents
基于移动跨平台的抽象控件模型实现方法 Download PDFInfo
- Publication number
- CN106095420A CN106095420A CN201610385813.6A CN201610385813A CN106095420A CN 106095420 A CN106095420 A CN 106095420A CN 201610385813 A CN201610385813 A CN 201610385813A CN 106095420 A CN106095420 A CN 106095420A
- Authority
- CN
- China
- Prior art keywords
- control
- abstract
- model
- primary
- control model
- 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
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/35—Creation or generation of source code model driven
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
本发明公开了一种基于移动跨平台的抽象控件模型实现方法,包括,提供原生控件的Document和Element模型的抽象封装,对抽象控件模型的访问getter,通过Document访问指定ID控件的时候,动态创建一个抽象控件,并将抽象控件加入抽象控件模型中,当访问该抽象控件属性时,自动调用服务获取指定原生控件的属性值,并将调用的属性值写入抽象控件中,并返回该属性值,从而得到抽象控件模型的属性值;对抽象控件模型的操作setter,当访问到一个抽象控件模型对象后,设置抽象控件模型的属性值;提供对原生控件类型的强类型封装;提供抽象控件模型与原生控件之间的通讯交互。实现跨平台编程,降低开发人员的移动开发门槛的优点。
Description
技术领域
本发明涉及移动应用开发领域,具体地,涉及一种基于移动跨平台的抽象控件模型实现方法。
背景技术
移动开发领域中存在着不同的操作系统。软件开发人员不得不需要在不同的移动操作系统和移动设备之间为了兼容而重复进行开发。例如,在Apple环境下使用IOS的应用,而在Android平台下使用Java又重复开发一遍,而这些应用如果需要运行在Windows Phone环境下,则有需要使用C#和EVC再开发一遍。移动操作系统的数量决定了为兼容这些操作系统而进行重复开发的工作量。
发明内容
本发明的目的在于,针对上述问题,提出一种基于移动跨平台的抽象控件模型实现方法,以实现跨平台编程,降低开发人员的移动开发门槛的优点。
为实现上述目的,本发明采用的技术方案是:
一种基于移动跨平台的抽象控件模型实现方法,包括,
提供原生控件的Document和Element模型的抽象封装,从而得到抽象控件模型;
对抽象控件模型的访问getter,通过Document访问指定ID控件的时候,动态创建一个抽象控件,并将抽象控件加入抽象控件模型中,当访问该抽象控件属性时,自动调用服务获取指定原生控件的属性值,并将调用的属性值写入抽象控件中,并返回该属性值,从而得到抽象控件模型的属性值;
对抽象控件模型的操作setter,当访问到一个抽象控件模型对象后,设置抽象控件模型的属性值;
提供对原生控件类型的强类型封装,强类型控件有特定的专属于自己的API,建立原生控件与抽象控件模型的链接,方便操作原生控件;
提供抽象控件模型与原生控件之间的通讯交互,即将Document作为一份控件元数据信息提交给原生控件的原生框架,原生框架通过解析这份控件元数据信息,更新相应的控件,完成对原生控件的操作。
优选的,上述当访问到一个抽象控件模型对象后,具体使用setAttribute方式设置抽象控件模型的属性值。
优选的,将原生控件的Document和Element模型进行抽象封装中,通过Document能够访问所有抽象控件模型内的控件,实现动态创建或删除控件。
优选的,所述提供对原生控件类型的强类型封装中,具体将Element转成强类型控件。
本发明的技术方案具有以下有益效果:
本发明为了能实现跨平台,开发一套能屏蔽具体的移动平台的统一的、抽象的控件模型。可以完全屏蔽不同移动平台带来的开发的差异性,实现跨平台编程,降低开发人员的移动开发门槛。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明实施例所述的于移动跨平台的抽象控件模型实现方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
一种基于移动跨平台的抽象控件模型实现方法,包括,
将原生控件的Document和Element模型进行抽象封装,从而得到抽象控件模型;
对抽象控件模型的访问getter,通过Document访问指定ID控件的时候,动态创建一个抽象控件,并将抽象控件加入抽象控件模型中,当访问该抽象控件属性时,自动调用服务获取指定原生控件的属性值,并将调用的属性值写入抽象控件中,并返回该属性值,从而得到抽象控件模型的属性值;
对抽象控件模型的操作setter,当访问到一个抽象控件模型对象后,设置抽象控件模型的属性值;
提供对原生控件类型的强类型封装,强类型控件有特定的专属于自己的API,建立原生控件与抽象控件模型的链接,方便操作原生控件;
提供抽象控件模型与原生控件之间的通讯交互,即将Document作为一份控件元数据信息提交给原生控件的原生框架,原生框架通过解析这份控件元数据信息,更新相应的控件,完成对原生控件的操作。
优选的,上述当访问到一个抽象控件模型对象后,具体使用setAttribute方式设置抽象控件模型的属性值。
优选的,将原生控件的Document和Element模型进行抽象封装中,通过Document能够访问所有抽象控件模型内的控件,实现动态创建或删除控件。
优选的,所述提供对原生控件类型的强类型封装中,具体将Element转成强类型控件。
在传统的开发中,针对不同的运行平台,要开发出不同的应用,即需要编写能使用运行其上的代码。例如:开发一个能运行在IOS之上的移动应用,通常就需要开发人员使用Object-C语言来进行编码开发,相应的需要在Android操作系统之上的移动应用就需要开发人员使用Java语言按照Android开发方式进行开发,同理,运行平台的差异化越大,开发一款应用软件就需要用不同的编程语言和开发平台来进行开发,这无疑增加了开发人员和开发团队的负担。
通过抽象控件模型,只需要针对这一套统一的、与平台无关的控件模型就可以实现一次编码而支持在不同运行平台之上运行,无疑会给应用开发人员带来更高的开发效率。
实现一套抽象控件模型需要有对原生控件的访问和获取方式、与原生控件之间的元数据通讯。如图1所示,具体包括如下:
1、提供对原生控件的Document和Element模型的抽象封装,提供DOM编程模型。通过Document可以访问所有抽象控件树内的控件,可以实现动态创建、删除控件。
2、对抽象控件模型的访问getter。在通过Document访问指定ID的控件的时候,会动态创建一个抽象控件,并加入抽象Document模型中。当访问该控件属性时,会自动调用服务获取指定原生控件的属性值写入抽象控件模型中,并返回该属性值。对于开发者而言,就像是通过Element访问属性一样。
3、对抽象控件模型的操作setter。访问到一个抽象控件模型对象后,可以使用setAttribute方式设置抽象控件模型的属性值。
4、提供对原生控件类型的强类型封装。提供强类型控件编程模型,可以将Element对象转成强类型控件。每一种强类型控件都有特定的专属于自己的API,可以方便的操作控件。
5、提供抽象控件模型与原生控件之间的通讯交互。当业务逻辑代码运行完毕后,MVC框架会将Document作为一份控件元数据信息提交给原生框架,原生框架通过解析这份元数据信息,更新相应的控件,完成对原生控件的操作。
综上所述,本发明具有以下特点:
使用JavaScript语言,使得更多的具有Web开发经验的开发人员能够在最短的时间内通过我们提供的开发平台和开发方式,真正实现编写一次代码,就可以在不同的平台上运行的梦想。
(1)学习成本低。平台提供了生成原生代码的能力,屏蔽了开发人员的学习不同移动平台开发语言的成本,并且提供了基于JavaScript的面向对象、命名空间等主流高级语言特性,使得熟悉这些高级语言的开发人员能有效的过渡到移动开发领域。
(2)开发成本低。Web程序员通过抽象控件DOM编程可以很快的编写出移动应用。
(3)跨平台。只要通过抽象控件编程模型编写一次代码即可,不同的移动平台下都可以运行。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于移动跨平台的抽象控件模型实现方法,其特征在于,包括,
提供原生控件的Document和Element模型的抽象封装,从而得到抽象控件模型;
对抽象控件模型的访问getter,通过Document访问指定ID控件的时候,动态创建一个抽象控件,并将抽象控件加入抽象控件模型中,当访问该抽象控件属性时,自动调用服务获取指定原生控件的属性值,并将调用的属性值写入抽象控件中,并返回该属性值,从而得到抽象控件模型的属性值;
对抽象控件模型的操作setter,当访问到一个抽象控件模型对象后,设置抽象控件模型的属性值;
提供对原生控件类型的强类型封装,强类型控件有特定的专属于自己的API,建立原生控件与抽象控件模型的链接,方便操作原生控件;
提供抽象控件模型与原生控件之间的通讯交互,即将Document作为一份控件元数据信息提交给原生控件的原生框架,原生框架通过解析这份控件元数据信息,更新相应的控件,完成对原生控件的操作。
2.根据权利要求1所述的基于移动跨平台的抽象控件模型实现方法,其特征在于, 上述当访问到一个抽象控件模型对象后,具体使用setAttribute方式设置抽象控件模型的属性值。
3.根据权利要求1或2所述的基于移动跨平台的抽象控件模型实现方法,其特征在于,将原生控件的Document和Element模型进行抽象封装中,通过Document能够访问所有抽象控件模型内的控件,实现动态创建或删除控件。
4.根据权利要求1或2所述的基于移动跨平台的抽象控件模型实现方法,其特征在于,所述提供对原生控件类型的强类型封装中,具体将Element转成强类型控件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610385813.6A CN106095420A (zh) | 2016-06-03 | 2016-06-03 | 基于移动跨平台的抽象控件模型实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610385813.6A CN106095420A (zh) | 2016-06-03 | 2016-06-03 | 基于移动跨平台的抽象控件模型实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106095420A true CN106095420A (zh) | 2016-11-09 |
Family
ID=57447100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610385813.6A Pending CN106095420A (zh) | 2016-06-03 | 2016-06-03 | 基于移动跨平台的抽象控件模型实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095420A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021367A (zh) * | 2017-12-15 | 2018-05-11 | 广州赛意信息科技股份有限公司 | 一种基于元数据架构的ui开发系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080228679A1 (en) * | 2007-03-16 | 2008-09-18 | David Ward | Symbolic depth-first searches using control flow information for improved reachability analysis |
CN103677839A (zh) * | 2013-12-17 | 2014-03-26 | 深圳市迈桥科技有限公司 | 一种跨移动终端的ui控件的生成方法及装置 |
CN104407863A (zh) * | 2014-11-21 | 2015-03-11 | 用友软件股份有限公司 | 抽象控件模型编程装置和方法 |
-
2016
- 2016-06-03 CN CN201610385813.6A patent/CN106095420A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080228679A1 (en) * | 2007-03-16 | 2008-09-18 | David Ward | Symbolic depth-first searches using control flow information for improved reachability analysis |
CN103677839A (zh) * | 2013-12-17 | 2014-03-26 | 深圳市迈桥科技有限公司 | 一种跨移动终端的ui控件的生成方法及装置 |
CN104407863A (zh) * | 2014-11-21 | 2015-03-11 | 用友软件股份有限公司 | 抽象控件模型编程装置和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021367A (zh) * | 2017-12-15 | 2018-05-11 | 广州赛意信息科技股份有限公司 | 一种基于元数据架构的ui开发系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Charkaoui et al. | Cross-platform mobile development approaches | |
US20090313004A1 (en) | Platform-Independent Application Development Framework | |
CN104407863B (zh) | 抽象控件模型编程装置和方法 | |
CN108765158A (zh) | 一种基于区块链的智能合约引擎系统及其合约执行方法 | |
CN102741811A (zh) | 改善基于模板的JavaScript小部件的性能 | |
CN111061638B (zh) | 一种iOS系统调试的方法、装置及服务器 | |
CN102981855A (zh) | 基于模板的界面自动生成的方法及系统 | |
CN103383645A (zh) | 代码生成方法及系统 | |
CN103761087A (zh) | 一种移动应用程序跨平台开发方法及装置 | |
CN108228155A (zh) | EasyApp移动开发平台和开发方法 | |
US9817639B2 (en) | Computational design method and interface | |
Sabraoui et al. | Gui code generation for android applications using a mda approach | |
CN104050212A (zh) | 调用网络应用以利用本地设备性能的方法及系统 | |
Benouda et al. | MDA approach to automate code generation for mobile applications | |
CN110059456A (zh) | 代码保护方法、代码保护装置、存储介质与电子设备 | |
CN113918195A (zh) | 应用界面更新方法、装置、电子设备及可读存储介质 | |
CN102859489A (zh) | 可恢复的方法 | |
CN106250134B (zh) | 单一性语言的代码自动生成方法 | |
CN110045956A (zh) | 组件的配置方法、装置、设备及可读存储介质 | |
CN113064593A (zh) | 移动app动态化的方法、装置、计算机设备及存储介质 | |
Benouda et al. | Automatic code generation within MDA approach for cross-platform mobiles apps | |
CN103176838A (zh) | 兼容Android本机程序的方法及系统 | |
CN102999371B (zh) | 基于Lua脚本的人机界面开发方法及系统 | |
CN102707934B (zh) | 一种以脚本形式表示增值业务流程的实现方法和系统 | |
CN105630489A (zh) | 数据处理方法和数据处理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161109 |