CN104714830B - 基于原生开发语言实现跨平台应用开发的***及方法 - Google Patents
基于原生开发语言实现跨平台应用开发的***及方法 Download PDFInfo
- Publication number
- CN104714830B CN104714830B CN201510158035.2A CN201510158035A CN104714830B CN 104714830 B CN104714830 B CN 104714830B CN 201510158035 A CN201510158035 A CN 201510158035A CN 104714830 B CN104714830 B CN 104714830B
- Authority
- CN
- China
- Prior art keywords
- mobile solution
- mobile
- file
- primary
- client
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于原生开发语言实现跨平台应用开发的***及方法,其中包括图形化移动应用开发工具,用以进行移动应用的开发和移动应用的编译导出;移动应用发布平台,用以将移动应用向外发布;移动客户端,用以运行移动应用。采用该种结构的基于原生开发语言实现跨平台应用开发的***及方法,不仅降低了移动应用开发的复杂度、使移动应用开发简单高效,只需开发一套代码,就可以运行在多种移动平台、极大的提高了移动应用的开发效率、降低了代码维护的成本,为使用者带来最佳的用户体验,另外,本发明使还使用了增量更新技术,让移动应用更新更加方便快捷、节省更新需要的网络流量,具有更广泛的应用范围。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及企业移动应用技术领域,具体是指一种基于原生开发语言实现跨平台应用开发的***及方法。
背景技术
随着智能移动设备高速发展和普及,移动网络技术的不断突破,移动互联网已经深刻地影响了人们的生活方式,移动应用程序已经逐渐取代一些电脑的程序,甚至有部分人士已经完全脱离台式电脑,移动智能设备已经超越了传统的PC,成为最主要的上网方式。
现在,每台移动设备上运行着数以百计的移动应用,诸如交友、娱乐、购物、工作等很多简单的生活行为都可以逐渐通过移动设备上的各类应用得到满足。从移动市场下载安装各种移动应用已经为一种习惯,微信,微博等移动应用的下载和安装量已经达到的数亿的规模。
统计表明,在应用市场中,每天都有数以万计新应用上架,移动应用也成为了互联网时代下一大热点。
目前,移动应用开发主要有两种方式:第一种是使用原生技术开发。第二种是使用web技术开发。
使用原生技术开发是指,针对移动操作***使用其提供的开发语言和技术进行移动应用开发。目前,Apple的IOS操作***和Google的Android操作***占移动操作***95%以上的市场份额。在IOS移动操作***上开发原生移动需要使用IOS提供的开发工具Xcode和开发语言Object-c。在Android移动操作***上进行原生应用开发需要使用eclipse开发工具和Android开发语言。IOS和Android提供的各自的移动应用打包工具,应用开发完成后,需要使用各自的打包工具进行打包,然后发布到应用市场。使用原生开发可以获得最佳的性能和用户体验,更好的贴合操作***,最充分的使用操作***的能力。
使用web技术开发是指使用Html、Javscript、CSS语言进行移动应用开发。Web开发技术复杂度比较低,学习和使用相对比较简单。使用Web技术开发的移动应用可以部署在Web服务器上,通过移动设备上的浏览器或者通过使用WebView等组件进行访问。
使用原生技术开发移动应用主要不足之处在于:第一,技术复杂度高,针对不同的移动操作***需要使用不同的开发工具和开发语言,开发工具的使用方式和语言的技术细节以及操作***的特性都不一样,比如Object-c是属于c系列的语言,而Anroid是属于java***的开发语言,这极大的增加了开发人员的学习成本。第二,开发维护工作量大,一个移动应用需要针对不同操作***开发和测试,开发和维护的工作量成倍增加。
使用Web技术开发移动应用主要的不足之处在于:第一,开发的移动应用性能和用户体验存在问题。第二,不能使用移动设备提供的能力,如摄像头,定位等。
发明内容
本发明的目的是克服了上述现有技术的原生应用开发技术复杂度高、开发和维护工作量大的缺点,提供了一种能够实现于移动操作***、原生开发语言无关、开发简单、效率高、***架构简单、稳定可靠、使用维护方便快捷、应用范围广泛的基于原生开发语言实现跨平台应用开发的***及方法。
为了实现上述目的,本发明的基于原生开发语言实现跨平台应用开发的***及方法具有如下构成:
该基于原生开发语言实现跨平台应用开发的***,其主要特点是,所述的***包括:
图形化移动应用开发工具,用以进行移动应用的开发和移动应用的编译导出;
移动应用发布平台,用以将移动应用向外发布;
移动客户端,用以运行移动应用。
较佳地,所述的图形化移动应用开发工具包括:
移动应用项目管理模块,用以进行移动应用的创建、修改和删除;
HTML文件管理模块,用以进行HTML格式文件的创建、修改和删除;
Javascript文件管理模块,用以进行Javascript格式文件的创建、修改和删除;
CSS文件管理模块,用以进行CSS代码的录入、修改和保存;
移动应用编译引擎模块,用以在移动应用导出时对移动应用项目进行编译;
移动应用导出模块,用以将移动应用导出成移动应用部署包。
较佳地,所述的移动应用发布平台包括:
移动应用上传模块,用以基于Web将移动应用上传;
移动应用管理模块,用以对上传的移动应用进行管理;
移动应用发布模块,用以对外提供移动应用的下载渠道。
较佳地,所述的移动客户端包括:
更新引擎模块,用以从所述的移动应用发布平台下载移动应用到客户端;
Javscript引擎模块,用以解析、加载和运行Javascript代码;
CSS引擎模块,用以解析、加载CSS代码;
Bridge模块,用以进行Javascript代码和原生代码之间的通讯;
Widget管理器,用以加载和管理Widget;
UI模型模块,用以对移动应用的界面进行描述;
UI渲染引擎模块,用以根据UI模型,原生的UI控件,渲染出原生的UI界面。
本发明还涉及一种通过所述的***基于原生开发语言实现跨平台应用开发的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的图形化移动应用开发工具进行移动应用的开发;
(2)所述的图形化移动应用开发工具进行移动应用的编译导出;
(3)所述的移动应用发布平台将移动应用向外发布;
(4)所述的移动客户端从所述的移动应用发布平台上下载并运行移动应用。
较佳地,所述的图形化移动应用开发工具进行移动应用的开发,包括以下步骤:
(1-1)图形化移动应用开发工具读取控件提示配置文件后使用xml格式解析器对所述的提示配置文件进行解析并于内存中创建控件提示属性和接口提示模型;
(1-2)图形化移动应用开发工具读取控件编译配置文件后使用xml格式解析器对所述的编译配置文件进行解析生成控件编译模型;
(1-3)开发人员进行移动应用开发;
(1-4)图形化移动应用开发工具根据用户创建项目操作在磁盘上创建移动项目录结构;
(1-5)图形化移动应用开发工具根据用户创建文件创造在移动项目录中创建相应的文件。
较佳地,所述的图形化移动应用开发工具进行移动应用的编译导出,包括以下步骤:
(2-1)图形化移动应用开发工具根据用户导出操作请求获取待编译移动应用项目的存放目录;
(2-2)图形化移动应用开发工具创建临时目录以存放编译的中间产物;
(2-3)图形化移动应用开发工具遍历项目目录,在临时目录中创建相同的目录结构,并且把移动项目中除HTML文件和Css文件外的其余文件拷贝到对应的临时目录中;
(2-4)图形化移动应用开发工具对HTML文件和CSS文件进行编译操作;
(2-5)图形化移动应用开发工具对编译临时目录进行压缩生成可用于发布的移动应用发布文件。
较佳地,所述的移动应用发布平台将移动应用向外发布,包括以下步骤:
(3-1)用户访问所述的移动应用发布平台的移动应用上传界面;
(3-2)移动应用发布平台接收上传文件并在磁盘上保存上传文件;
(3-3)移动应用发布平台在数据库表中记录发布移动应用的信息。
较佳地,所述的移动客户端下载并运行移动应用,包括以下步骤:
(4-1)移动客户端从所述的移动应用发布平台下载移动应用文件;
(4-2)移动客户端对下载的移动应用文件进行解压至移动应用端应用目录;
(4-3)移动客户端解析CSS编译文件并在内存中形成CSS模型;
(4-4)移动客户端读取移动应用配置文件,从配置文件中获取移动应用的首页URL;
(4-5)移动客户端对首页URL进行转换,转换成移动客户端本地的文件路径;
(4-6)移动客户端根据首页文件路径读取移动客户端文件中的代码;
(4-7)移动客户端运行读取的文件中的代码,在Javascript引擎模块中形成界面控件模型树;
(4-8)移动客户端在Javascript引擎模块中把界面控件模型树通过JSON序列化成字符串并调用bridge通道,把序列化的字符串传递给原生渲染引擎;
(4-9)移动客户端对json字串符反序列化,在原生端形成界面控件模型树;
(4-10)移动客户端采用原生渲染引擎模块遍历控件模型树,依次创建原生控件;
(4-11)移动客户端采用原生渲染引擎模块调用客户端***接口,把渲染完成的整个原生控件实例界面添加到***界面上;
(4-12)移动客户端显示移动应用界面。
采用了该发明中的基于原生开发语言实现跨平台应用开发的***及方法,由于提供了基于HTML、Javascript、CSS的移动应用开发工具,通过该工具开发移动应用,在应用导出时对HTML、Javscript、CSS文件进行编译;然后由移动客户端下载和运行。移动客户端运行时先由Javascript引擎加载和运行Javascript代码,形成界面描述模型;再由原生渲染引擎创建由原生控件组成的界面。本方法不仅降低了移动应用开发的复杂度、使移动应用开发简单高效,只需开发一套代码,就可以运行在多种移动平台、极大的提高了移动应用的开发效率、降低了代码维护的成本。而且,移动应用在运行时完全生成原生UI控件,移动应用使用者操作的是由原生控件组成的功能页面,从而为使用者带来最佳的用户体验。另外,本发明使还使用了增量更新技术,让移动应用更新更加方便快捷、节省更新需要的网络流量,具有更广泛的应用范围。
附图说明
图1为本发明的基于原生开发语言实现跨平台应用开发的***的结构示意图。
图2为本发明的移动项目的项目目录结构示意图。
图3为本发明的移动应用的编译导出的流程图。
图4为本发明的移动应用在客户端运行的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
实现该利用移动应用原生开发语言实现跨平台应用开发的***,包括图形化移动应用开发工具,移动应用发布平台,和移动客户端。(图1)
图形化的移动应用开发工具提供移动应用的开发和移动应用的编译导出能力,主要包括移动应用项目管理模块、HTML文件管理、Javascript文件管理、CSS文件管理、移动应用编译引擎、移动应用导出模块。
所述移动应用管理模块提供移动应用的创建、修改和删除功能。通过移动应用项目创建功能可以创建移动应用项目目录结构。(图2)
所述HTML文件管理提供HTML格式文件创建、修改、删除的功能,并且提供HTML编辑器对HTML文件进行录入、修改和保存。
所述Javascript文件管理提供Javascript格式文件创建、修改、删除的功能,并且提供Javascript编辑器对Javascript文件进行录入、修改和保存。
所述CSS文件编辑器提供了CSS代码的录入、修改和保存功能。
所述移动应用编译引擎在移动应用导出时,对移动应用项目进行编译,把项目中的HTML文件和css文件编译成中间代码。
所述移动应用导出模块提供移动应用导出功能,把移动项目导出成可以移动应用部署包。
移动应用发布平台主要提供移动应用发布功能,在移动应用开发平台上开发的移动应用通过移动应用发布平台向外发布,包括移动应用上传模块、移动应用管理模块、移动应用发布模块。
所述移动应用上传模块提供基于Web的移动上传能力。
所述移动应用管理模块提供对上传的移动应用管理能力,包括应用版本管理,更新管理,发布管理。
所述移动应用发布模块对外提供移动应用的下载能力。
移动客户端是移动应用的运行容器,移动客户端为IOS和Android两个版本,两个版本具有相同的功能和模块,分别运行在IOS操作***和Android操作***上。移动客户端负责下载、解析、加载、运行移动应用。移动客户端包括移动应用更新引擎,Javscript引擎,CSS引擎、Bridge模块、Widget管理器、UI模型、UI渲染引擎。
所述更新引擎负责从发布平台下载移动应用到客户端。
所述Javscript引擎负责解析、加载和运行Javascript代码。
所述CSS引擎负责解析、加载CSS代码。
所述Bridge模块负责Javascript和原生代码之间的通讯。提供了Javascript调用原生代码和原生代码调用Javascript代码的通道。
所述Widget管理器负责加载和管理Widget模型。
所述UI模型负责对移动应用的界面进行描述。
所述UI渲染引擎负责根据UI模型,原生的UI控件,渲染出原生的UI界面。
实现该利用移动应用原生开发语言实现跨平台应用开发的方法,包括移动应用开发、移动应用导出、移动应用发布和移动应用运行四个操作步骤。
所述的移动应用开发操作包括以下处理步骤:
(1)用户启动开发工具。
(2)开发工具进行***初始化操作。
(3)***读取控件提示配置文件,使用xml格式解析器对文件进行解析,然后在内存中创建控件提示属性和接口提示模型。控件属性和接口提示模型用于在使用HTML文件编译器进行开发时,对输入的标签和javscript对象的属性和接口进行提示,提高代码录入的效率和速度。属性提示模型包括标签名称、属性、属性缺省值。接口提示模型包括对象类型,接口名称,参数名称。
(4)***读取控件编译配置文件,使用xml格式解析器对文件进行解析,解析后生控件编译模型。控件编译模型包括控件类型、控件名称、控件编译模板文件。控件编译模板文件是指编译控件所需要的velecity编译模板。Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅使用简单的模板语言(template language)来引用由java代码定义的对象。
(5)开发人员进行移动应用开发,其主要流程是创建移动项目,创建和编辑HMTL文件、javascript文件和CSS文件,导入图片等其它资源。
(6)***根据用户创建项目操作,在磁盘上创建移动项目录结构。
(7)***根据用户创建HTMl操作,移动项目录中创建HTML文件。
(8)***根据用户创建CSS文件操作,移动项目录中创建CSS文件。
(9)***根据用户创建Javascript操作,移动项目录中创建Javascript文件。
所述移动应用导出操作包括以下处理步骤:
(1)用户使用移动应用开发平台完成移动应用的开发,向开发平台提交应用导出操作;
(2)***接收用户导出操作请求,获取待编译移动应用项目的存放目录。
(3)***创建编译临时目录,用于存放编译的中间产物。
(4)***遍历项目目录,在临时目录中创建相同的目录结构,并且把移动项目中除HTML文件和CSS文件外的其余文件拷贝到对应的临时目录中。
(5)***对HTML文件进行编译操作。
(a)***遍历项目读取一个HTML文件。
(b)***使用HTML语法解析器,对HTML文件进行HTML语法解析,形成界面模型树。
(c)***对界面模型树进行遍历,依次把控件编译成相对应的目标代码,具体过程如下:
(i)***从界面模型树上获取一个控件模型,从控件模型中获取控件类型。
(ii)***根据类型,调用编译管理器接口,获取控件模型对应用的编译模板文件路径。
(iii)***读取控件编译模板文件,调用Velecity编译引擎的编译接口,把控件模型作为输入参数,获得编译的目标代码。
(iv)重复步骤i,编译完整棵模型树,获取HMTL文件完整的编译目标代码。
(d)***把目标代码保存成文件,拷贝到临时目录中。
(e)重复步骤a,直至编译完成个项目中的HTML文件。
(6)***对CSS文件进行编译操作。
(a)***遍历项目读取CSS文件。
(b)***使用CSS解析器,对CSS文件进行CSS语法解析,形成CSS模型。
(c)***对CSS模型进行JSON序列化,形成JSON字符串。
(d)***把JSON字符串保存成文件。
(e)重复步骤a,直至编译完成所有CSS文件
(7)***对编译临时目录进行压缩,生成可用于发布的移动应用发布文件。
所述移动应用发布操作包括以下处理步骤:
(a)用户通过浏览器访问发布平台上的移动应用上传页面,选择要上传的移动应用发布文件,点击上传按钮。
(b)发布平台接收上传文件,并在磁盘上保存上传文件。
(c)发布平台在数据库表中记录发布应用的信息,包括:应用名称、应用大小、应用版本。
(d)发布平台等待客户端下载移动应用。
所述移动应用运行操作包括以下处理步骤:
(1)移动客户端从发布服务器下载移动应用文件。
(2)移动客户端对下载的移动应用文件进行解压,解压到客户端应用目录。
(3)移动客户端初始化CSS引擎。
(a)移动客户端遍历加载应用目录中的CSS编译文件。
(b)移动客户端用JSON解析器,对CSS编译文件进行解析,在内存中形成CSS模型,CSS模型包括CSS类名、CSS属性。
(4)移动客户端读取移动应用配置文件,从配置文件中获取移动应用的首页URL。
(5)移动客户端对首页URL进行转换,转换成客户端本地的文件路径。
(6)移动客户端根据首页文件路径读取客户端文件中的代码。
(7)移动客户端调用Javascript引擎运行接口,运行读取的文件中的代码,在Javascript引擎中形成界面控件模型树。
(8)Javascript引擎把界面控件模型树通过JSON序列化成字符串。
(9)Javascript引擎调用bridge通道,把序列化的字符串传递给原生渲染引擎。
(10)移动客户端调用原生渲染引擎接口对json字串符反序列化,在原生端形成界面控件模型树。
(11)原生渲染引擎遍历控件模型树,依次创建原生控件。
(a)原生渲染引擎从控件树上获取一个控件模型对象。
(b)原生渲染引擎调用模型对象的接口,从模型中获取控件类型。
(c)原生渲染引擎根据控件类型,调用widget管理器接口,创建一个原生控件实例。
(d)原生渲染引擎调用控件模型对象接口,获取模型上的所有属性配置
(e)原生渲染引擎根据属性名称,依次调用原生控件实例对象接口把属性设置到原生控件实例对象上。
(f)原生渲染引擎根据控件模型中的CSS类名,调用CSS接引擎接口,从CSS引擎中获取CSS属性配置。
(g)原生渲染引擎根据CSS属性名称,依次调用原生控件实例接口把CSS属性设置到原生控件实例对象上。
(h)重复过程a,直至整个树上的控件模型都渲染完成
(12)原生渲染引擎调用客户端***接口,把渲染完成的整个原生控件实例界面添加到***界面上。
(13)移动客户端显示界面。
在实际运用中,本发明实施过程如下:
1)开发工具初始化,操作***调用Shell.Start()接口。
2)开发工具加载控件提示模型。提示模型管理器接口如下:
***调用PromptManager的load接口加载所有控件提示配置,调用parseFile接口对提示配置文件进行解析,最终形成一个Map结构,控件类型名称作为Map中的key,map中对应的value值是Prompt对象。
控件提示模型文件格式如下:
3)开发工具加载控件编译模型。提示模型管理器接口如下:
***调用PromptManager的load接口加载所有控件提示配置,调用parseFile接口对提示编译文件进行解析,最终形成一个Map结构,控件类型名称作为Map中的key,map中对应的value值是控件的编译模板文件。控件编译模板文件是基于VeleCity语法格式的文件,以<div>控件为例,其编译模板文件内容为:
4)开发人员在应用开发过程中,创建项目,创建HTML,Css,Javascript文件操作,都通过调用资源管理器接口完成,资源管理器接口实现如下:
开发人员创建移动应用时,***调用ResourceManager.createProject创建一个应用,开发人员创建HTML文件时,***调用ResouceManager.createHtmlFile创建文件。
5)移动项目开发完成后编译导出,导出管理器接口实现如下:
开发人员执行导出操作,***调用ExportManager的export接口,开始导出。调用createTmpDir接口创建临时目录,再调用copyResource接口,把项目资源copy到临时目录,调用compileHtml和compleCss接口对HTML文件和CSS文件进行编译。最后,调用zipFile接口对零时目录进行压缩打包。
6)HTML文件编译过程如下,首先调用HtmlAnalyzer的doanalyz接口进行分析,形成Control Tree,然后对ControlTree进行遍历,获取每一个cortal调用HtmlCompileManager的complie接口进行编译。
输入HTMl文件内容为:
<html>
<body>
<div height=”200”width=”200”></div>
</body>
</html>
编译后结果为:
New Emp.Panel({height:200,width:200});
7)CSS文件编译过程如下,首先调用CSSAnalyzer的doanalyz接口进行分析,形成CSSModel,然后对CSSModel进行Json序列化。
输入CSS文件内容为:
.MyDivCss
{color:blue;
background:red}
编译后结果为:
{MyDivCss:{color:blue,background:red}}
8)客户端运行后,下载过程如下:客户端调用下载管理器DownloadManager的download接口,从移动发布平台下载移动应用。再调用DeployManager的Deploy接口部署移动应用。
9)客户端调用ConfigManager的getEntryUrl接口从配置文件中获取移动入口页面的地址,再调用ConverManage的convertUrl接口转换为客户端本地地址。
10)客户端读取入口文件代码,然后调用JavascriptEngine的Eval接口执行,JavascriptEngine执行后,形javascript对象,然后调用JavascriptEngine调用javasript对象的toJson接口,把javascript对象序列化成json字符串。
11)JavascriptEngine调用Briger的toNative接口,把json字符串传递给原生渲染引擎。
12)原生渲染引擎接口定义如下:
客户端设备RdnerEnginer的pasre接口,对json字符串地反序列化,在原生端形成json模型,然后调用render接口,对json模型进行原生渲染。
以输入的javascript代码:
New Panel({width:200,height:300})
实际运行的原生代码为:
LinerLayout l=New LinerLayout();
l.setLayoutParams(new LinerLayout.LayoutParams(200,300));
13)客户端调用setContent接口,把渲染的界面再客户端显示。
采用了该发明中的基于原生开发语言实现跨平台应用开发的***及方法,由于提供了基于HTML、Javascript、Css的移动应用开发工具,通过该工具开发移动应用,在应用导出时对HTML、Javscript、Css文件进行编译;然后由移动客户端下载和运行。移动客户端运行时先由Javascript引擎加载和运行Javascript代码,形成界面描述模型;再由原生渲染引擎创建由原生控件组成的界面。本方法不仅降低了移动应用开发的复杂度、使移动应用开发简单高效,只需开发一套代码,就可以运行在多种移动平台、极大的提高了移动应用的开发效率、降低了代码维护的成本。而且,移动应用在运行时完全生成原生UI控件,移动应用使用者操作的是由原生控件组成的功能页面,从而为使用者带来最佳的用户体验。另外,本发明使还使用了增量更新技术,让移动应用更新更加方便快捷、节省更新需要的网络流量,具有更广泛的应用范围。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (8)
1.一种基于原生开发语言实现跨平台应用开发的***,其特征在于,所述的***包括:
图形化移动应用开发工具,用以进行移动应用的开发和移动应用的编译导出,所述的移动应用的开发包括以下步骤:
(1-1)图形化移动应用开发工具读取控件提示配置文件后使用xml格式解析器对所述的提示配置文件进行解析并于内存中创建控件提示属性和接口提示模型;
(1-2)图形化移动应用开发工具读取控件编译配置文件后使用xml格式解析器对所述的编译配置文件进行解析生成控件编译模型;
(1-3)开发人员进行移动应用开发;
(1-4)图形化移动应用开发工具根据用户创建项目操作在磁盘上创建移动项目录结构;
(1-5)图形化移动应用开发工具根据用户创建文件创造在移动项目录中创建相应的文件;
移动应用发布平台,用以将移动应用向外发布;
移动客户端,用以运行移动应用。
2.根据权利要求1所述的基于原生开发语言实现跨平台应用开发的***,其特征在于,所述的图形化移动应用开发工具包括:
移动应用项目管理模块,用以进行移动应用的创建、修改和删除;
HTML文件管理模块,用以进行HTML格式文件的创建、修改和删除;
Javascript文件管理模块,用以进行Javascript格式文件的创建、修改和删除;
CSS文件管理模块,用以进行CSS代码的录入、修改和保存;
移动应用编译引擎模块,用以在移动应用导出时对移动应用项目进行编译;
移动应用导出模块,用以将移动应用导出成移动应用部署包。
3.根据权利要求1所述的基于原生开发语言实现跨平台应用开发的***,其特征在于,所述的移动应用发布平台包括:
移动应用上传模块,用以基于Web将移动应用上传;
移动应用管理模块,用以对上传的移动应用进行管理;
移动应用发布模块,用以对外提供移动应用的下载渠道。
4.根据权利要求1所述的基于原生开发语言实现跨平台应用开发的***,其特征在于,所述的移动客户端包括:
更新引擎模块,用以从所述的移动应用发布平台下载移动应用到客户端;
Java script引擎模块,用以解析、加载和运行Javascript代码;
CSS引擎模块,用以解析、加载CSS代码;
Bridge模块,用以进行Javascript代码和原生代码之间的通讯;
Widget管理器,用以加载和管理Widget;
UI模型模块,用以对移动应用的界面进行描述;
UI渲染引擎模块,用以根据UI模型,原生的UI控件,渲染出原生的UI界面。
5.一种通过权利要求1至4中任一项所述的***基于原生开发语言实现跨平台应用开发的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的图形化移动应用开发工具进行移动应用的开发,包括以下步骤:
(1-1)图形化移动应用开发工具读取控件提示配置文件后使用xml格式解析器对所述的提示配置文件进行解析并于内存中创建控件提示属性和接口提示模型;
(1-2)图形化移动应用开发工具读取控件编译配置文件后使用xml格式解析器对所述的编译配置文件进行解析生成控件编译模型;
(1-3)开发人员进行移动应用开发;
(1-4)图形化移动应用开发工具根据用户创建项目操作在磁盘上创建移动项目录结构;
(1-5)图形化移动应用开发工具根据用户创建文件创造在移动项目录中创建相应的文件;
(2)所述的图形化移动应用开发工具进行移动应用的编译导出;
(3)所述的移动应用发布平台将移动应用向外发布;
(4)所述的移动客户端从所述的移动应用发布平台上下载并运行移动应用。
6.根据权利要求5所述的基于原生开发语言实现跨平台应用开发的方法,其特征在于,所述的图形化移动应用开发工具进行移动应用的编译导出,包括以下步骤:
(2-1)图形化移动应用开发工具根据用户导出操作请求获取待编译移动应用项目的存放目录;
(2-2)图形化移动应用开发工具创建临时目录以存放编译的中间产物;
(2-3)图形化移动应用开发工具遍历项目目录,在临时目录中创建相同的目录结构,并且把移动项目中除HTML文件和Css文件外的其余文件拷贝到对应的临时目录中;
(2-4)图形化移动应用开发工具对HTML文件和CSS文件进行编译操作;
(2-5)图形化移动应用开发工具对编译临时目录进行压缩生成可用于发布的移动应用发布文件。
7.根据权利要求5所述的基于原生开发语言实现跨平台应用开发的方法,其特征在于,所述的移动应用发布平台将移动应用向外发布,包括以下步骤:
(3-1)用户访问所述的移动应用发布平台的移动应用上传界面;
(3-2)移动应用发布平台接收上传文件并在磁盘上保存上传文件;
(3-3)移动应用发布平台在数据库表中记录发布移动应用的信息。
8.根据权利要求5所述的基于原生开发语言实现跨平台应用开发的方法,其特征在于,所述的移动客户端下载并运行移动应用,包括以下步骤:
(4-1)移动客户端从所述的移动应用发布平台下载移动应用文件;
(4-2)移动客户端对下载的移动应用文件进行解压至移动应用端应用目录;
(4-3)移动客户端解析CSS编译文件并在内存中形成CSS模型;
(4-4)移动客户端读取移动应用配置文件,从配置文件中获取移动应用的首页URL;
(4-5)移动客户端对首页URL进行转换,转换成移动客户端本地的文件路径;
(4-6)移动客户端根据首页文件路径读取移动客户端文件中的代码;
(4-7)移动客户端运行读取的文件中的代码,在Javascript引擎模块中形成界面控件模型树;
(4-8)移动客户端在Javascript引擎模块中把界面控件模型树通过JSON序列化成字符串并调用bridge通道,把序列化的字符串传递给原生渲染引擎;
(4-9)移动客户端对json字符串反序列化,在原生端形成界面控件模型树;
(4-10)移动客户端采用原生渲染引擎模块遍历控件模型树,依次创建原生控件;
(4-11)移动客户端采用原生渲染引擎模块调用客户端***接口,把渲染完成的整个原生控件实例界面添加到***界面上;
(4-12)移动客户端显示移动应用界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510158035.2A CN104714830B (zh) | 2015-04-03 | 2015-04-03 | 基于原生开发语言实现跨平台应用开发的***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510158035.2A CN104714830B (zh) | 2015-04-03 | 2015-04-03 | 基于原生开发语言实现跨平台应用开发的***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104714830A CN104714830A (zh) | 2015-06-17 |
CN104714830B true CN104714830B (zh) | 2018-03-30 |
Family
ID=53414200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510158035.2A Active CN104714830B (zh) | 2015-04-03 | 2015-04-03 | 基于原生开发语言实现跨平台应用开发的***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104714830B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786513A (zh) * | 2016-02-29 | 2016-07-20 | 四川长虹电器股份有限公司 | 基于Html5的混合移动应用开发方法 |
CN107451162B (zh) * | 2016-06-01 | 2020-12-18 | 阿里巴巴(中国)有限公司 | 网络资源访问设备、混合设备及方法 |
CN107526579A (zh) * | 2016-06-22 | 2017-12-29 | 中兴通讯股份有限公司 | 一种应用程序页面开发管理方法及装置 |
CN106227517B (zh) * | 2016-07-13 | 2019-09-06 | 北京智网易联科技有限公司 | 原生移动app软件自动生成方法和设备 |
CN106407679B (zh) * | 2016-09-13 | 2019-03-26 | 上海市徐汇区中心医院 | 移动互联跨平台跨设备远程诊疗*** |
CN106383723B (zh) * | 2016-10-21 | 2019-12-31 | 浪潮通用软件有限公司 | 一种动态修改用户已安装移动App程序的方法 |
CN106599216A (zh) * | 2016-11-30 | 2017-04-26 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种用于计算机辅助训练课件发布*** |
CN108614443B (zh) * | 2016-12-12 | 2020-09-22 | 中国航空工业集团公司西安航空计算技术研究所 | Phm***模型开发和验证平台设计方法 |
CN106445564B (zh) * | 2016-12-23 | 2019-08-20 | 携程旅游网络技术(上海)有限公司 | 用于同平台具有不同编程语言项目的混合引用方法及*** |
TWI694377B (zh) | 2017-03-17 | 2020-05-21 | 葉振忠 | 行動原生應用程式開發平台 |
CN106980504B (zh) | 2017-03-28 | 2022-07-01 | 腾讯科技(深圳)有限公司 | 一种应用程序开发方法及其工具、设备 |
CN106990966A (zh) * | 2017-03-31 | 2017-07-28 | 中国科学技术大学苏州研究院 | 基于前端框架的移动端跨平台应用开发框架及开发方法 |
CN107193565B (zh) * | 2017-05-22 | 2021-02-26 | 北京思序软件有限公司 | 跨移动端开发原生app的方法 |
CN107423823B (zh) * | 2017-08-11 | 2020-11-10 | 成都优易数据有限公司 | 一种基于r语言的机器学***台架构设计方法 |
CN107749894A (zh) * | 2017-11-09 | 2018-03-02 | 吴章义 | 一种安全、简单、智能的物联网*** |
CN108647028B (zh) * | 2018-05-09 | 2024-02-09 | 广州腾讯科技有限公司 | 应用程序信息处理方法和装置 |
CN110580147B (zh) * | 2018-06-07 | 2022-07-05 | 阿里巴巴集团控股有限公司 | 一种应用程序的开发方法和装置 |
CN110580146B (zh) * | 2018-06-07 | 2023-05-23 | 北京怡合春天科技有限公司 | 一种基于eros的混合应用解决*** |
CN109117174B (zh) * | 2018-07-04 | 2022-03-29 | 北京德惠众合信息技术有限公司 | 兼容不同引擎的前端页面的***及方法 |
CN109271148B (zh) * | 2018-09-29 | 2022-03-01 | 中国建设银行股份有限公司 | 一种移动应用生成方法及装置 |
CN109814865B (zh) * | 2019-01-18 | 2022-06-03 | 四川长虹电器股份有限公司 | 一种基于json数据格式的移动应用页面生成方法 |
CN113360200A (zh) * | 2020-03-05 | 2021-09-07 | 北京沃东天骏信息技术有限公司 | 一种目标程序植入页面运行的方法和装置 |
CN111740948B (zh) * | 2020-05-12 | 2023-04-07 | 北京沃东天骏信息技术有限公司 | 数据包发布方法、动态更新方法、装置、设备及介质 |
CN112364269B (zh) * | 2020-11-24 | 2023-08-22 | 中国电子科技集团公司第十五研究所 | 一种基于URL创建WebApp图形应用的方法 |
CN112799665B (zh) * | 2021-01-27 | 2022-12-13 | 视若飞信息科技(上海)有限公司 | 一种以WebUI的方式构建App功能界面的方法 |
CN115129325B (zh) * | 2022-06-29 | 2023-05-23 | 北京五八信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019538A (zh) * | 2012-11-19 | 2013-04-03 | 北京奇虎科技有限公司 | 一种在终端中实现应用界面的方法和*** |
CN103942225A (zh) * | 2013-01-23 | 2014-07-23 | 阿里巴巴集团控股有限公司 | 一种混合型应用客户端的资源调用方法、客户端及*** |
CN104267957A (zh) * | 2014-09-29 | 2015-01-07 | 浪潮通信信息***有限公司 | 一种移动应用统一服务框架*** |
CN104407863A (zh) * | 2014-11-21 | 2015-03-11 | 用友软件股份有限公司 | 抽象控件模型编程装置和方法 |
-
2015
- 2015-04-03 CN CN201510158035.2A patent/CN104714830B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019538A (zh) * | 2012-11-19 | 2013-04-03 | 北京奇虎科技有限公司 | 一种在终端中实现应用界面的方法和*** |
CN103942225A (zh) * | 2013-01-23 | 2014-07-23 | 阿里巴巴集团控股有限公司 | 一种混合型应用客户端的资源调用方法、客户端及*** |
CN104267957A (zh) * | 2014-09-29 | 2015-01-07 | 浪潮通信信息***有限公司 | 一种移动应用统一服务框架*** |
CN104407863A (zh) * | 2014-11-21 | 2015-03-11 | 用友软件股份有限公司 | 抽象控件模型编程装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104714830A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714830B (zh) | 基于原生开发语言实现跨平台应用开发的***及方法 | |
US8850416B1 (en) | System and method for creating target byte code | |
US7707547B2 (en) | System and method for creating target byte code | |
Boduch | React and react native | |
CN101714133A (zh) | 一种基于web的数学公式编辑***及方法 | |
US9646103B2 (en) | Client-side template engine and method for constructing a nested DOM module for a website | |
CN113031932B (zh) | 项目开发方法、装置、电子设备及存储介质 | |
WO2016005885A2 (en) | Asynchronous initialization of document object model (dom) modules | |
CN113553035A (zh) | 一种通用的前端ui组件库的设计和构建方法 | |
CN103176778A (zh) | 网页开发方法和装置 | |
Saternos | Client-Server Web Apps with JavaScript and Java: Rich, Scalable, and RESTful | |
WO2016005884A2 (en) | Javascript-based, client-side template driver system | |
Kazoun et al. | Programming Flex 2: The Comprehensive Guide to Creating Rich Internet Applications with Adobe Flex | |
Moiseev et al. | Angular Development with TypeScript | |
Kienle et al. | Evolution of web systems | |
US20160012023A1 (en) | Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules | |
Shute | Advanced JavaScript: Speed up web development with the powerful features and benefits of JavaScript | |
CN101303663A (zh) | 一种数字机顶盒软件开发模拟测试方法 | |
Frisbie | Angular 2 Cookbook | |
Hilton et al. | Play for Scala: Covers Play 2 | |
Radford | Learning Web Development with Bootstrap and AngularJS | |
Jobsen | Less Web Development Essentials | |
Frasincar | Hypermedia presentation generation for semantic web information systems | |
Karlík | Blogging platform utilizing Kentico Cloud and Jekyll static site generator | |
Musto et al. | Transforming object-oriented model to a web interface using XSLT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |