很抱歉,如果这个问题过于繁琐,我真的无法找到一个更好的React Native专家社区来询问..
在Android上调试我的应用程序时(运行" react-native run-android")我注意到动画有一种不稳定的感觉。这不是很糟糕,但绝对是一个轻微的滞后。对于诸如切换选项卡,浮动操作按钮和更改视图之类的事情,会发生这种情况。
这是因为我在调试模式下运行热重载这样的事情吗?或者我应该担心吗?有什么我可以做的来提高性能..
答案 0 :(得分:2)
JS是一个单线程环境,您所声明的操作通常会导致Js线程负载过重。由于本地反应中的大多数动画仍然不是原生 - 在执行某些任务时,您会看到不稳定的动画。在调试模式下,此问题更加明显。
没有原生动画表现不佳,因为它们在Js中插入动画值,并调用本机方法(通过桥)来更新动画视图。
有两件事可能会占用您的应用。
日志在调试中启用,每个console.log
通过网桥调用本机Log
方法。你拥有的console.log
越多,桥就越繁忙。这大大降低了调试性能。
Js动画效果不佳。我知道Facebook上的优秀人员正在投入大量资金将动画卸载到本机方面。我认为NavigatorExperimental
正在这样做。
您可能需要查看react-native-navigation,它为您提供完全原生的导航解决方案,以完全避免这些问题。只是免责声明,我是该项目的开发人员之一。
答案 1 :(得分:1)
在调试期间,正在执行其他任务,例如创建警告和验证propTypes。这些任务会影响性能。在生产中运行应用程序时,您将看到自动性能改进。
要了解您的应用在生产中的效果,您可以通过
停用 JS Dev Modeadb shell input keyevent 82
(使用{{ 1}}用于设备或-d
用于模拟器)),通常需要禁用开发模式,例如在开发动画时。禁用 JS Dev Mode 也是Profiling Android UI Performance的先决条件。
有趣的读物是关于Performance的React Native的文档,其中部分解决了这个问题。