2016-09-30 38 views
2

很抱歉,如果这个问题太繁琐期间期待的动画表现不佳,我无法真正找到发生反应本土专家请教一个更好的社会..我们应该调试

在调试我的Android应用(运行通过“react-native run-android”),我注意到动画有一个波涛汹涌的感觉。这不是可怕的,但肯定是稍微滞后。这发生在切换选项卡,浮动动作按钮和更改视图等事情上。

是因为我在调试模式下运行时遇到了类似热重新加载的问题吗?或者我应该担心?有什么我可以做,以提高性能..

+0

是的,程序通常在调试时运行速度较慢。 – Carcigenicate

+0

具体反应本机虽然吗? –

+0

不是特别没有,但总的来说是。这可能更多取决于系统和调试器。 – Carcigenicate

回答

2

JS是一个单线程的环境,并且你所陈述的操作通常导致Js线程的负载很重。由于反应原生动画中的大部分动画是仍然不是原生 - 执行某些任务时会看到动荡不安的动画。在调试模式下,这个问题更加明显。

没有本地动画执行效果不佳,因为它们是在Js中插入动画值,并调用本地方法(通过网桥)更新动画视图。

两件事情可能会占用您的应用程序。

  1. 日志在调试启用,每个console.log调用本地方法Log过了桥。你有更多的console.log,桥会更忙。这极大地降低了调试性能。

  2. Js动画只是不表现。我知道Facebook上的好人们正在投入大量的资金来将动画分流到本地。我认为NavigatorExperimental正在这样做。

你可能要考虑react-native-navigation它为您提供一个完全原生的导航解决方案,以完全避免这些问题。只是一个免责声明,我是开发该项目的开发人员之一。

1

在调试过程中,正在执行其他任务,如创建警告和验证propTypes。这些任务会影响性能。在生产环境中运行应用程序时,您会看到自动性能改进。

为了看看你的应用程序将在生产环境中执行,您可以禁用JS开发模式通过

  1. 在模拟器中打开开发者菜单(命令⌘ + 中号)或您的物理设备(振动设备或运行adb shell input keyevent 82(与-d用于设备或用于-e仿真器)),
  2. 选择开发设置和取消选中JS开发模式
  3. 最后通过按R两次重新加载js包。

禁用开发模式通常是必要的,例如,当开发动画。禁用JS开发模式也是Profiling Android UI Performance的先决条件。

一个有趣的阅读是React Native有关Performance的文档,其中解决了这个问题。

相关问题