# 1、概述

  • 分析结论:

可以尝试做一些UI界面、尽量减少调用底层API的需求。相比纯H5的页面功能体验好了不少。

  • 优点

    • 1、开发迅速
    • 2、支持热更新
  • 不足与风险:

    • 调用原生API的不流畅(诸如wifi、蓝牙、GPS、NFC)

    • 对于项目中使用一些如分享,推送等主流的第三方文件,对于react Native基本上不支持

    • 更新麻烦

# 2、性能体验与关键指标分析

首次打开需要加载 jsBundle,会有好几秒的白屏时间,后面再打开也会有1秒左右的白屏时间,而且可以看到背景图片的渲染会比二维码略慢一点,不过这些应该是有优化空间的,而且在打开的瞬间,可以看到app的启动反应也是很快的。

# 内存

从上面的内存占用来看,并不会因为使用 React Native 而导致内存占用过多,而是在正常范围内。

# CPU

由于demo做了简单的UI界面,没有什么复杂操作,CPU并没有什么波动。

# APK大小

原生应用大小:2M RN应用:8M React Native 里面为了兼容,加载了 armeabi-v7a 和 x86 的 so 包,当去掉 x86 的 so 包之后,RN绑定号 apk 大小减少到 4509KB

# 热更新

目前 React Native 的热更新方案有微软的 CodePush 和 reactnative中文网的 react-native-pushy,但是这些方案都是使用它们的服务器,不可控,因此需要搭建自己的热更新服务器。

热更新方案也有全量和增量,全量热更新实现起来比较简单,省时省力;增量热更新实现起来比较复杂,省流量,用户体验会更好。

React Native 的热更新就是更新 JsBundle 文件,更新的步骤如下:

# 其他问题

  • 启动白屏的问题
  • 封装基础API:埋点、网络请求、获取基础数据
  • 动画、列表、桥接调用API耗时、复杂界面刷新、常规组件性能测试
Last Updated: 4/23/2020, 9:33:36 AM