反应本机。为什么 android 模拟器这么慢?

React Native. Why android emulator is so slow?

同一项目在 iOS 模拟器上运行 60FPS,但在 android 模拟器中一切都很慢。我什么也没做,但帧速率从 53 跳到 56。JS FPS 和 UI FPS 总是相同的。我创建了动画组件,当我点击它时,一切都在 iOS (~60FPS) 上顺利运行,但是 android 的 JS FPS 和 UI FPS 下降到 10FPS。正常吗? 我读过 the link。调试模式已关闭,代码中没有任何 console.log() 。我插入 Android phone,界面变得更流畅,但是当我开始动画时 JS FPS 下降到 ~14。 React Native 中的动画使用原生线程。这怎么可能?我应该应用一些调整吗?

P.S。 Mac Mini 2012 年末,四核 i7,16Gb RAM,SSD。 AVD:Pixel XL,Android 6,x86,API 23,2048Mb RAM,图形 - 硬件 GLES 2.0,多核 CPU 4。 使用了HAXM,据我了解...

如果您发布了一些关于您的硬件和设置的信息,或者至少,我们谈论的是什么模拟器 API,将会有所帮助。 Android5个? 8? 9?你的硬件是什么?内存?显示模拟器设置的屏幕截图在哪里?

首先,Android模拟器根据使用的处理器有不同的优化方法。如果您使用 Android SDK 工具 v24 安装模拟器,update the SDK tools to v27 as shown here.

首先要考虑的事情:

  • 您必须使用最新Android SDK 工具版本
  • Intel 处理器需要 HAXM 才能 运行 更快
  • AMD 处理器需要 Windows 管理程序平台 启用
  • 您的模拟器应该至少有 2048 MB RAM 或更多

另一个提示 - 有一个选项 运行 无需调试等进行性能测试:

通过 'shaking' 设备打开菜单(在 Mac 上使用 cmd+m,在 Windows 上使用 ctrl+m)并打开设置。然后将 JS Dev Mode 设置为 false,您将看到该应用程序的运行性能与在真实设备上的运行性能非常接近。唯一的缺点是您没有获得调试日志,但有助于查看应用程序在真实设备上的行为方式。

更新 如果您仍想查看控制台日志和其他调试信息,可以在 Android Studio 中的 Logcat 中访问这些信息,而不会牺牲性能。

更新 2 我已经切换了一个 M1 Mac,它在 ARM 架构上 运行s,模拟器现在非常快。如果您要在 Mac 上进行大量 React Native 开发,我建议您购买 M1 Mac!