一种应用拆分以及按需加载方法、装置制造方法及图纸

技术编号:20272013 阅读:40 留言:0更新日期:2019-02-02 03:29
本申请提供了一种应用拆分及按需加载方法、装置,依据拆分配置文件和平台指示参数,对使用RN得到的应用进行拆分,得到基础模块和业务模块,应用启动时,加载基础模块和被用户点击的业务模块,因此能够实现业务模块的按需加载,从而节省时间和资源。

【技术实现步骤摘要】
一种应用拆分以及按需加载方法、装置
本申请涉及电子信息领域,尤其涉及一种应用拆分以及按需加载方法、装置。
技术介绍
React-Native(下文简称RN)是Facebook公司于2015年4月开源的跨平台移动应用开发框架,目前支持iOS和安卓两个平台。RN帮助开发者使用JavaScript语言,以及CSS来开发移动应用,并获得与原生应用几乎完全一致的体验。但是,使用RN开发得到的bundle包(bundle包为一个js文件,用于对应用的各种基础信息进行配置,并用于应用的加载)往往很大,例如,一个输出HelloWorld的项目,在没有什么逻辑代码的情况下,使用“react-nativebundle”命令打包后生成的bundle文件的大小约为530kb。倘若只有寥寥数个业务,如此大小的bundle文件大小尚可接受,但随着业务的增多,业务复杂性的上升,文件的体积势必会急剧增大,这对有一定规模的应用而言是不可接受的。而门户类应用相较于一般应用而言,规模更大,包含业务更多,其特点是一个应用中包含多个业务模块的入口,由跨部门、跨区域、甚至跨企业的多团队共同开发,每支团队负责部分模块,可以独立开发和部署。在此情况下,使用RN开发得到的bundle包中,包括应用中的各个模块,即所有业务模块打包成一个应用安装包,热更新升级时也是更新整个安装包,这带来如下缺点:单一模块的功能升级必须连带其它模块一起投产,缺乏灵活性,造成系统不稳定;用户从未点击使用的模块也会随整包下载、加载到内存中,造成流量与内存资源的不必要开销;应用代码量越来越大,逐渐形成牵一发而动全身的大型单体应用,风险较高。可见,如何将使用RN开发得到的bundle包进行拆分并按需加载,以避免上述缺点,成为目前亟待解决的问题。
技术实现思路
本申请提供了一种应用拆分以及按需加载方法、装置,目的在于解决如何将使用RN开发得到的bundle包进行拆分并按需加载的问题。为了实现上述目的,本申请提供了以下技术方案:一种应用拆分方法,包括:获取拆分配置文件,所述拆分配置文件包括拆分后的基础模块的名称、业务模块的名称、所述基础模块对应的文件和所述业务模块对应的文件;获取平台指示参数,所述平台指示参数用于指示Android平台或iOS平台;对使用RN得到的应用进行拆分,得到所述基础模块和所述业务模块,所述对使用RN得到的应用进行拆分至少包括:依据所述拆分配置文件和所述平台指示参数,对使用RN得到的应用进行拆分。可选的,所述基础模块包括:RN框架代码及其依赖模块、和自定义公共模块代码。可选的,依据所述平台指示参数,对使用RN得到的应用进行拆分包括:在所述平台指示参数指示Android平台的情况下,使用第一命名规则命名所述基础模块和所述业务模块,并将所述基础模块和所述业务模块所需的静态图片对应存储到目标路径下,所述目标路径为与所述静态图片的分辨率对应的路径;在所述平台指示参数指示iOS平台的情况下,使用第二命名规则命名所述基础模块和所述业务模块,并根据倍图值对所述基础模块和所述业务模块所需的静态图片进行命名。可选的,所述对使用RN得到的应用进行拆分还包括:使用js解析工具,按照模块定义和模块调用的固定范式解析得到所述基础模块和所述业务模块之间的调用关系,并根据所述调用关系,给每个模块赋予对应的序号,以便拆分后的模块在运行过程中确定各自依赖的模块。可选的,还包括:为所述业务模块分配唯一的标识。一种按需加载方法,包括:将基础模块设置为默认启动的模块;在应用启动时,加载所述基础模块;依据用户的点击指令,加载业务模块中被所述用户点击的业务模块;其中,所述基础模块和所述业务模块依据以上所述的方法得到。可选的,在所述加载业务模块中被所述用户点击的业务模块之前,还包括:查询被所述用户点击的业务模块是否存在更新包,如果是,下载所述更新包;所述加载业务模块中被所述用户点击的业务模块包括:加载被下载的所述更新包。一种应用拆分装置,包括:第一获取模块,用于获取拆分配置文件,所述拆分配置文件包括拆分后的基础模块的名称、业务模块的名称、所述基础模块对应的文件和所述业务模块对应的文件;第二获取模块,用于获取平台指示参数,所述平台指示参数用于指示Android平台或iOS平台;拆分模块,用于对使用RN得到的应用进行拆分,得到所述基础模块和所述业务模块,所述对使用RN得到的应用进行拆分至少包括:依据所述拆分配置文件和所述平台指示参数,对使用RN得到的应用进行拆分。可选的,所述基础模块包括:RN框架代码及其依赖模块、和自定义公共模块代码。可选的,所述拆分模块用于依据所述平台指示参数,对使用RN得到的应用进行拆分包括:所述拆分模块具体用于,在所述平台指示参数指示Android平台的情况下,使用第一命名规则命名所述基础模块和所述业务模块,并将所述基础模块和所述业务模块所需的静态图片对应存储到目标路径下,所述目标路径为与所述静态图片的分辨率对应的路径;在所述平台指示参数指示iOS平台的情况下,使用第二命名规则命名所述基础模块和所述业务模块,并根据倍图值对所述基础模块和所述业务模块所需的静态图片进行命名。可选的,所述拆分模块还用于:使用js解析工具,按照模块定义和模块调用的固定范式解析得到所述基础模块和所述业务模块之间的调用关系,并根据所述调用关系,给每个模块赋予对应的序号,以便拆分后的模块在运行过程中确定各自依赖的模块。可选的,所述拆分模块还用于:为所述业务模块分配唯一的标识。一种按需加载装置,包括:设置模块,用于将基础模块设置为默认启动的模块;加载模块,用于在应用启动时,加载所述基础模块,并依据用户的点击指令,加载业务模块中被所述用户点击的业务模块;其中,所述基础模块和所述业务模块依据以上所述的应用拆分装置得到。可选的,所述加载模块还用于:查询被所述用户点击的业务模块是否存在更新包,如果是,下载所述更新包;所述加载模块用于加载业务模块中被所述用户点击的业务模块包括:所述加载模块具体用于,加载被下载的所述更新包。本申请所述的方法及装置,依据拆分配置文件和平台指示参数,对使用RN得到的应用进行拆分,得到基础模块和业务模块,应用启动时,加载基础模块和被用户点击的业务模块,因此能够实现业务模块的按需加载,从而节省时间和资源。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请书实施例公开的一种应用拆分方法的流程图;图2为本申请实施例公开的应用拆分方法中使用的配置文件的示例图;图3为现有技术中默认bundle目录结构示意图;图4为本申请实施例公开的应用拆分方法拆分后的目录结构示意图;图5为本申请实施例公开的应用拆分方法拆分前后的实际目录结构图;图6为本申请实施例公开的一种按需加载方法的流程图;图7为iOS平台加载的逻辑示意图;图8为Android平台加载的逻辑示意图;图9为iOS平台加载的核心代码示意图;图10为Android平台加载的核心代码示意图;图11为本申请实施例公开的一种应用拆分装置的结本文档来自技高网
...

