40 | 动态化实践,如何选择适合自己的方案?
张绍文
该思维导图由 AI 生成,仅供参考
在专栏第 36 期《跨平台开发的现状与应用》中,我分享了 H5、React Native/Weex、小程序这几种常见的跨平台开发方式。站在开发的角度,虽然跨平台的开发效率要比 Native 开发更高,但是这并不是大前端在国内盛行的最主要原因。
相比跨平台能力,国内对大前端的动态化能力更加偏执。这是为什么呢?移动互联网已经发展十年了,随着业务成熟和功能的相对稳定,整体重心开始偏向运营,强烈的运营需求对客户端架构和发布模式都提出了更高的要求。如果每个修改都需要经历开发、上线、版本覆盖等漫长的过程,根本无法达到快速响应的要求。
所以 H5、React Native/Weex、小程序在国内的流行,可以说是动态化能力远比跨平台能力重要。那我们应该选择哪一种动态化方式呢?正如我在跨平台开发所说的,目前这几种方案或多或少都还存在一些性能问题,如果一定要使用 Native 开发方式,又有哪些动态化方案?今天我们一起来学习应该如何选择适合自己的动态化方案。
动态化实践的背景
前几天在朋友圈看到说淘宝 iOS 客户端上一个版本的更新,已经是两个多月前的事情了。淘宝作为一个业务异常庞大且复杂的电商平台,这样的发布节奏在过去是很难想象的。
而现在即使不通过发布新版本,我们也能实现各式各样的运营活动和个性化推荐。依赖客户端的动态化能力,我们不需要等待应用商店审核,也无须依赖用户的主动更新,产品在快速迭代的同时,也有着非常强大的试错能力。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
移动互联网发展进入第二个十年,运营需求对客户端架构和发布模式提出更高要求。国内动态化能力远比跨平台能力重要。文章分享了H5、React Native/Weex、小程序等动态化方案,并掏出了四种类型的动态化方案:Web容器增强、虚拟运行环境、业务插件化和布局动态化。每种方案都有自身的优缺点和适用场景,选择时需要考虑业务类型、团队技术栈和代码历史包袱。作者建议公司内部统一使用同一种动态化类型,以实现统一技术栈和代码迁移。文章深入探讨了动态化实践的背景、常见动态化方案以及选择动态化方案的因素,为读者提供了对动态化方案的全面了解。热修复和插件化方案在国内Android生态中存在一些问题,但随着Android Q的支持,它们重新焕发了活力。布局动态化在提高性能的同时,实现了UI的动态新增和修改,具有较低的接入和学习成本。动态化方案的发展仍在不断演变,但无论未来采用何种方案,都是为了给用户更好的体验,同时让业务可以更快地迭代。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》,新⼈⾸单¥59
《Android 开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- 持续思考持续做的牛牛目前我扩宽使用的是插件化技术,这个是根据我们目前项目定制的,我们存在部门协同比较多,而且,很多部门都有成品的APP,最重要的是,我们目前没有IOS端,那么我们想快速集合各个部门的功能,使用插件化最适合不过,对现有的APP进行改造,打包出来APK,直接在我们的宿主上运行。 我们也尝试过atlas这样的技术,但是对我来说,atlas是真的重,一般的项目真的慎重考虑使用。这里我觉得所有的项目都适合插件化,Android优化中有一个指标就是APK大小,如果你插件化用的好,你主APK可以小到怕人,插件化还有个好处就是一切基于原生,在铺开内部推广的时候,可以得到公司内部Android开发人员的快速响应,帮助你扩大影响力,实现业务能力爆炸式上升。 RN、Weex这类技术在移动端上面我一直觉得是比较坑的东西,但是我很喜欢,因为他们也是一种很好的方式,但是我说他坑就是因为他其实在不同平台上适配起来是很麻烦的,但是话又说回来,如果你有机会去研究并能落实的话,那肯定是很好的,因为能学习到Android与IOS上RN的适配技巧,这些其实是更加宝贵的经验,与此同时,如果你有这样的经验,现在flutter这么火,你一定能快速上手,因为其实任何跨平台的开发技术,都离不开系统兼容适配的,因为系统是真的不一样,下面跑的东西不一样,你说要不要适配? 现在个人是比较推荐flutter,因为同样是跨平台方案,flutter相比RN下,flutter要做的适配问题肯定是比RN要少的,因为flutter使用的是另外的渲染流程。 通过个人经验,不管是插件化、动态组件化、RN Weex、flutter,千万别给弄的头昏眼花,这些技术我们其实都在实践,也就是说,没有对比就没有最好的方案,只有你自己去对比过了,才能更好的结合你的项目进行更好的定制与改进,好的架构是演进来的,别忘了。 都要学?是的,我认为一个合格的Android移动开发者,你都要懂,那有这么多时间?这里就要说一下,其实他们有很多的共性,只要你搞通一个,比如插件化你搞通了,atlas、滴滴VirtualApk、360Replugin等等这类都是差不多的,RN你弄通了,Weex肯定也不难,flutter也一样,虽然他们面向的开发框架不一样,甚至语言不一样,但是牛逼的你慢慢会发现,语言、上层封装框架,其实都不是什么大问题。 最后感谢作者的分享,学习中。
作者回复: 是的,一通则百通
2019-04-11320 - mentyaab是做到了插件动态下载,作用却只是单纯的减少apk体积,不能用于热更新、修复bug,遇到bug修复还是需要通过发版本解决
作者回复: Google Play是不允许动态更改代码的
2019-06-211 - 钱钱钱我爱钱特别是 Android Q 之后,动态加载的 Dex 都只使用解释模式执行,会加剧对启动性能的影响 解释模式是什么?在哪里可以查到?查了三天没看到任何信息2021-07-10
- hanazawakana数据通道化该如何实现2020-06-26
- 程序员小跃最近公司在规划Flutter的使用,期待能有一个好的路子出来。2019-07-30
收起评论