Android 开发高手课
张绍文
前微信高级工程师,Tinker 负责人
52202 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 62 讲
导读 (1讲)
模块一 高质量开发 (25讲)
Android 开发高手课
15
15
1.0x
00:00/00:00
登录|注册

40 | 动态化实践,如何选择适合自己的方案?

在专栏第 36 期《跨平台开发的现状与应用》中,我分享了 H5、React Native/Weex、小程序这几种常见的跨平台开发方式。站在开发的角度,虽然跨平台的开发效率要比 Native 开发更高,但是这并不是大前端在国内盛行的最主要原因。
相比跨平台能力,国内对大前端的动态化能力更加偏执。这是为什么呢?移动互联网已经发展十年了,随着业务成熟和功能的相对稳定,整体重心开始偏向运营,强烈的运营需求对客户端架构和发布模式都提出了更高的要求。如果每个修改都需要经历开发、上线、版本覆盖等漫长的过程,根本无法达到快速响应的要求。
所以 H5、React Native/Weex、小程序在国内的流行,可以说是动态化能力远比跨平台能力重要。那我们应该选择哪一种动态化方式呢?正如我在跨平台开发所说的,目前这几种方案或多或少都还存在一些性能问题,如果一定要使用 Native 开发方式,又有哪些动态化方案?今天我们一起来学习应该如何选择适合自己的动态化方案。

动态化实践的背景

前几天在朋友圈看到说淘宝 iOS 客户端上一个版本的更新,已经是两个多月前的事情了。淘宝作为一个业务异常庞大且复杂的电商平台,这样的发布节奏在过去是很难想象的。
而现在即使不通过发布新版本,我们也能实现各式各样的运营活动和个性化推荐。依赖客户端的动态化能力,我们不需要等待应用商店审核,也无须依赖用户的主动更新,产品在快速迭代的同时,也有着非常强大的试错能力。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《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也一样,虽然他们面向的开发框架不一样,甚至语言不一样,但是牛逼的你慢慢会发现,语言、上层封装框架,其实都不是什么大问题。 最后感谢作者的分享,学习中。

    作者回复: 是的,一通则百通

    3
    20
  • menty
    aab是做到了插件动态下载,作用却只是单纯的减少apk体积,不能用于热更新、修复bug,遇到bug修复还是需要通过发版本解决

    作者回复: Google Play是不允许动态更改代码的

    1
  • 钱钱钱我爱钱
    特别是 Android Q 之后,动态加载的 Dex 都只使用解释模式执行,会加剧对启动性能的影响 解释模式是什么?在哪里可以查到?查了三天没看到任何信息
  • hanazawakana
    数据通道化该如何实现
  • 程序员小跃
    最近公司在规划Flutter的使用,期待能有一个好的路子出来。
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部