CN112256296A - 基于Weex的快递服务APP更新方法、装置、设备及存储介质 - Google Patents
基于Weex的快递服务APP更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112256296A CN112256296A CN202011005363.6A CN202011005363A CN112256296A CN 112256296 A CN112256296 A CN 112256296A CN 202011005363 A CN202011005363 A CN 202011005363A CN 112256296 A CN112256296 A CN 112256296A
- Authority
- CN
- China
- Prior art keywords
- service app
- configuration file
- weex
- page
- express
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 26
- 238000011161 development Methods 0.000 abstract description 17
- 238000012360 testing method Methods 0.000 abstract description 6
- 238000012795 verification Methods 0.000 abstract description 5
- 235000019640 taste Nutrition 0.000 abstract description 4
- 230000018109 developmental process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000008439 repair process Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241001412225 Firmiana simplex Species 0.000 description 1
- 240000007108 Fuchsia magellanica Species 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 241000287127 Passeridae Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种基于Weex的快递服务APP更新方法、装置、设备及存储介质,其中,更新方法包括步骤:响应用户的应用启动指令,对快递服务APP配置文件所配置的Weex页面对应的JS Bundle文件、及快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储;根据用户发起的页面访问请求获取所关联的JS Bundle文件,并依据获取的JS Bundle文件对访问的快递服务APP的Weex页面进行更新。本申请的技术方案可以实现一套代码同时运行在android、ios、web三端,减少开发成本,提高开发效率;可以实现热更新,实现代码动态下发的功能;支持预加载,提高页面加载速度,性能媲美原生;支持多种灰度策略,方便A/B测试,支持不同网点,优先尝鲜新功能;快速开发新业务,方便验证。
Description
技术领域
本发明涉及快递技术领域,具体涉及一种基于Weex的快递服务APP更新方法、装置、设备及存储介质。
背景技术
用户在业务上对互联网产品(例如快递服务APP)体验、迭代速度、效果验证等方面的优化诉求越来越强烈,因此,互联网产品通常需要不停的升级更新以更好的实现其功能和满足用户需求。传统的互联网产品需要修复bug或者发布新功能都是通过应用商店来发版,需要用户升级安装APP。一方面受限于第三方应用商店审核周期长问题,另一方面,bug的修复不能及时的在用户无感的条件下修复。
近年来,互联网行业中涌现出一些互联网产品动态化方案,具体如下:
(1)基于H5的热更新方案
APP内嵌套H5页面这种方式,可以随时的动态的修改H5页面的内容,可以实现新业务的随时随地发布,实现新业务立即触达用户的效果。缺点也是比较明显的,对网络要求比较高,性能相比原生App差距比较大,用户体验不及原生APP。
(2)React Native跨平台热更新
React Native是由Facebook开发的一款跨平台框架,可以实现一套代码同时运行在Android和IOS端,底层是通过原生控件进行渲染,性能远超H5,同时可以实现热更新的效果。缺点是:RN通过JS访问平台UI组件,所以需要通过Bridge桥接器将JS转换到原生,在UI被频繁操作时可能导致性能问题。
(3)原生热修复方案
面向移动设备的线上修复服务,为APP线上版本提供静默更新,细粒度修复能力,帮助开发者实时修复线上问题,敏捷发布轻量级功能。优点是:无需APP升级版本,通过补丁下发,即可静默方式完成线上变更,常用于快速修复线上缺陷。缺点是:由于是在应用运行期间发生了变动,如果修改了某个方法的逻辑,就会导致它在修复前后的逻辑不一致,引发一些诡异的错误。因此热替换方式的热修复只适用于修复一些简单的BUG,如果要做一些功能方面的更新,不建议采用。
(4)原生插件化
将Apk(APP安装包)按照功能模块划分,不同的功能打包成不同的Apk,然后应用的主Apk按需加载对应功能的Apk,用户只需要安装应用的主Apk即可,主Apk相当于一个壳,它会按需加载其他功能模块的Apk。优点是:通过这种模式,不仅解决了Apk体积大的问题,而且当某个功能模块需要变化时,也只需要修改对应功能的代码,打包功能Apk并更新即可,这样不仅可以让用户及时更新,而且更新的代价也很小。同时可以做到功能APK热插拔的效果。缺点是:由于需要大量Hook的***源码,所以需要对***的apk代码加载和资源加载流程以及***其他源码有足够深的了解,加上Android***的不同版本的兼容性问题,导致不同***版本的源码有所差异,就会导致我们的插件化方案有兼容性问题,维护成本高。
(5)小程序方案
这里以为微信小程序为例。原理介绍:在渲染层,宿主环境会把WXML转化成对应的JS对象,在逻辑层发生数据变更的时候,我们需要通过宿主环境提供的setData方法把数据从逻辑层传递到渲染层,再经过对比前后差异,把差异应用在原来的Dom树上,渲染出正确的UI界面。
优点是:无需下载,用完即走,主要的样式代码都封装在微信小程序里面,所以打开速度比普通的H5要快,接近原生APP。可以调用比H5更多的手机***功能来进行开发,例如GPS定位、录音、拍视频、重力感应等,能开发更丰富的使用场景。在安卓手机上可以添加到手机桌面,看上去跟原生APP差不多。运行速度跟APP差不多,也能做出很多H5不做到的功能,开发成本跟H5差不多,相对来说开发成本比APP要低。开放的入口比较多,除了通过扫码,发送朋友,搜索,附近等常用入口外,还能与公众号关联,群发文章嵌入,公众号菜单链接等。
缺点是:微信小程序大小有限制目前不能超过2M,这样导致无法开发大型的小程序。需要像APP一样审核上架,这点比HTML5即做即发布要麻烦些。
(6)Flutter跨平台方案
Flutter是Google开发的一套全新的跨平台、开源UI框架,支持iOS、Android***开发,并且是未来新操作***Fuchsia的默认开发套件。
为避免JS桥接器的性能问题,Flutter采用Dart语言,Dart使用预编译的方式编译多个平台的原生代码,这允许Flutter直接与平台通信,而不需要通过执行上下文切换的JS桥接器。Flutter的UI组件和渲染器都从平台中移到了到用户的应用程序,所以虚拟机中的控件树是真实的控件树,渲染速度快。
优点是:支持跨平台,一套代码同时运行在多端,区别于RN这个框架通过JS桥接器,flutter渲染引擎依靠跨平台的Skia图形库来实现,依赖***的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性,逻辑处理使用支持AOT的Dart语言,执行效率也比JavaScript高得多。
缺点是:目前flutter不支持热更新,无法实现动态化。
通过上述分析可知,现有的互联网产品动态化方案仍存在缺点和不足,因此,仍需要研发一个完整的动态化方案来解决互联网产品运行中存在的问题。
发明内容
针对快递服务APP运行中,用户对动态化诉求的限制问题,本申请提供一种基于Weex的快递服务APP更新方法、装置、设备及存储介质,基于Weex以实现快递服务APP热更新、代码动态下发的功能,满足用户动态化的需求。
本发明提供的技术方案如下:
本发明提供一种基于Weex的快递服务APP更新方法,包括步骤:
响应用户的应用启动指令,对快递服务APP配置文件所配置的Weex页面对应的JSBundle文件、及快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储;
根据用户发起的页面访问请求获取所关联的JS Bundle文件,并依据获取的JSBundle文件对访问的快递服务APP的Weex页面进行更新。
进一步优选的,所述对快递服务APP配置文件所配置的Weex页面对应的JS Bundle文件进行预先下载,具体包括步骤:
检测本地存储中是否存在所述Weex页面对应的JS Bundle文件;
若不存在,对所述Weex页面对应的JS Bundle文件直接进行预先下载;
若存在且确定所述JS Bundle文件存在更新,则依据Weex页面配置文件中所配置的所述Weex页面对应的页面唯一标识所关联的资源定位符,下载更新后的JS Bundle文件。
进一步优选的,所述对快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,具体包括步骤:
判断本地存储中是否存在所述快递服务APP配置文件所对应的灰度发布配置文件;
若不存在,对所述快递服务APP配置文件所对应的灰度发布配置文件直接进行预先下载;
若存在且确定所述灰度发布配置文件存在更新,则下载更新后的灰度发布配置文件。
进一步优选的,还包括根据用户的属性信息和快递业务的属性信息对所述灰度发布配置文件中的灰度标签进行自定义配置的步骤,以形成自定义灰度发布策略。
进一步优选的,所述自定义灰度发布策略包括枚举策略、范围策略、级联策略和扩展策略。
进一步优选的,通过选定所述枚举策略、范围策略、级联策略和扩展策略中的任一种或任几种组合形成所述自定义灰度发布策略。
进一步优选的,若选定所述范围策略时,则至少提供用于供灰度发布的待选择发布区域信息、用于供灰度发布的待选择发布对象年龄信息;若选定所述级联策略时,则至少提供一级级联的配置信息,所述级联的配置信息至少包括两种不同类型的用于供灰度发布的待选择发布要素信息。
本发明还提供一种基于Weex的快递服务APP更新装置,包括:
预加载模块,用于响应用户的应用启动指令,对所配置的Weex页面对应的JSBundle文件、及快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储;
更新模块,用于根据用户发起的页面访问请求所关联的JS Bundle文件,并依据获取的JS Bundle文件对访问的快递服务APP页面进行更新。
本发明还提供一种基于Weex的快递服务APP更新的终端设备,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现上述的快递服务APP更新方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上所述的快递服务APP更新方法。
依据上述实施例的基于Weex的快递服务APP更新方法、装置、设备及存储介质,至少具有以下效果:
1.可以实现一套代码同时运行在android、ios、web三端,减少开发成本,提高开发效率。
2.可以实现热更新,实现代码动态下发的功能。
3.支持预加载,提高页面加载速度,性能媲美原生。
4.支持多种灰度策略,方便A/B测试,支持不同网点,优先尝鲜新功能。
5.快速开发新业务,方便验证。
附图说明
图1为快递服务APP更新方法流程图;
图2为Weex页面加载JS Bundleu资源流程图;
图3为另一种快递服务APP更新方法流程图;
图4为现有Weex灰度发布配置示意图;
图5为本申请的Weex灰度发布配置示意图;
图6为快递服务APP更新时序示意图;
图7为快递服务APP更新装置原理图;
图8为快递服务APP更新的终端设备原理图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本申请中涉及的术语定义如下:
Weex是阿里巴巴集团提供的开源项目,它遵守Apache开原协议。致力于使开发者能基于通用跨平台的Web开发语言和开发经验,来构建Android、iOS和Web应用。
Weex工作原理:weex表面上是一个客户端技术,但实际上它串联起了从本地开发环境到云端部署和分发的整个链路。开发者首先可以在本地像撰写web页面一样撰写一个app的页面,然后编译成一段JavaScript代码,形成Weex的一个JS bundle;在云端,开发者可以把生成的JS bundle部署上去,然后通过网络请求或预下发的方式传递到用户的移动应用客户端;在移动应用客户端里,WeexSDK会准备好一个JavaScript引擎,并且在用户打开一个Weex页面时执行相应的JS bundle,并在执行过程中产生各种命令发送到native端进行的界面渲染或数据存储、网络通信、调用设备功能、用户交互响应等移动应用的场景实践;同时,如果用户没有安装移动应用,他仍然可以在浏览器里打开一个相同的web页面,这个页面是使用相同的页面源代码,通过浏览器里的JavaScript引擎运行起来。
JavaScript是一种基于对象和事件驱动,并具有安全性能的解释型脚本语言,它的解释器JavaScript引擎是浏览器的一部分,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能。其动态性体现在,它不需要经过Web服务器就可以对用户的输入做出响应,在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可以直接对这些事件给出相应的响应。另外,JavaScript还具有跨平台性,不依赖操作***,仅需要浏览器的支持即可。
在本发明实施例中,基于Weex实现快递服务APP的动态化更新、热修复、及灰度发布策略的自定义设置,满足用户的多样性、个性化的诉求。下面通过具体实施例对本发明的技术方案进行说明。
实施例一:
本实施例提供一种基于Weex的快递服务APP更新方法,其流程图如图1所示,具体包括以下步骤。
S100:响应用户的应用启动指令,对快递服务APP配置文件所配置的Weex页面对应的JS Bundle文件进行预先下载,并保存至本地存储。
S200:根据用户发起的页面访问请求获取所关联的JS Bundle文件,并依据获取的JS Bundle文件对访问的快递服务APP的Weex页面进行更新。
在步骤S100中,用户的应用启动指令是指用户主动对终端中的快递服务APP应用程序进行的启动。快递服务APP配置文件是指针对快递服务APP应用中的页面进行访问时所配置的相关***文件,可以包括应用中页面跳转关系配置、应用页面的预加载配置以及具体的页面配置。
其中,具体的页面配置可以是前端开发人员依据自身应用中嵌入的Weex SDK对Weex页面进行实时开发更新后的配置文件,Weex页面的访问需要依据更新后的配置文件才能正常加载和渲染,配置文件中明确指示了Weex页面加载所需的JS Bundle文件,该JSBundle文件压缩成zip包存储于云端服务器,用户端第一次访问该资源并下载到本地进行缓存,经由JsFramework进行解析加载无需安装即可展示给用户使用。进而在检测到用户启动快递服务APP应用程序时,依据快递服务APP配置文件对应用中的Weex页面对应的JSBundle文件进行预先下载,并保存在本地存储中,便于用户对页面访问时JS Bundle文件的获取,提高JS Bundle文件的获取效率以及页面的访问效率。
本实施例中,采用Weex页面配置文件来指示具体页面的相关访问信息。相应的,Weex页面配置文件也可以采用数组的形式保存各访问页面的配置信息,数组内为所有Weex页面对应的页面唯一标识以及对应的一份具体的Weex页面配置。其中可以包括资源定位符URL,用于指示JS Bundle文件的下载路径;本实施例可以依据预加载配置文件获取所要预先加载的页面对应的页面唯一标识,进而依据页面唯一标识,从Weex页面配置文件中获取对应的文件下载地址进行预先下载,并保存在本地存储中。
具体的,在检测到用户启动快递服务APP应用程序,对JS Bundle文件进行预先下载时,先检测本地存储中是否已经存在JS Bundle文件,若不存在则直接进行预先下载。若存在,则将Weex页面配置文件中JS Bundle文件的配置信息与本地存储中JS Bundle文件的配置信息进行对比,检测本地存储中的JS Bundle文件是否已经发生更新,若无更新,则保留本地存储中的JS Bundle文件。若确定JS Bundle文件存在更新,则依据Weex页面配置文件中所配置的Weex页面对应的页面唯一标识所关联的资源定位符,下载更新后的JS Bundle文件,并替换本地存储中已存在的JS Bundle文件进行保存。
在步骤S200中,页面访问请求是指用户针对某一具体的Weex页面发起的访问请求,根据该访问请求获取所关联的JS Bundle文件,JS Bundle文件的实际加载过程如图2所示,具体包括以下步骤:
S201:用户发起快递服务APP的Weex页面访问请求。
也即是,用户点击了快递服务APP中所要访问的Weex页面。
S202:判断该Weex页面的配置文件是否存在,若否,触发预置加载,若存在,执行步骤S203。
S203:判断该配置文件中是否存在当前Weex页面所属的模块,若是,执行步骤S204,若否,根据该模块以及JavaScript访问服务端接口,并执行步骤S206。
S204:依据Weex页面访问请求所关联的页面唯一标识,判断本地存储中是否存在已预先加载完成的JS Bundle文件,若是,执行步骤S205,若否,执行步骤S206。
S205:使用Weex容器从本地存储中获取用户发起的页面访问请求所关联的JSBundle文件。
S206:使用Weex容器加载Weex页面对应的页面唯一标识所关联的资源定位符,以获取所关联的JS Bundle文件。
通过上述步骤S201-S206可以获取所需的JS Bundle文件,然后可依据获取的JSBundle文件对访问的快递服务APP的Weex页面进行更新
本实施例的技术方案,通过在快递服务APP启动时,就预先加载快递服务APP所需加载的Weex页面对应的JS Bundle文件,并保存在本地存储中;当用户发起对于具体页面的访问请求时,可以直接从本地存储中获取对于访问页面预先加载完成的JS Bundle文件,并依据JS Bundle文件对访问页面进行渲染。本实施例通过对快递服务APP的Weex页面对应的JS Bundle文件进行预先加载,实现了对JS Bundle文件的本地缓存,提高了JS Bundle文件的获取效率以及页面的渲染效率,从而提高了快递服务APP页面更新后的访问速度和用户访问体验。
实施例二:
基于实施例一,本实施例提供另一种基于Weex的快递服务APP更新方法,其流程图如图3所示,具体包括如下步骤。
S300:响应用户的应用启动指令,对快递服务APP配置文件所配置的Weex页面对应的JS Bundle文件进行预先下载,并保存至本地存储。
S301:对快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储。
S302:根据用户发起的页面访问请求获取所关联的JS Bundle文件,并依据获取的JS Bundle文件和灰度发布对访问的快递服务APP的Weex页面进行更新。
与实施例一不同的是,本实施例为了实现快递服务APP的灰度发布功能,本实施例还包括对快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储的步骤。
其中,灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体***的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
现有Weex灰度发布不支持预加载,只能在线访问灰度发布的JS Bundle文件,且现有Weex灰度发布策略有限,目前支持选择客户端版本,选择灰度人数和灰度开始和截止时间,现有Weex通过Emas平台进行构建发布。
具体到本申请中,基于现有Weex灰度发布存在的缺陷,本实施例基于梧桐平台(移动中台研发)自行研发Weex,使自行研发Weex的灰度发布支持预加载功能和自定义功能。
韵镖侠App为例,韵镖侠APP基于现有Weex灰度发布示意图如图4所示,基于自行研发Weex的灰度发布示意图如图5所示。其中,韵镖侠App是韵达快递员专用的业务工具,韵镖侠App既可通过短信、云呼、网络电话等方式通知收件人签收,也可通过账号绑定代替巴枪,完成到件、派件、签收等全部工作。
其中,对快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,具体包括步骤:
判断本地存储中是否存在快递服务APP配置文件所对应的灰度发布配置文件;
若不存在,对快递服务APP配置文件所对应的灰度发布配置文件直接进行预先下载;
若存在且确定灰度发布配置文件存在更新,则下载更新后的灰度发布配置文件。
具体的,如果快递服务APP配置文件中某个模块的版本号和本地不一致,则丢弃本地,替换为新的,如果一致则保持本地不变。新的版本***时,本地加一个参数标志是否需要下载,默认加入时为需要。灰度发布配置文件预先下载时,遍历快递服务APP配置文件,根据是否需要下载标志,进行后台下载,下载完成后,按照模块解压到对应路径,iOS为沙盒:Documents/weexJSBundle/模块/版本/,下载成功时,再删除本地老文件。
本实施例中,Weex的灰度发布自定义功能的实现方式是:根据用户的属性信息和快递业务的属性信息对灰度发布配置文件中的灰度标签进行自定义配置,以形成自定义灰度发布策略;其中,用户的属性信息包括用户的性别、用户的年龄等信息,快递业务的属性信息包括网点编码信息、业务编码信息等信息,该自定义灰度发布策略包括枚举策略、范围策略、级联策略和扩展策略。具体应用中,可通过选定枚举策略、范围策略、级联策略和扩展策略中的任一种或任几种组合形成自定义灰度发布策略,例如,可以仅选定枚举策略进行自定义灰度发布策略,也可以选定枚举策略、范围策略、级联策略和扩展策略的组合形成自定义灰度发布策略。
其中,若选定范围策略时,则至少提供用于供灰度发布的待选择发布区域信息、用于供灰度发布的待选择发布对象年龄信息;通过范围策略能够实现灰度发布的灵活性和个性化,例如,可以对某一派件区域中所有快递员的快递服务APP进行灰度发布,也可以对某一年龄段的所有快递员的快递服务APP进行灰度发布。
若选定级联策略时,则至少提供一级级联的配置信息,该级联的配置信息至少包括两种不同类型的用于供灰度发布的待选择发布要素信息,通过级联策略能够实现灰度发布的精准性,例如,某一级联的配置信息可以包括网点编码、快递员编码等配置信息,通过该级联配置信息,能够针对某一网点中的某一个快递员的快递服务APP进行灰度发布,根据实际应用可以选择多级级联策略。以韵镖侠APP为例,Weex的灰度发布策略的自定义如图5所示。
上述的扩展策略具体指的是供用户自定义的灰度发布策略,例如,若“枚举策略”,“范围策略”,“级联策略”中用于灰度发布的关键预设字段不存在时,则可以通过扩展策略输入自定义字段,以实现相应的灰度发布。
本实施例的技术方案,通过自行研发weex,无论是全量发布还是灰度发布,都支持预加载,自行研发weex支持多种自定义灰度策略,例如,本实施例的灰度范围定义支持4种策略,“枚举策略”,“范围策略”,“级联策略”,“扩展策略”,该4种策略是可以自定义的灰度策略,可以基本上可以覆盖到快递服务APP(例如,韵镖侠APP)的业务需求,通过灰度实现快递服务的业务目标。故,本实施能够实现自定义灰度发布,比如按照网点编码和业务编码进行灰度发布,按照地区等自定义灰度测试进行灰度发布。通过本实施例的自定义灰度策略,可根据实际应用灵活选择不同的自定义灰度策略,以解决现有Weex灰度发布策略受限的问题。
为了使本申请的技术方案更容易理解,本实施例技术方案的时序图如图6所示,此处不再进行文字描述。
实施例三:
基于实施例一和实施例二,本实施例提供基于Weex的快递服务APP更新装置,其原理图如图7所示,包括预加载模块100和更新模块200。
预加载模块100用于响应用户的应用启动指令,对所配置的Weex页面对应的JSBundle文件进行预先下载,并保存至本地存储;更新模块200用于根据用户发起的页面访问请求所关联的JS Bundle文件,并依据获取的JS Bundle文件对访问的快递服务APP页面进行更新。
优选的,预加载模块100包括:
页面标识获取单元101,用于依据预加载配置文件获取待加载的Weex页面的页面唯一标识。
文件预下载单元102,用于依据Weex页面配置文件中所配置的页面唯一标识对应的资源定位符,下载所述页面唯一标识关联的JS Bundle文件。
文件确认单元103,用于确定本地存储中是否存在所述Weex页面对应的JS Bundle文件。
更新检测单元104,用于若存在且确定JS Bundle文件存在更新,则依据Weex页面配置文件中所配置的所述Weex页面对应的页面唯一标识所关联的资源定位符,下载更新后的JS Bundle文件。
优选的,更新检测单元104具体用于:
依据页面唯一标识,将Weex页面配置文件中JS Bundle文件的配置信息与本地存储中JS Bundle文件的配置信息进行对比;依据对比结果确定页面唯一标识关联的JSBundle文件是否存在更新。
预加载模块100还用于对快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储。具体的预加载方式可参考Weex页面配置文件中JS Bundle文件的预加载方式,关于自定义灰度发布策略的实施,请参考实施例二,本实施例不作赘述。
本实施例提供的基于Weex的快递服务APP更新装置,具有以下效果:
1.可以实现一套代码同时运行在android、ios、web三端,减少开发成本,提高开发效率。
2.可以实现热更新,实现代码动态下发的功能。
3.支持预加载,提高页面加载速度,性能媲美原生。
4.支持多种灰度策略,方便A/B测试,支持不同网点,优先尝鲜新功能。
5.快速开发新业务,方便验证。
实施例四:
基于实施例一至和实施例三,本实施例提供一种基于Weex的快递服务APP更新的终端设备,该终端设备的原理图如图8所示,该终端设备800可以是平板电脑、智能手机、笔记本电脑或台式电脑。终端设备800还可能被称为便携式终端、膝上型终端、台式终端等其他名称。
通常,终端设备800包括有处理器8001和存储器8002,处理器8001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器8001可以采用DSP(DigitalSignal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器8001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
在一些实施例中,处理器8001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器8001还可以包括Al(Artificial Intelligence,人工智能)处理器,该Al处理器用于处理有关机器学习的计算操作。
存储器8002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器8002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器8002中的非暂态的计算机可读存储介质用于存储至少一个指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集用于被处理器8001所执行以实现本申请中实施例一或实施例二提供的快递服务APP更新方法。
因此,本申请的设备800通过至少一条指令、至少一段程序、代码集或指令集执行实施例一或实施例二提供的快递服务APP更新方法,具有以下优点:
1.可以实现一套代码同时运行在android、ios、web三端,减少开发成本,提高开发效率。
2.可以实现热更新,实现代码动态下发的功能。
3.支持预加载,提高页面加载速度,性能媲美原生。
4.支持多种灰度策略,方便A/B测试,支持不同网点,优先尝鲜新功能。
5.快速开发新业务,方便验证。
在一些实施例中,设备800还可以从云端服务器8003获取所需的JS Bundle文件,例如,通过***设备将更新的JS Bundle文件发布至云端服务器8003,以供设备800获取。
具体到本实施例中,为了实现快递服务APP更新,相应的***设备包括移动研发管理平台8004,移动研发管理平台8004内置有打包管理、证书管理、版本管理、组件化发布、灰度发布、全量发布、热修复服务、远程配置服务、通道服务等,通过移动研发管理平台8004向云端服务器8003发布更新的JS Bundle文件,进一步,处理器8001通过云端服务器8003获取所需的JS Bundle文件。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质。该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行实施例一或实施例二中的快递服务APP更新方法。
实施例三中的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-only memory,ROM)、随机存取存储器(Random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种基于Weex的快递服务APP更新方法,其特征在于,包括步骤:
响应用户的应用启动指令,对快递服务APP配置文件所配置的Weex页面对应的JSBundle文件、及快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储;
根据用户发起的页面访问请求获取所关联的JS Bundle文件,并依据获取的JS Bundle文件对访问的快递服务APP的Weex页面进行更新。
2.如权利要求1所述的快递服务APP更新方法,其特征在于,所述对快递服务APP配置文件所配置的Weex页面对应的JS Bundle文件进行预先下载,具体包括步骤:
检测本地存储中是否存在所述Weex页面对应的JS Bundle文件;
若不存在,对所述Weex页面对应的JS Bundle文件直接进行预先下载;
若存在且确定所述JS Bundle文件存在更新,则依据Weex页面配置文件中所配置的所述Weex页面对应的页面唯一标识所关联的资源定位符,下载更新后的JS Bundle文件。
3.如权利要求1所述的快递服务APP更新方法,其特征在于,所述对快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,具体包括步骤:
判断本地存储中是否存在所述快递服务APP配置文件所对应的灰度发布配置文件;
若不存在,对所述快递服务APP配置文件所对应的灰度发布配置文件直接进行预先下载;
若存在且确定所述灰度发布配置文件存在更新,则下载更新后的灰度发布配置文件。
4.如权利要求3所述的快递服务APP更新方法,其特征在于,还包括根据用户的属性信息和快递业务的属性信息对所述灰度发布配置文件中的灰度标签进行自定义配置的步骤,以形成自定义灰度发布策略。
5.如权利要求4所述的快递服务APP更新方法,其特征在于,所述自定义灰度发布策略包括枚举策略、范围策略、级联策略和扩展策略。
6.如权利要求5所述的快递服务APP更新方法,其特征在于,通过选定所述枚举策略、范围策略、级联策略和扩展策略中的任一种或任几种组合形成所述自定义灰度发布策略。
7.如权利要求6所述的快递服务APP更新方法,其特征在于,若选定所述范围策略时,则至少提供用于供灰度发布的待选择发布区域信息、用于供灰度发布的待选择发布对象年龄信息;若选定所述级联策略时,则至少提供一级级联的配置信息,所述级联的配置信息至少包括两种不同类型的用于供灰度发布的待选择发布要素信息。
8.一种基于Weex的快递服务APP更新装置,其特征在于,包括:
预加载模块,用于响应用户的应用启动指令,对所配置的Weex页面对应的JS Bundle文件、及快递服务APP配置文件所对应的灰度发布配置文件进行预先下载,并保存至本地存储;
更新模块,用于根据用户发起的页面访问请求所关联的JS Bundle文件,并依据获取的JS Bundle文件对访问的快递服务APP页面进行更新。
9.一种基于Weex的快递服务APP更新的终端设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至7中任一项所述的快递服务APP更新方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的快递服务APP更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011005363.6A CN112256296B (zh) | 2020-09-22 | 基于Weex的快递服务APP更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011005363.6A CN112256296B (zh) | 2020-09-22 | 基于Weex的快递服务APP更新方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256296A true CN112256296A (zh) | 2021-01-22 |
CN112256296B CN112256296B (zh) | 2024-07-19 |
Family
ID=
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094086A (zh) * | 2021-04-13 | 2021-07-09 | 北京房江湖科技有限公司 | 组件集成方法、装置、计算机可读存储介质及电子设备 |
CN113312045A (zh) * | 2021-06-10 | 2021-08-27 | 车智互联(北京)科技有限公司 | 一种数据处理方法、***及计算设备 |
CN113568655A (zh) * | 2021-07-26 | 2021-10-29 | 河北幸福消费金融股份有限公司 | 灰度发布***、方法和存储介质 |
CN113961224A (zh) * | 2021-12-23 | 2022-01-21 | 中邮消费金融有限公司 | 基于Android端的应用程序更新方法及*** |
CN114371887A (zh) * | 2022-01-12 | 2022-04-19 | 挂号网(杭州)科技有限公司 | 基于Weex框架的应用程序的预加载方法、装置、设备及介质 |
CN114995861A (zh) * | 2022-08-02 | 2022-09-02 | 中航信移动科技有限公司 | 一种基于weex的应用程序更新方法、存储介质及电子设备 |
CN115016824A (zh) * | 2022-08-09 | 2022-09-06 | 飞狐信息技术(天津)有限公司 | 一种服务安全更新方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577491A (zh) * | 2017-08-09 | 2018-01-12 | 时趣互动(北京)科技有限公司 | 一种基于Weex的移动应用内版本更新的方法、*** |
CN108846131A (zh) * | 2018-07-03 | 2018-11-20 | 深圳鼎盛电脑科技有限公司 | Weex页面渲染方法、装置、终端和存储介质 |
CN109597643A (zh) * | 2018-11-27 | 2019-04-09 | 平安科技(深圳)有限公司 | 应用灰度发布方法、装置、电子设备及存储介质 |
US20200104398A1 (en) * | 2018-09-28 | 2020-04-02 | Microsoft Technology Licensing, Llc | Unified management of targeting attributes in a/b tests |
CN111488159A (zh) * | 2019-12-20 | 2020-08-04 | 杭州当虹科技股份有限公司 | 一种能够动态配置的灰度发布方法 |
CN111581161A (zh) * | 2020-04-29 | 2020-08-25 | 上海中通吉网络技术有限公司 | 移动端应用发布方法及*** |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577491A (zh) * | 2017-08-09 | 2018-01-12 | 时趣互动(北京)科技有限公司 | 一种基于Weex的移动应用内版本更新的方法、*** |
CN108846131A (zh) * | 2018-07-03 | 2018-11-20 | 深圳鼎盛电脑科技有限公司 | Weex页面渲染方法、装置、终端和存储介质 |
US20200104398A1 (en) * | 2018-09-28 | 2020-04-02 | Microsoft Technology Licensing, Llc | Unified management of targeting attributes in a/b tests |
CN109597643A (zh) * | 2018-11-27 | 2019-04-09 | 平安科技(深圳)有限公司 | 应用灰度发布方法、装置、电子设备及存储介质 |
CN111488159A (zh) * | 2019-12-20 | 2020-08-04 | 杭州当虹科技股份有限公司 | 一种能够动态配置的灰度发布方法 |
CN111581161A (zh) * | 2020-04-29 | 2020-08-25 | 上海中通吉网络技术有限公司 | 移动端应用发布方法及*** |
Non-Patent Citations (1)
Title |
---|
颜振东: "移动应用灰度发布***的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 April 2018 (2018-04-15), pages 138 - 925 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094086A (zh) * | 2021-04-13 | 2021-07-09 | 北京房江湖科技有限公司 | 组件集成方法、装置、计算机可读存储介质及电子设备 |
CN113094086B (zh) * | 2021-04-13 | 2024-01-19 | 贝壳找房(北京)科技有限公司 | 组件集成方法、装置、计算机可读存储介质及电子设备 |
CN113312045A (zh) * | 2021-06-10 | 2021-08-27 | 车智互联(北京)科技有限公司 | 一种数据处理方法、***及计算设备 |
CN113312045B (zh) * | 2021-06-10 | 2024-04-16 | 车智互联(北京)科技有限公司 | 一种数据处理方法、***及计算设备 |
CN113568655A (zh) * | 2021-07-26 | 2021-10-29 | 河北幸福消费金融股份有限公司 | 灰度发布***、方法和存储介质 |
CN113961224A (zh) * | 2021-12-23 | 2022-01-21 | 中邮消费金融有限公司 | 基于Android端的应用程序更新方法及*** |
CN113961224B (zh) * | 2021-12-23 | 2022-03-08 | 中邮消费金融有限公司 | 基于Android端的应用程序更新方法及*** |
CN114371887A (zh) * | 2022-01-12 | 2022-04-19 | 挂号网(杭州)科技有限公司 | 基于Weex框架的应用程序的预加载方法、装置、设备及介质 |
CN114995861A (zh) * | 2022-08-02 | 2022-09-02 | 中航信移动科技有限公司 | 一种基于weex的应用程序更新方法、存储介质及电子设备 |
CN115016824A (zh) * | 2022-08-09 | 2022-09-06 | 飞狐信息技术(天津)有限公司 | 一种服务安全更新方法及相关设备 |
CN115016824B (zh) * | 2022-08-09 | 2022-12-13 | 飞狐信息技术(天津)有限公司 | 一种服务安全更新方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100191B (zh) | 一种云编译实现Java应用安装的方法、装置及*** | |
CN111381852A (zh) | 基于Flutter的应用动态更新方法、装置、存储介质及电子设备 | |
KR102077360B1 (ko) | 애플리케이션에 대한 중간 언어 코드로부터 네이티브 코드를 생성하는 기법 | |
CN111639287A (zh) | 一种页面处理方法、装置、终端设备及可读存储介质 | |
CN105786538B (zh) | 基于安卓***的软件升级方法和装置 | |
US10838778B2 (en) | Hybrid application system to utilize native device features of a mobile device | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN106685687B (zh) | 灰度发布方法及装置 | |
CN113885870B (zh) | 应用程序更新方法、电子设备、终端设备及*** | |
US10747510B1 (en) | Application runtime modification | |
US11321080B2 (en) | Patch package generation method and device | |
CN106569856A (zh) | 一种应用视图资源文件的加载方法和装置 | |
CN107844352A (zh) | 一种应用界面配置方法和装置 | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CN113805973A (zh) | 应用程序控制方法及装置、应用程序开发方法及装置 | |
CN113704110A (zh) | 用户界面的自动化测试方法及装置 | |
KR20130017337A (ko) | 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. | |
CN111367518A (zh) | 页面布局方法、装置、计算设备及计算机存储介质 | |
CN105808282A (zh) | 一种更新应用程序网页内容的方法和装置 | |
CN105786452A (zh) | 移动设备上轻量级app开发***及方法 | |
CN114372256A (zh) | 应用程序运行方法、装置、设备和存储介质 | |
CN111984520A (zh) | 埋点测试方法、计算机设备及计算机可读存储介质 | |
CN110020370B (zh) | 在客户端应用中实现动画的方法、装置及动画脚本的框架 | |
CN107092472B (zh) | 一种动态发布方法及设备 | |
US20180032510A1 (en) | Automated translation of source code |
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 |