【技术保护点】
1.一种应用拆分方法,其特征在于,包括:获取拆分配置文件,所述拆分配置文件包括拆分后的基础模块的名称、业务模块的名称、所述基础模块对应的文件和所述业务模块对应的文件;获取平台指示参数,所述平台指示参数用于指示Android平台或iOS平台;对使用RN得到的应用进行拆分,得到所述基础模块和所述业务模块,所述对使用RN得到的应用进行拆分至少包括:依据所述拆分配置文件和所述平台指示参数,对使用RN得到的应用进行拆分。

【技术特征摘要】
1.一种应用拆分方法,其特征在于,包括:获取拆分配置文件,所述拆分配置文件包括拆分后的基础模块的名称、业务模块的名称、所述基础模块对应的文件和所述业务模块对应的文件;获取平台指示参数,所述平台指示参数用于指示Android平台或iOS平台;对使用RN得到的应用进行拆分,得到所述基础模块和所述业务模块,所述对使用RN得到的应用进行拆分至少包括:依据所述拆分配置文件和所述平台指示参数,对使用RN得到的应用进行拆分。2.根据权利要求1所述的方法,其特征在于,所述基础模块包括:RN框架代码及其依赖模块、和自定义公共模块代码。3.根据权利要求1所述的方法,其特征在于,依据所述平台指示参数,对使用RN得到的应用进行拆分包括:在所述平台指示参数指示Android平台的情况下,使用第一命名规则命名所述基础模块和所述业务模块,并将所述基础模块和所述业务模块所需的静态图片对应存储到目标路径下,所述目标路径为与所述静态图片的分辨率对应的路径;在所述平台指示参数指示iOS平台的情况下,使用第二命名规则命名所述基础模块和所述业务模块,并根据倍图值对所述基础模块和所述业务模块所需的静态图片进行命名。4.根据权利要求1所述的方法,其特征在于,所述对使用RN得到的应用进行拆分还包括:使用js解析工具,按照模块定义和模块调用的固定范式解析得到所述基础模块和所述业务模块之间的调用关系,并根据所述调用关系,给每个模块赋予对应的序号,以便拆分后的模块在运行过程中确定各自依赖的模块。5.根据权利要求1所述的方法,其特征在于,还包括:为所述业务模块分配唯一的标识。6.一种按需加载方法,其特征在于,包括:将基础模块设置为默认启动的模块;在应用启动时,加载所述基础模块;依据用户的点击指令,加载业务模块中被所述用户点击的业务模块;其中,所述基础模块和所述业务模块依据权利要求1至4任一项所述的方法得到。7.根据权利要求6所述的方法,其特征在于,在所述加载业务模块中被所述用户点击的业务模块之前,还包括:查询被所述用户点击的业务模块是否存在更新包,如果是,下载所述更新包;所述加载业务模块中被所述用户点击的业务模块包括:加载被下载的所述更新包。8.一种应用拆分装置,其特征在于,包括:第一获取模块,用于获...

【专利技术属性】
技术研发人员:李蕾杨炀
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1