返回
如何在搭载 ARM CPU M1 的 macOS 上优化 Android Studio/Emulator?
Android
2024-03-23 00:21:46
在搭载 ARM CPU M1 的 macOS 上优化 Android Studio/Emulator
作为一名经验丰富的程序员和技术作家,我遇到了一些程序员在搭载 ARM CPU M1 的 macOS 上使用 Android Studio/Emulator 时遇到的问题。因此,我写下了这篇文章来帮助大家解决这些问题。
问题
在搭载 ARM CPU M1 的 macOS Big Sure 11.0.1 上安装 Android Studio 4.1 后,运行仿真器会出现“CPU 不支持 VT-x”的错误。即使是 ARM 镜像也会出现此问题,导致仿真器运行缓慢。
解决方案
要解决这些问题,请按照以下步骤操作:
1. 解决 VT-x 错误
- 确保已安装 Rosetta 2,它允许在 ARM 架构的 Mac 上运行 Intel x86_64 应用程序。
- 在终端中运行以下命令:
sudo spctl --master-disable
- 重启 Mac。
2. 优化仿真器性能
-
启用硬件加速:
- 打开 Android Studio。
- 前往“设置”>“外观与行为”>“系统设置”>“Android 仿真器”。
- 勾选“使用硬件 GPU 仿真”和“Enable Host CPU”。
-
减少 RAM 分配:
- 在“Android 仿真器”设置中,将“内存”值降低到 1.5GB 或更低。
-
使用较旧的 API 级别:
- 较旧的 API 级别(例如 API 25)对硬件要求较低。在“创建/选择虚拟设备”窗口中,选择较旧的 API 级别。
故障排除提示
- 确保已更新到 Android Studio 的最新版本。
- 尝试在不同端口上运行仿真器。
- 重新创建虚拟设备。
- 禁用 Hyper-V(如果已启用)。
- 确保你的 Mac 拥有足够的 RAM 和 CPU 资源。
示例代码
// 创建虚拟设备
avdManager.createAvd(
avdInfo,
avdName,
deviceBuilder.build(),
skinName,
systemImageSource,
null,
true
);
// 启动虚拟设备
emulator.launch(
vmHandle,
avdName,
avdInfo,
new LaunchOptions().setUseHostGpu(true).setEnableHostCpu(true)
);
注意事项
- 即使经过优化,在 ARM M1 上运行仿真器也可能比在 x86_64 Mac 上运行慢。
- 使用硬件加速需要 macOS 11.2 或更高版本。
- 减少 RAM 分配可能会影响应用程序的性能,因此请根据需要进行调整。
结论
按照本文中的步骤,你应该能够在搭载 ARM CPU M1 的 macOS 上成功使用 Android Studio/Emulator。虽然仿真器在 ARM M1 上的性能可能不如 x86_64 Mac,但通过这些优化,你可以显著提高其速度和效率。
常见问题解答
1. 如何检查我的 Mac 是否支持 VT-x?
- 在终端中运行以下命令:
sysctl -a | grep vmx
- 如果输出显示“vmx = 1”,则表示你的 Mac 支持 VT-x。
2. 如何安装 Rosetta 2?
- Rosetta 2 随 macOS Big Sure 11.0.1 一起提供。如果没有安装,你可以从 Apple 支持网站下载并安装它。
3. 如何禁用 Hyper-V?
- Hyper-V 是 Windows 上的虚拟化平台。如果已启用,请按照以下步骤在 macOS 中禁用它:
- 打开“系统偏好设置”。
- 点击“共享”。
- 在“共享”选项卡中,取消选中“Windows 共享”复选框。
4. 为什么在使用较新的 API 级别时仿真器运行较慢?
- 较新的 API 级别需要更多的硬件资源。如果你在使用较新的 API 级别时遇到性能问题,请尝试使用较旧的 API 级别。
5. 我可以做些什么来进一步提高仿真器性能?
- 确保你的 Mac 拥有足够的 RAM 和 CPU 资源。
- 关闭不必要的应用程序和后台进程。
- 使用 Android Studio 的 Instant Run 功能,它允许你对应用程序的代码进行更改而无需重新编译整个应用程序。