首页 / 专利库 / 人工智能 / 语音用户界面 / 应用程序开发装置

应用程序开发装置

阅读:494发布:2020-05-12

专利汇可以提供应用程序开发装置专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供一种应用程序开发装置,包括:视图载体页、业务层、 中间层 、组件 接口 层和热更新平台;组件接口层包括原生方法组件和 应用程序编程接口 API;原生方法组件和应用程序编程接口API分别用于实现应用程序的不同业务功能;中间层与视图载体页、业务层、组件接口层和热更新平台别分连接,用于解耦业务层和组件接口层,业务层用于根据中间层的业务代码调用组件接口层中的接口或组件;视图载体页用于承载应用程序的业务功能,热更新平台用于将业务层引用的代码进行编译处理。提供了一套清晰可用的应用程序的开发装置,将业务层与Native组件层松散耦合,业务扩展灵活,不依赖发版。,下面是应用程序开发装置专利的具体信息内容。

1.一种应用程序开发装置,其特征在于,包括:
视图载体页、业务层、中间层、组件接口层和热更新平台;所述组件接口层包括原生方法组件和应用程序编程接口API;
所述原生方法组件和应用程序编程接口API分别用于实现应用程序的不同业务功能;
所述中间层与所述视图载体页、所述业务层、所述组件接口层和所述热更新平台别分连接,所述中间层连接在业务层和组件接口层之间,用于抹平不同系统调用组件接口层的差异,并用于解耦所述业务层和所述组件接口层,
所述业务层用于根据所述中间层的业务代码调用所述组件接口层中的接口或组件;
所述视图载体页用于承载应用程序的业务功能,所述热更新平台用于将所述业务层引用的代码进行编译处理;
所述中间层包括组件路由和API路由;所述组件路由用于调用所述原生方法组件;所述API路由用于调用所述API;
其中,所述热更新平台包括资源管理系统、数据接口层和更新管理层;
所述资源管理系统用于将所述业务层的代码进行编译得到编译文件,并写入数据缓存中心;
所述数据接口层用于根据编译信息获取存储在所述数据缓存中心的所述编译文件,并将所述编译文件发送至所述更新管理层;
所述更新管理层将所述编译文件进行存储,并在接收到访问请求时进行展示。
2.根据权利要求1所述的装置,其特征在于,所述组件接口层包括以下至少一个业务组件:
支付组件、语音组件、弹窗组件、单选选择器、多选无联动选择器和登录组件。
3.根据权利要求2所述的装置,其特征在于,所述业务层具体用于:
渲染视图;串联业务组件;加载用户界面样式;服务器API接口调用和数据处理
4.根据权利要求2所述的装置,其特征在于,所述视图载体页包括至少一个业务的载体页。

说明书全文

应用程序开发装置

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种应用程序开发装置。

背景技术

[0002] 在当前的手机客户端领域,无论是iOS还是Android,用户要获得应用程序的功能(基于web的功能除外,在此主要针对基于native的功能更新)的更新,必须要从应用市场下载新的安装包到手机上。由于应用市场上传更新包需要审核,审核时间由应用市场提供商决定,所以产品需求的迭代约束很大。因此Facebook推出React Native技术框架后,开发者可以利用JavaScript脚本来开发手机端应用。但目前并没有一种具体的使用React Native来开发的解决方案,导致应用程序业务和组件的耦合关联性较强,如需更新部分组件或者业务,则需要对应用程序进行整体更新和发版,造成网络和存储资源的浪费。

发明内容

