目前接触到的Android几种动态化方案:

1、WebView

2、H5/Hybird

3、插件化

4、ReactNative

5、热修复

6、小程序

一、WebView

WebView是最常见的一种动态化方案,跨平台(Android/iOS),可以不依赖于发版实时更新,其劣势在于体验和性能不如NA的体验,有些功能需要依赖客户端提供端能力实现。

二、Hybird

Hybird是一种NA + Web的混合开发模式,底层依赖于Native提供的容器,上层使用Html&Css&JS做业务开发,底层透明化、上层多样化,这种场景非常有利于前端介入,非常适合业务快速迭代,对于需要快速试错、迅速占领市场的团队来说,Hybrid一定是不二的选择。但Hybird的体验肯定比不上Native,所以生存下来后还是需要做体验更好的原生APP。

三、插件化

插件化技术的出现一个大背景是Android有一个史上最坑的天花板 —— 65535方法数的限制,它要求在Android的一个dex文件中的方法数不能超过65535个方法。随着业务逻辑的复杂导致客户端代码的急剧膨胀,很容易就碰触到了65535方法数的限制。有人提出了通过拆分dex的方法规避天花板的限制,但随着代码量和各种资源的不断增大,导致一次编译、运行、调试的速度降低,启动速度慢,导致开发成本高、用户体验变差。

在运营为王的时代对模块的热更新提出了更高的要求,所谓热更新就是在不依赖发版的情况下,对业务进行实时的更新,也可以对客户端一些线上问题进行实时修复。在业务层面,功能模块的解耦以及维护团队的分离是大势所趋,各个团队维护着同一个APP的不同模块,如果每个模块升级新功能都要对整个APP进行升级,那么发布流程不仅复杂而且效率低下,在讲究小步快跑和持续迭代的互联网时代,对开发效率和版本迭代速度有更高的要求。

插件化的方案可以解决宿主APK中的Java方法数限制;宿主APP可以不通过系统安装和使用插件APK;可以只在指定的时候才加载作为功能模块的APK;插件APK同一套代码可以作为插件和独立运行的APK;兼容Android所有版本(AndroidP待定)。

四、ReactNative

ReactNative(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,致力于提高多平台开发的开发效率 —— Learn once, write anywhere,跨平台(支持iOS/Android)。

关于H5、NA和RN应用的对比分析,可见文章:http://vczero.github.io/react_native/H5-React-Native-Native.html

五、热修复

Android动态化方案相关推荐

  1. 深度揭秘阿里移动端高性能动态化方案Weex

    2016年Qcon大会首日,阿里巴巴资深总监.淘宝移动平台.阿里百川负责人庄卓然宣布移动端高性能动态化方案Weex即时内测,并将于6月开源.此消息一出,群情汹涌,在座的程序猿.攻城狮们纷纷拿起手机扫码 ...

  2. Weex动态化方案与双十一实践

    在2017年1月12日 Weex Conf 2017上,来自手机淘宝移动平台Weex团队的凝砺结合淘宝实际业务分享了Weex动态化方案和双十一实践,本文先介绍了Weex的整体架构,接着重点分享了Wee ...

  3. 知乎移动端动态化方案 :Morph

    点击"开发者技术前线",选择"星标?" 13:21 在看|星标|留言,  真爱 作者: @于鹏洋 @纸西 @二二三三@于天航 说明:于天航为知乎高级iOS工程师 ...

  4. Android适应方案汇总(三)

    在Android适应方案汇总(一个).(两)在.我们理解一些基本概念. 那么详细的开发,我们应该重视起来. 首先,我们需要知道.关键的事实是,这两个适配器: (1).这点在单位的使用上用dp.sp以及 ...

  5. Thresh — 基于JS的Flutter动态化方案

    Thresh - 基于JS的Flutter动态化方案 github上最新开源的项目,含金量很高哦

  6. Litho在美团动态化方案MTFlexbox中的实践

    1. MTFlexbox MTFlexbox是美团内部应用的非常成熟的一种跨平台动态化解决方案,它遵循了CSS3中提出的Flexbox规范来抹平多平台的差异.MTFlexbox适用于重展示.轻交互的业 ...

  7. 猫客页面内组件的动态化方案-Tangram 2.0

    Tangram 2.0 库 Android Tangram-Android Virtualview-Android iOS Tangram-iOS Virtualview-iOS 背景 技术背景 一直 ...

  8. Litho在动态化方案MTFlexbox中的实践

    1. MTFlexbox MTFlexbox是美团内部应用的非常成熟的一种跨平台动态化解决方案,它遵循了CSS3中提出的Flexbox规范来抹平多平台的差异.MTFlexbox适用于重展示.轻交互的业 ...

  9. Android分包方案multidex

    对于功能越来越复杂的app的两大问题 一:我们自己应用的方法数超过了65536  我们所说的方法数限制,这个方法数包括了jar包,框架,还有我们自己应用的代码,当我们应用的代码超过65536时,结果如 ...

最新文章

  1. IntelliJ IDEA详细配置
  2. 496.下一个更大元素I
  3. 计算机音乐刚好遇见你乐谱,《刚好遇见你》曲谱_刚好遇见你乐谱
  4. 零基础入门人工智能有门槛吗?学会这些就够了
  5. [JavaWeb-JavaScript]JavaScript流程控制语句
  6. Apache JMeter 菜单说明
  7. Myeclipse 安装所有插件
  8. 使用RMAN备份数据库和归档日志合二为一
  9. python字典api_python接口自动化(九)--python中字典和json的区别(详解)
  10. 顺序链表,动态数组实现
  11. 浅谈《原神》中的图形渲染技术
  12. qlistview 自定义控件_QT中QListView中放置自定义控件并添加滚动条
  13. 音乐盒单片机c语言课程设计,基于PIC16F887单片机数字音乐盒课程设计.doc
  14. 线性二次调节器(LQR)
  15. 计算机组成原理试题解析答案,计算机组成原理习题答案
  16. 电商购物评论的情感分析
  17. Java爬虫(三)后台发请求获取页面解析数据
  18. unity不规则点击_【Unity游戏开发】UGUI不规则区域点击的实现
  19. python的seek用法
  20. 2022年宋干节活动-乌隆他尼皇家大学

热门文章

  1. oracle数据库有触发器,Oracle数据库触发器(Triggers)
  2. PMP备考错题集-作业习题二
  3. yun mysql 安装_yun安装mysql
  4. 基于Matlab/Simulink的简单三相交流系统扫频仿真
  5. C#EXCEL操作大全
  6. 字符集编码(四):UTF
  7. 3.5寸服务器硬盘v4,六碟巨兽 希捷Enterprise Capacity 3.5 HDD v4评测
  8. Java--贪吃蛇日志
  9. ZDNS联合中兴为埃塞俄比亚建设国家顶级域名系统
  10. 伤寒论(太阳病笔记)——学习笔记,更待前辈指点