[发明专利]应用冷启动优化方法、装置、计算机设备及存储介质有效
申请号: | 202110098760.0 | 申请日: | 2021-01-25 |
公开(公告)号: | CN112988260B | 公开(公告)日: | 2023-07-04 |
发明(设计)人: | 高宇健;徐克强;欧平均 | 申请(专利权)人: | 杭州衣科云科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/41 |
代理公司: | 杭州知学知识产权代理事务所(普通合伙) 33356 | 代理人: | 张雯 |
地址: | 310051 浙江省杭州市滨江区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 冷启动 优化 方法 装置 计算机 设备 存储 介质 | ||
本发明涉及应用冷启动优化方法、装置、计算机设备及存储介质,该方法包括获取ReactNative应用的启动请求;对JS代码进行分包;抽象出影子路由,并由影子路由承接静态路由配置;根据分包后的JS代码通过JS代码转译技术连接影子路由和路由配置的逻辑代码,以得到优化后的JS代码;根据所述启动请求对优化后的JS代码进行懒加载。本发明实现解决了静态路由配置包含逻辑代码降低启动速度的问题,适用于所有ReactNative应用的冷启动优化同时可以达到最大程度的优化效果,极大的提升了用户体验。
技术领域
本发明涉及ReactNative优化方法,更具体地说是指应用冷启动优化方法、装置、计算机设备及存储介质。
背景技术
ReactNative是一个开源跨平台的移动开发框架,使用ReactNative开发的应用可以用一套代码打包出iOS和Android应用,并且应用的性能可以媲美原生移动应用。但是ReactNative应用冷启动时需要先把JS代码加载到内存,然后进行解析和执行,JS代码执行完成后应用才能启动。由于这一系列启动前的步骤,导致ReactNative应用启动时间大大增加,一般来说应用的页面越多、逻辑越复杂,应用的冷启动时间越长。
针对上述的问题,现有两种解决方案,一是在ReactNative页面启动之前,预先加载和执行JS代码;二是对JS代码分包和懒加载,只加载当前显示的ReactNative页面需要的代码;但是第一种方案只适合ReactNative和原生混合开发的应用,并且应用启动页面和首页不能有ReactNative代码,因为该方案需要原生应用启动后,再用子线程异步加载ReactNative应用的JS代码,所以不适用于整个应用都是ReactNative开发的应用;第二种方案没有考虑到ReactNative应用多页面路由配置问题,ReactNative应用的路由配置必须是静态的,且需要在根作用域下,也就是说所有页面的路由配置代码一定会在应用冷启动时加载和执行,路由配置代码包含导航栏按钮的逻辑响应代码,所以必然会包含复杂的业务逻辑代码,这样就会包含大量的JS代码无法懒加载执行,导致启动速度的优化效果降低。
因此,有必要设计一种新的方法,实现解决了路由配置的问题,适用于所有ReactNative应用的冷启动优化。
发明内容
本发明的目的在于克服现有技术的缺陷,提供应用冷启动优化方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:应用冷启动优化方法,包括:
获取ReactNative应用的启动请求;
对JS代码进行分包;
抽象出影子路由,并由影子路由承接静态路由配置;
根据分包后的JS代码通过JS代码转译技术连接影子路由和路由配置的逻辑代码,以得到优化后的JS代码;
根据所述启动请求对优化后的JS代码进行懒加载。
其进一步技术方案为:所述对JS代码进行分包,包括:
将所述JS代码按照页面组织进行打包。
其进一步技术方案为:所述抽象出影子路由,并由影子路由承接静态路由配置,包括:
抽象出影子路由,将路由逻辑配置代码从根作用域下沉到路由组件,以使影子路由承接静态路由配置。
其进一步技术方案为:所述根据分包后的JS代码通过JS代码转译技术连接影子路由和路由配置的逻辑代码,以得到优化后的JS代码,包括:
对分包后的代码进行解析,以得到抽象语法树;
对抽象语法树进行转换,以将路由配置的逻辑代码与影子路由连接;
根据转换后的抽象语法树生成JS代码,以得到优化后的JS代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州衣科云科技有限公司,未经杭州衣科云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110098760.0/2.html,转载请声明来源钻瓜专利网。