[0003] 为了解决上述问题,本发明实施例提供一种应用程序开发装置。
[0004] 本发明第一方面提供一种应用程序开发装置,包括:
[0005] 视图载体页、业务层、中间层、组件接口层和热更新平台;所述组件接口层包括原生方法组件和应用程序编程接口API;
[0006] 所述原生方法组件和应用程序编程接口API分别用于实现应用程序的不同业务功能;
[0007] 所述中间层与所述视图载体页、所述业务层、所述组件接口层和所述热更新平台别分连接,用于解耦所述业务层和所述组件接口层,
[0008] 所述业务层用于根据所述中间层的业务代码调用所述组件接口层中的接口或组件;
[0009] 所述视图载体页用于承载应用程序的业务功能,所述热更新平台用于将所述业务层引用的代码进行编译处理。
[0010] 可选的,所述中间层包括组件路由和API路由;所述组件路由用于调用所述原生方法组件;所述API路由用于调用所述API。
[0011] 可选的,所述组件接口层包括以下至少一个业务组件:
[0012] 支付组件、语音组件、弹窗组件、单选选择器、多选无联动选择器和登录组件。
[0013] 可选的,所述业务层具体用于:
[0014] 渲染视图;串联业务组件;加载用户界面样式;服务器API接口调用和数据处理
[0015] 可选的,所述视图载体页包括至少一个业务的载体页。
[0016] 可选的,所述热更新平台包括资源管理系统、数据接口层和更新管理层;
[0017] 所述资源管理系统用于将所述业务层的代码进行编译得到编译文件,并写入数据缓存中心;
[0018] 所述数据接口层用于根据编译信息获取存储在所述数据缓存中心的所述编译文件,并将所述编译文件发送至所述更新管理层;
[0019] 所述更新管理层将所述编译文件进行存储,并在接收到访问请求时进行展示。
[0020] 本发明实施例提供的应用程序开发装置,包括视图载体页、业务层、中间层、组件接口层和热更新平台;组件接口层包括原生方法组件和应用程序编程接口API;中间层与视图载体页、业务层、组件接口层和热更新平台别分连接,用于解耦业务层和组件接口层,中间层将业务层和组件接口层隔离,业务层用于根据中间层的业务代码调用组件接口层中的接口或组件;视图载体页用于承载应用程序的业务功能,热更新平台用于将业务层引用的代码进行编译处理。提供了一套清晰可用的应用程序的开发装置,将业务层与Native组件层松散耦合,业务扩展灵活,不依赖发版。附图说明
[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0022] 图1为本发明实施例提供的应用程序开发装置实施例一的结构示意图;
[0023] 图2为本发明实施例提供的应用程序开发装置一实例的结构示意图。

具体实施方式

