目前接触到的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

五、热修复


更多相关文章

  1. Android高频面试专题 - 基础篇(一)Activity
  2. 常用控件的使用方法(参考书籍'第一行代码')
  3. android通过Location API显示地址信息的实现方法
  4. Android中在一个应用中去启动另外一个应用
  5. Android(安卓)Wifi方法大全
  6. Android-webview和js脚本语言交互的时候怎么获取js方法的返回值
  7. android播放音乐的三种方法实现
  8. Eclipse无法安装ADT插件的解决
  9. Android中显示html标签或者带图片

随机推荐

  1. Android:简单联网获取网页代码
  2. 组件居中显示 安卓
  3. Android开发问题记录——“The connectio
  4. 第一行代码笔记之——Activity启动模式
  5. Android图文布局【整理】
  6. Android(安卓)开发笔记 - Android(安卓)S
  7. 设置可见和隐藏
  8. android AutoCompleteTextView
  9. android view的触摸事件坐标
  10. Android中获取时间