android app热更新方案探讨(一)

来源:互联网 发布:js orientationchange 编辑:程序博客网 时间:2024/06/11 05:55

   写在前言:刚学习android时候,使用的是前辈们分享到网上公开的资源,入门后,急需各种项目源码来学习编程,也是从网上找的项目源码,再后来,需要解决bug,同样是前辈们分享出来的解决方案,再到后来,需要解决方案的时候,也是找的各类资源。许许多多的前辈们,在网上分享自己的学习资源、经验,给与了我们这些后来者很大的帮助,在此先感谢广大网友的无私分享。后来,自己也想在网上分享一下学习心得,但一方面是我也是从别的朋友学习到,没必要再分享出来了。另外一方面是自己技术不够,怕把大家带到错误的方向上了。琢磨Hybrid也有一段时间了,在这期间也有许许多多的朋友的帮助和分享。我想趁着这个机会,把这些给写下来,如果能帮到朋友更好。技术有限,难免有遗漏或错误的地方,欢迎大家指教,谢谢大家!

  app更新速度越来越快,功能也越来越多。辛辛苦苦的等待半夜凌晨的到来,然后上线app。刚上完线,duang!出bug了,瞬间心情跌到了谷底了。心情不好不是最要紧的,bug不好才要命。于是乎,辛辛苦苦的去抓崩溃log,然后再紧急修复上线。来回折腾不说,用户也开骂了,刚升级完成,又来了个更新包,这是在逗我玩吗?可怜的流量啊,就这样在一次又一次的升级中,没了。于是,部分用户在愤怒中,卸载了app,用户就这样失去了。

  每次只有更新app,才能解决这些问题,那么,我们能不能使用某种技术,实现用户不需要下载安装新版的app,就能实现更新呢?经过一番搜索后,发现主要有两个方向来解决热更新的问题。一是classLoader方案,比较出名的有Ali的AndFix框架。但这些方案并不适用于所有的系统(至少暂时还没解决)。二是插件化,但此方案需要考虑的细节也极多,我暂时没有做出这种方案的Demo。三是Hybrid开发,此方案也有大致也有两种类型,WebView加载Html页面和React-Native。四是等待android官方推出解决方案。

  Hybrid开发,是为了解决跨平台开发。但又不是单纯的WebView加载html,Hybrid开发,是利用html来构建页面,同时又保留了调用原生代码的功能。我在Hybrid开发的时候,遇到了无法通过js实现的功能的时候,就利用js调用原生代码(比如:获取电量、WiFi信号、设备信息等等)来解决js无法处理的事情。

  今天暂时先探讨到这里,下次会继续探讨Hybrid实现热更新的方案。技术有限,难免会有遗漏或者错误的地方,欢迎大家交流,谢谢大家!

1 0
原创粉丝点击