[0024] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0025] 图1为本发明实施例提供的应用程序开发装置实施例一的结构示意图,如图1所示,该应用程序开发装置10包括:
[0026] 视图载体页11、业务层12、中间层13、组件接口层14和热更新平台15;所述组件接口层14包括原生方法组件141和应用程序编程接口(英文:Application Programming Interface,简称:API)142;所述原生方法组件141和API 142分别用于实现应用程序的不同业务功能;
[0027] 所述中间层13与所述视图载体页11、所述业务层12、所述组件接口层14和所述热更新平台15别分连接,用于解耦所述业务层和所述组件接口层14,即该中间层13连接在业务层12和组件接口层14之间,将业务层12和组件接口层14隔离。
[0028] 所述业务层11用于根据所述中间层13的业务代码调用所述组件接口层14中的接口或组件;
[0029] 所述视图载体页11用于承载应用程序的业务功能,所述热更新平台15用于将所述业务层12引用的代码进行编译处理。
[0030] 在本方案中,组件接口层14为整个架构的最底层,是实现应用程序开发装置的基础,为整个应用程序的开发提供组件,包括系统自带的组件以及后续跟进需要增加的组件封装。
[0031] 中间层13连接在业务层12和组件接口层14之间,可以抹平不同系统调用组件接口层14的差异,将业务层和组件接口层解耦。
[0032] 业务层12主要用于业务的实现,即对开发的应用程序的代码进行落地;视图载体页11是整个系统中所有业务的统一载体;热更新平台15为整个应用程序开发装置的框架核心,热更新平台15的主要功能是将业务层12以及其引用的代码编译链接好,生成编译文件并下载到应用程序中,在该过程中,还需要控制更新文件的大小,并对失败情况进行处理。
[0033] 本方案提供的应用程序开发装置,将业务层和组件接口层松散耦合,实现业务扩展灵活且不依赖发版的功能。
[0034] 图2为本发明实施例提供的应用程序开发装置一实例的结构示意图,如图2所示,在上述实施例一的基础上,在该应用程序开发装置10的具体实现中,所述中间层13包括组件路由和API路由;所述组件路由用于调用所述原生方法组件;所述API路由用于调用所述API。
[0035] 在本实现方案中,所述组件接口层14除了包括系统提供的业务组件,还可以包括以下至少一个扩展的业务组件:支付组件、语音组件、弹窗组件、单选选择器、多选无联动选择器、登录组件、区域选择组件、错误页面组件、图片编辑组件、埋点组件、定位组件、跳转组件、弹窗组件、初始化参数组件、加载组件、页面关闭组件等。
[0036] 在本实现方案中,所述业务层12具体用于:渲染视图;串联业务组件;加载用户界面样式;服务器API接口调用和数据处理。所述视图载体页11包括至少一个业务的载体页。
[0037] 在该方案的具体实现中,所述热更新平台15包括资源管理系统、数据接口层和更新管理层;所述资源管理系统用于将所述业务层的代码进行编译得到编译文件,并写入数据缓存中心;所述数据接口层用于根据编译信息获取存储在所述数据缓存中心的所述编译文件,并将所述编译文件发送至所述更新管理层;所述更新管理层将所述编译文件进行存储,并在接收到访问请求时进行展示。
[0038] 在上述方案的基础上,下面以基于React Native的手机应用开发装置为例(下文中javascript简称为JS)对本方案进行说明。
[0039] 如图2所示,此基于React Native的手机应用开发装置共分为五个部分:Native组件/API层、JS中间层、JS业务层、视图载体页、热更新平台。JS业务层、JS中间层、Native组件/API层三者运行于视图载体页中,且JS业务层和JS中间层的代码更新是通过热更新平台更新到用户手机应用中的。Native组件/API层是整个装置的基石,JS业务层通过JS中间层调用Native组件与API。
[0040] Native组件/API层与JS中间层是无状态,可以被复用的,它们被不同业务调用和组装,能形成不同的业务功能。在这里,一切业务都是基于组件的,任何业务的形成,都是调用Native组件及API来的。尤其是引入了JS中间层,不仅抹平了在不同平台(iOS/Android)上调用组件的差异性,还解耦了JS业务层与Native组件层。如果没有JS中间层,Native一个组件或者API的变动,都需要通知所有的业务方去进行修改,在业务到达一定量的情况下,这种改动不仅费时费还具有险,会影响线上功能。引入了JS中间层之后,Native组件及API的变动,都在JS中间层进行处理,JS业务层毫无感知
[0041] 下面对这五个部分进行分别介绍:
[0042] Native组件/API层
[0043] Native组件/API层是在整个架构的最底层,也是整个装置的基础。
[0044] 在这一层,除了React Native本身提供的原生组件外,对没有覆盖到的组件进行了封装。React Native提供的组件有影像(Image)、列表视图(ListView)、Picker、Text、TextInput、ScrollView等,具体可从React  Native官方网站(http://facebook.github.io/react-native/docs/getting-started.html)上查询。本发明扩展的组件有:支付、语音、弹窗、单选选择器、多选无联动选择器、登录等组件。
[0045] 在React Native中,除了组件,还有API。官方提供的API有剪切板(ClipBoard)、持久化存储(AsyncStorage)、AppRegistry、Alert等,更多完备的API可从React Native官方网站上查询。本发明扩展的API有:跳转、定位、埋点、初始化参数等。这些扩展的组件和API使得用React Native,来实现本地化的业务成为了可能,也是本发明重要的组成部分。当然随着业务的逐步扩大,还会不断丰富组件/API库,以适应业务的特殊性和多样性。
[0046] 以弹窗dialog组件为例,native与JS交互的协议为:
[0047] show(title,message,cancelTitle,confirmTitle,isHideWhenClickOut,callBackB lock);
[0048] #title Dialog中显示的title
[0049] #message Dialog中显示的message
[0050] #cancelTitle Dialog中左侧按钮的title
[0051] #confirmTitle Dialog中右侧按钮的title
[0052] #isHideWhenClickOut点击dialog外部是否消失Dialog,该字段对ios不起作用[0053] #callBackBlock点击取消或确认按钮的回调返回0表示取消,1表示确定类型为字符串,不是数字。
[0054] JS调用的示例为:
[0055] JS中间层
[0056] JS中间层是本方案中非常关键的一层,是为上文中扩展的Native组件/API来服务的。JS中间层如上文所述,不仅能抹平在不同平台上调用Native组件/API的差异,还解耦了JS业务层与Native组件/API层。
[0057] 自定义弹窗组件(Dialog)中的代码片段为:
[0058]
[0059]
[0060] 在上述代码片段中,从代码的if(Platform.OS==='ios')到结束的部分,所做的是处理iOS/Android两个平台上弹窗界面确定按钮放置的位置不同而做的差异化处理。类似这些平台差异化的内容在实际开发中会有很多,如果这些差异都有业务方去做,不仅代码可复用性差,而且耗时耗力,每一个新接入方都要重新开发调试。
[0061] JS业务层与Native组件/API层之间的耦合关系,如果没有中间层的封装,以上文的dialog组件为例,在业务层中,将会执行相应的调用,其中WBCustomDialogManager是Native的组件标识别,还有show函数的相关参数。这些与Native相关的内容如果发生变化,则所有与这个组件相关的业务都要更改。而引入了中间层之后,业务调用方,将不再关注这些细节,中间层在其中做了解藕。即使Native发生了变动,也会最大限度降低业务层的变动。
[0062] JS业务层
[0063] JS业务层主要专注了业务的实现,包括视图的渲染,组件的串联,UI样式的设置,Server API接口的调用与数据的处理。JS业务层在改装置中是最终代码的落地,视图载体页加载的视图以及热更新系统更新的代码都是直接针对JS业务层的,只是这时业务层引用了JS中间层的代码来实现对Native组件的调用。
[0064] 视图载体页
[0065] 本发明中的视图载体页是所有业务的一个统一载体。以58同城APP为例,里面有大类页/列表页/详情页/发布等不同形态的各种业务。通用的做法每一个业务一个载体页。因为载体页是Native代码写的,这使得当需要扩展一个业务线的时候,必须依赖发版。而统一了载体页后,只需要通过热更新平台将JS代码更新到APP本地即可实现。
[0066] 下面提供58APP中跳转到React Native页面的跳转协议实例:
[0067]
[0068]
[0069] 视图载体页单一载体功能的实现,很关键的部分在于跳转到载体页跳转协议的设计。如上述的58APP中跳转到React Native页面的跳转协议所示,由于跳转协议与具体的业务关联较大,上面的跳转协议只需要重点关注的一个点为pagetype,在这里将pagetype设置为RN,而不是list(列表页)/detail(详情页)等与业务相关的类型。其中bundleid指向的是下文热更新平台将JS业务层及其引用的代码编译link好的jsbundle文件。
[0070] 跳转协议在不同的APP中,实现思路不同,有很多APP采用的url形式来实现,但具体思路与上文描述的形式相同。
[0071] 热更新平台
[0072] 热更新平台是整个框架的核心。热更新平台的主要功能是将JS业务层及其引用的代码编译link好的jsbundle下载到native app中。在此过程中,需要控制更新文件的大小以及失败情况的处理。
[0073] 热更新平台涉及JSBundle资源管理系统(Server)、JSBundle数据接口层(Server)、JSBundle Native更新及管理层(Native)。JSBundle资源管理系统负责将相关JS业务层代码编译link成JSBundle文件,并将相关更新写到一个数据缓存中心(例如redis或者memcached)。当Native通过JSBundle数据接口层提供的接口获取对应的JSBundle的信息时,数据接口层将从数据缓存中心查询数据并返回给native端。Native端为了提高用户体验,会对JSBundle进行缓存,用户访问相关页面的时候,先展示缓存,再访问接口,看是否有更新。
[0074] 上述方案提供了一套清晰可用的React Native的手机应用开发装置,JS业务层与Native组件层松散耦合,业务扩展灵活不依赖发版。
[0075] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
[0076] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