Android开发高手课
张绍文
前微信高级工程师,Tinker负责人
立即订阅
12609 人已学习
课程目录
已完结 61 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 焦虑的移动开发者该如何破局?
免费
导读 (1讲)
导读 | 如何打造高质量的应用?
模块一 高质量开发 (25讲)
01 | 崩溃优化(上):关于“崩溃”那些事儿
02 | 崩溃优化(下):应用崩溃了,你应该如何去分析?
03 | 内存优化(上):4GB内存时代,再谈内存优化
04 | 内存优化(下):内存优化这件事,应该从哪里着手?
05 | 卡顿优化(上):你要掌握的卡顿分析方法
06 | 卡顿优化(下):如何监控应用卡顿?
06补充篇 | 卡顿优化:卡顿现场与卡顿分析
07 | 启动优化(上):从启动过程看启动速度优化
08 | 启动优化(下):优化启动速度的进阶方法
09 | I/O优化(上):开发工程师必备的I/O优化知识
10 | I/O优化(中):不同I/O方式的使用场景是什么?
11 | I/O优化(下):如何监控线上I/O操作?
12 | 存储优化(上):常见的数据存储方法有哪些?
13 | 存储优化(中):如何优化数据存储?
14 | 存储优化(下):数据库SQLite的使用和优化
15 | 网络优化(上):移动开发工程师必备的网络优化知识
16 | 网络优化(中):复杂多变的移动网络该如何优化?
17 | 网络优化(下):大数据下网络该如何监控?
18 | 耗电优化(上):从电量优化的演进看耗电分析
19 | 耗电优化(下):耗电的优化方法与线上监控
20 | UI 优化(上):UI 渲染的几个关键概念
21 | UI 优化(下):如何优化 UI 渲染?
22 | 包体积优化(上):如何减少安装包大小?
23 | 包体积优化(下):资源优化的进阶实践
24 | 想成为Android高手,你需要先搞定这三个问题
模块二 高效开发 (9讲)
25 | 如何提升组织与个人的研发效能?
26 | 关于编译,你需要了解什么?
27 | 编译插桩的三种方法:AspectJ、ASM、ReDex
28 | 大数据与AI,如何高效地测试?
29 | 从每月到每天,如何给版本发布提速?
30 | 数据评估(上):如何实现高可用的上报组件?
31 | 数据评估(下):什么是大数据平台?
32 | 线上疑难问题该如何排查和跟踪?
33 | 做一名有高度的移动开发工程师
模块三 架构演进 (9讲)
34 | 聊聊重构:优秀的架构都是演进而来的
35 | Native Hook 技术,天使还是魔鬼?
36 | 跨平台开发的现状与应用
37 | 移动开发新大陆:工作三年半,移动开发转型手游开发
38 | 移动开发新大陆:Android音视频开发
39 | 移动开发新大陆: 边缘智能计算的趋势
40 | 动态化实践,如何选择适合自己的方案?
41 | 聊聊Flutter,面对层出不穷的新技术该如何跟进?
42 | Android开发高手课学习心得
练习Sample跑起来 (8讲)
练习Sample跑起来 | 热点问题答疑第1期
练习Sample跑起来 | 热点问题答疑第2期
练习Sample跑起来 | 热点问题答疑第3期
练习Sample跑起来 | 热点问题答疑第4期
练习Sample跑起来 | ASM插桩强化练习
练习Sample跑起来 | 唯鹿同学的练习手记 第1辑
练习Sample跑起来 | 唯鹿同学的练习手记 第2辑
练习Sample跑起来 | 唯鹿同学的练习手记 第3辑
特别放送 (7讲)
Android JVM TI机制详解(内含福利彩蛋)
专栏学得苦?可能是方法没找对
专栏学得苦?可能你还需要一份配套学习书单
Native下如何获取调用栈?
聊聊Framework的学习方法
Android工程师的“面试指南”
程序员修炼之路 | 设计能力的提升途径
结束语 (1讲)
结束语 | 移动开发的今天和明天
Android开发高手课
登录|注册

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

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

动态化实践的背景

前几天在朋友圈看到说淘宝 iOS 客户端上一个版本的更新,已经是两个多月前的事情了。淘宝作为一个业务异常庞大且复杂的电商平台,这样的发布节奏在过去是很难想象的。
而现在即使不通过发布新版本,我们也能实现各式各样的运营活动和个性化推荐。依赖客户端的动态化能力,我们不需要等待应用商店审核,也无须依赖用户的主动更新,产品在快速迭代的同时,也有着非常强大的试错能力。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Android开发高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(3)

  • 林长健@Damon
    目前我扩宽使用的是插件化技术,这个是根据我们目前项目定制的,我们存在部门协同比较多,而且,很多部门都有成品的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-11
    12
  • menty
    aab是做到了插件动态下载,作用却只是单纯的减少apk体积,不能用于热更新、修复bug,遇到bug修复还是需要通过发版本解决
    2019-06-21
    1
  • Dimple
    最近公司在规划Flutter的使用,期待能有一个好的路子出来。
    2019-07-30
收起评论
3
返回
顶部