CN109814865B - 一种基于json数据格式的移动应用页面生成方法 - Google Patents
一种基于json数据格式的移动应用页面生成方法 Download PDFInfo
- Publication number
- CN109814865B CN109814865B CN201910090080.7A CN201910090080A CN109814865B CN 109814865 B CN109814865 B CN 109814865B CN 201910090080 A CN201910090080 A CN 201910090080A CN 109814865 B CN109814865 B CN 109814865B
- Authority
- CN
- China
- Prior art keywords
- json
- page
- mobile application
- development
- json file
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于json数据格式的移动应用页面生成方法,包括以下步骤:A.对待开发的移动应用页面进行划分,生成描述性.json文件;B.对.json文件进行引擎解析,构建映射关系;C.由iOS或Android平台本地原生代码实现对象开发。本发明的方法,针对移动应用开发中代码复用性低、开发成本高的问题,提出了一种json格式的开发模型框架jsonU,对大部分的移动应用做了一个抽象建模,将页面分成更为细小的粒度,达到一次开发多处使用,继而可以得到较高的代码复用,提升了开发效率。
Description
技术领域
本发明涉及计算机软件技术领域,特别涉及一种基于json数据格式的移动应用页面生成方法。
背景技术
随着移动互联网技术的快速发展,手机的使用度也越来越普及,人们从传统的pc端方式,倾向于移动手机端操作方式。常规的移动应用开发,需要在iOS端和Android端分别开发两套代码,并且代码的复用性低,基本是针对每个移动应用做定制开发,当一个移动应用开发完成后,后续待开发移动应用能复用前一个移动应用的代码很低,也就说对于每次App开发都需要较高的开发成本以及维护成本。而在App开发中占比最大的工作在对页面的开发过程上。
因此如何快速的开发手机应用成为各大公司亟需解决的问题。如今很多企业也逐渐意识到这个问题,行业里也有为了解决这一问题应声而出几个开源框架,比如谷歌公司最新提出的Flutter框架,还有前几年比较流行的hybrid混合开发模式,但是这些都存在一定的不合理性。Flutter框架并没有脱离传统编码模式,开发过程需要学习新的语言。混合开发模式采用HTML5技术+原生载入网页开发模式,但网页在内容展现以及人机交互方面并没有原生的应用那么顺畅完善。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种基于json数据格式的移动应用页面生成方法,针对移动应用开发中代码复用性低、开发成本高的问题,提出了一种json格式的开发模型框架jsonU,对大部分的移动应用做了一个抽象建模,将页面分成更为细小的粒度,达到一次开发多处使用,继而可以得到较高的代码复用,提升了开发效率。
为了达到上述的技术效果,本发明采取以下技术方案:
一种基于json数据格式的移动应用页面生成方法,包括以下步骤:
A.对待开发的移动应用页面进行划分,生成描述性.json文件;
B.对.json文件进行引擎解析,构建映射关系;
C.由iOS或Android平台本地原生代码实现对象开发。
进一步地,所述步骤A具体为:将待开发的移动应用页面线性划分成不同类型的块,如页面、交互(动作)、数据等类型,然后使用json语言进行结构性定义,形成.json文件;
具体的,在本步骤中该需要将移动应用的页面做一个线性划分,页面的划分对后续的工作起关键性作用,需要iOS、Android两端开发人员共同决定,页面被划分成的块也称之为field(域),也就说每个页面由多个域构成,这一结构性描述过程类似于网页的.html页面,.html页面就类似于.json文件,而.html页面中的使用XML语言形成的由“<”、“>”组成的标签对,类似于使用json语言形成的键值对。
进一步地,所述步骤B具体为:当移动应用页面需要被载入生成时,由底层的引擎对.json文件进行解析,将.json文件与上层本地原生代码进行映射,实现页面的生成过程;
其中,底层的引擎选用使用C++语言开发的,由于iOS端的Objective-c语言本身支持C++混合开发,Android端Java语言的JNI特性也可以支持C++的调用,因此两端只需要共用一套代码,差异化开发只在引擎映射后的对页面的生成、动作的执行、数据的请求上,从而实现减轻开发人员的工作量的效果。
进一步地,所述底层的引擎对.json文件进行解析时具体将.json文件中的每个块封装成一个个json对象,使用特有的生成机制(与引擎相关),并将这些json对象与本地原生代码关联起来,形成映射关系。
进一步地,所述步骤B具体为:
B1.在底层的引擎中定义一种名为page的C++对象对.json文件进行封装;
B2.在底层的引擎中定义一种名为field的C++对象对步骤A划分出的每个块进行封装,其中,每个所述块均是由多个属性值组成;
B3.指定块中某个属性值作为键key,其表示的field对象作为值value,将块和field对象采用键值对key-value的形式关联起来,并使用一张哈希表将每个page对象中的所有field对象进行存储。
进一步地,所述步骤C具体是:
C1.根据所述步骤B中生成的映射关系,使用iOS或Android平台本地原生代码依次读取存储在page对象中的哈希表中每个field对象;
C2.根据field对象生成不同平台原生代码的视图控件,在iOS平台是生成UIView控件,在Android平台是生成View控件;
C3.最后将每个视图对象加入至页面中即实现页面渲染。
本地原生代码主要是在iOS、Android两个平台上,需要开发人员分别在各自的平台上使用特有的语言对上一步骤中封装好的json对象进行解析、开发实现,这个步骤完全是本地原生代码进行开发。
本发明与现有技术相比,具有以下的有益效果:
本发明的基于json数据格式的移动应用页面生成方法,针对移动应用开发中代码复用性低、开发成本高的问题,首先将移动应用分割成几个部分,并使用json语言进行描述生成.json文件,然后使用解析引擎对.json文件进行解析映射到本地的原生代码,引擎使用C++语言开发,由于iOS端的Objective-c语言本身支持C++混合开发,Android端Java语言的JNI特性也可以支持C++的调用,因此两端只需要共用一套代码,差异化开发只在引擎映射后的对页面的生成、动作的执行、数据的请求上,可大大减轻开发人员的工作量;
同时,一般移动应用中都存在类似的页面布局,比如多个页面都有输入框field,本发明的方法中只需对这个输入框做一次开发,后续的页面只需在.json文件中声明即可,不用再次开发,由于对页面进行了结构性的划分,将页面分成更为细小的粒度,达到一次开发多处使用,继而可以得到较高的代码复用,也就提升了开发效率。
附图说明
图1是本发明的基于json数据格式的移动应用页面生成方法的流程示意图。
图2是本发明的一个实施例中待开发页面的示意图。
图3是本发明的一个实施例中页面区域划分示意图。
图4是本发明的一个实施例中生成的.json描述文件的示意图。
图5是本发明的一个实施例中域实现伪代码的示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
本发明的技术提供了一种基于json数据格式的移动应用页面生成方式。具体是将传统的MVC开发模式(MVC全名是Model View Controller,是模型model-视图view-控制器controller的缩写)中的关于视图view页面生成的部分,使用json文件+解析引擎+本地原生代码实现,三个部分进行实现。
如图1所示,首先将待开发的移动应用页面线性划分成不同类型的块,然后使用json语言进行结构性定义,形成.json文件。当页面需要被载入生成时,由底层的引擎对.json文件进行解析,将.json文件与上层本地原生代码进行映射,从而实现页面的生成过程。
一般移动应用中都存在类似的页面布局,比如多个页面都有输入框field,那么只需对这个输入框做一次开发,后续的页面只需在.json文件中声明即可,不用再次开发。由于对页面进行了结构性的划分,将页面分成更为细小的粒度,达到一次开发多处使用,继而可以得到较高的代码复用,也就提升了开发效率。
具体的,本实施例中,以一种基于json数据格式的手机移动应用页面生成方式对本技术方案作详细说明。
本实施例中,有如图2所示的移动应用页面待开发,首先需要将待开发页面线性划分成多个块,划分纯粹是从物理层面进行,并且每个块之间需要无缝连接。这一步骤可以理解成将一张纸水平剪成好几个部分,每个部分就是块。本实施例中,划分好的块具体如图3所示,本实施例中,具体将页面划分成了5个块。
然后,对每个块使用json语言进行描述,形成.json文件,本实施例中,描述采用属性值的方式进行,例如我们现在对块3进行描述,形成的描述性json文件如图4所示,其中,由“,”隔开的每一行以“:”组成的键值对就是属性值。
最后如图5所示,将图4中形成的块封装成field对象,用本地原生代码依次读取其中的属性值,根据属性值对所创建的视图控件对象进行设置,再使用伪代码对这过程进行说明。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (2)
1.一种基于json数据格式的移动应用页面生成方法,其特征在于,包括以下步骤:
A.对待开发的移动应用页面进行划分,生成描述性.json文件;
B.对.json文件进行引擎解析,构建映射关系;
C.由iOS或Android平台本地原生代码实现对象开发;
所述步骤A具体为:将待开发的移动应用页面线性划分成不同类型的块,然后使用json语言进行结构性定义,形成.json文件;
所述步骤B具体为:当移动应用页面需要被载入生成时,由底层的引擎对.json文件进行解析,将.json文件与上层本地原生代码进行映射,实现页面的生成过程;所述底层的引擎对.json文件进行解析时具体将.json文件中的每个块封装成一个个json对象,并将这些json对象与本地原生代码关联起来,形成映射关系;所述步骤B具体为:
B1.在底层的引擎中定义一种名为page的C++对象对.json文件进行封装;
B2.在底层的引擎中定义一种名为field的C++对象对步骤A划分出的每个块进行封装,其中,每个所述块均是由多个属性值组成;
B3.指定块中某个属性值作为键key,其表示的field对象作为值value,将块和field对象采用键值对key-value的形式关联起来,并使用一张哈希表将每个page对象中的所有field对象进行存储。
2.根据权利要求1所述的一种基于json数据格式的移动应用页面生成方法,其特征在于,所述步骤C具体是:
C1.根据所述步骤B中生成的映射关系,使用iOS或Android平台本地原生代码依次读取存储在page对象中的哈希表中每个field对象;
C2.根据field对象生成不同平台原生代码的视图控件,在iOS平台是生成UIView控件,在Android平台是生成View控件;
C3.最后将每个视图对象加入至页面中即实现页面渲染。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910090080.7A CN109814865B (zh) | 2019-01-18 | 2019-01-18 | 一种基于json数据格式的移动应用页面生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910090080.7A CN109814865B (zh) | 2019-01-18 | 2019-01-18 | 一种基于json数据格式的移动应用页面生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814865A CN109814865A (zh) | 2019-05-28 |
CN109814865B true CN109814865B (zh) | 2022-06-03 |
Family
ID=66605951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910090080.7A Active CN109814865B (zh) | 2019-01-18 | 2019-01-18 | 一种基于json数据格式的移动应用页面生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814865B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275996B (zh) * | 2019-06-17 | 2021-03-02 | 北京亚鸿世纪科技发展有限公司 | 数据可视化开发为内容开发提供页面框架的装置及方法 |
CN110704518B (zh) * | 2019-08-26 | 2022-11-08 | 苏宁云计算有限公司 | 基于Flink引擎的业务数据处理方法及装置 |
CN110806915A (zh) * | 2019-11-01 | 2020-02-18 | 广州华多网络科技有限公司 | 一种专题页面处理方法及客户端 |
CN111008007B (zh) * | 2019-11-06 | 2023-03-28 | 贝壳技术有限公司 | 组件开发方法、系统、存储介质及处理器 |
CN113094043A (zh) * | 2019-12-23 | 2021-07-09 | 北京神州泰岳软件股份有限公司 | 一种页面布局方法、装置和页面开发平台 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714830A (zh) * | 2015-04-03 | 2015-06-17 | 普元信息技术股份有限公司 | 基于原生开发语言实现跨平台应用开发的系统及方法 |
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0513185D0 (en) * | 2005-06-30 | 2005-08-03 | Ibm | A method system and software tool for emulating a portal application |
CN105574049B (zh) * | 2014-10-30 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 移动应用的页面处理方法、装置和系统 |
CN106293311B (zh) * | 2015-05-26 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 基于移动应用的页面显示方法、客户端、服务器及平台 |
US10284418B2 (en) * | 2016-07-25 | 2019-05-07 | American Megatrends, Inc. | Network switch management via embedded management controller using management information base (MIB) to JSON parser |
CN108304172B (zh) * | 2017-01-13 | 2021-10-08 | 北京畅游天下网络技术有限公司 | 一种web开发方法及web开发引擎 |
CN108255485B (zh) * | 2017-09-22 | 2021-10-29 | 阿里巴巴(中国)有限公司 | 页面搭建方法、设备及电子设备 |
CN108446116B (zh) * | 2018-02-26 | 2021-10-08 | 平安普惠企业管理有限公司 | 应用程序页面的生成方法、装置、计算机设备和存储介质 |
CN108566559A (zh) * | 2018-04-11 | 2018-09-21 | 上海百事灵多媒体科技有限公司 | 一种epg可视化页面的生成方法 |
CN109062563B (zh) * | 2018-08-01 | 2022-06-07 | 北京百度网讯科技有限公司 | 用于生成页面的方法和装置 |
-
2019
- 2019-01-18 CN CN201910090080.7A patent/CN109814865B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN104714830A (zh) * | 2015-04-03 | 2015-06-17 | 普元信息技术股份有限公司 | 基于原生开发语言实现跨平台应用开发的系统及方法 |
Non-Patent Citations (2)
Title |
---|
JSON解析 实现界面 数据分离;Penglimin;《https://www.cnblogs.com/penglimin/p/3825041.html》;20140704;1-5页 * |
Using JSON for data exchanging in web service applications;Dunlu PENG 等;《Using JSON for data exchanging in web service applications》;20111231;第7卷(第16期);第5883-5890页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109814865A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814865B (zh) | 一种基于json数据格式的移动应用页面生成方法 | |
CN109388766B (zh) | 页面加载的方法和装置 | |
US20160098250A1 (en) | Application prototyping tool | |
WO2019233293A1 (zh) | 一种应用程序的开发方法和装置 | |
US20150286739A1 (en) | Html5-protocol-based webpage presentation method and device | |
CN105824900A (zh) | 一种基于react-native的页面展示系统 | |
CN113031932B (zh) | 项目开发方法、装置、电子设备及存储介质 | |
CN110389755B (zh) | 代码处理方法及装置、电子设备和计算机可读存储介质 | |
CN113064593B (zh) | 移动app动态化的方法、装置、计算机设备及存储介质 | |
TW201504947A (zh) | 一種跨平臺轉換應用代碼的方法及裝置 | |
CN104750472A (zh) | 一种终端应用的资源包管理方法和装置 | |
CN108170430B (zh) | 一种界面展示的方法及系统 | |
WO2018001041A1 (zh) | 接口实现方法、装置、机顶盒及存储介质 | |
WO2023123089A1 (zh) | 内容管理系统、静态页面的管理方法、装置及存储介质 | |
CN109002292B (zh) | 一种基于网页弹出层的弹框实现方法及系统 | |
CN102637290B (zh) | 一种基于浏览器的作业编辑方法及作业系统 | |
CN112328241B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN111708519B (zh) | 一种业务组件的处理方法、装置、设备和存储介质 | |
US20180011822A1 (en) | Apparatus and method for outputting web content | |
CN112732252A (zh) | 一种动态生成ui的方法、装置和电子设备 | |
CN112817595A (zh) | 界面渲染方法、装置、存储介质及电子设备 | |
CN110716746B (zh) | 将rn样式代码转换为小程序样式代码的方法及装置 | |
CN116737200A (zh) | 一种应用更新方法以及装置 | |
CN105335230A (zh) | 一种服务处理方法及装置 | |
CN116595284B (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 |