android-emulator - 在模拟器上运行 AOSP 构建时出现错误“系统 UI 没有响应”
问题描述
我正在尝试在模拟器上运行 AOSP(oreo 8.1)构建。
我使用以下命令来构建 AOSP。
source build/envsetup.sh
lunch aosp_arm-eng
make -j4
我的构建成功了。现在我正在尝试使用以下命令在模拟器上运行。
emulator
模拟器以以下警告消息启动。
无法自动检测 ADB 二进制文件。在扩展设置页面中添加 ADB 的自定义路径之前,某些模拟器功能将无法使用。
成功启动后,模拟器上显示“系统 UI 没有响应”消息,模拟器运行速度也很慢。
非常感谢解决此问题的任何帮助。
emulator: WARNING: system partition size adjusted to match image file (2050 MB > 200 MB)
emulator: WARNING: encryption is off
main-loop: WARNING: I/O thread spun for 1000 iterations
解决方案
它经常发生 - 特别是在运行 CPU 消耗仿真的慢速机器上,仿真器最初会加载到System UI isn't responding
显示警报的状态。这并不一定意味着设备不工作;通常情况下,警报可以被解除,并且从那时起设备将完全正常工作。
我不确定这里要解决的确切问题是什么。尽管如此,假设您在 CI 上运行并且 - 除了模拟器的迟缓之外,希望克服System UI isn't responding
启动完成时出现的警报(如标题所示) - 我可以建议这个 bash 脚本(要点):
#!/bin/bash
echo ""
echo "[Waiting for launcher to start]"
LAUNCHER_READY=
while [[ -z ${LAUNCHER_READY} ]]; do
UI_FOCUS=`adb shell dumpsys window windows 2>/dev/null | grep -i mCurrentFocus`
echo "(DEBUG) Current focus: ${UI_FOCUS}"
case $UI_FOCUS in
*"Launcher"*)
LAUNCHER_READY=true
;;
"")
echo "Waiting for window service..."
sleep 3
;;
*"Not Responding"*)
echo "Detected an ANR! Dismissing..."
adb shell input keyevent KEYCODE_DPAD_DOWN
adb shell input keyevent KEYCODE_DPAD_DOWN
adb shell input keyevent KEYCODE_ENTER
;;
*)
echo "Waiting for launcher..."
sleep 3
;;
esac
done
echo "Launcher is ready :-)"
该脚本等待启动器准备就绪并处于焦点位置,并自动关闭系统响应警报。
但是,它绝不会解决模拟器的迟缓问题。
推荐阅读
- java - 带有openapi和openapi-generator-maven-plugin的requestbody中的多个文件
- jquery - 使用来自 Django MEDIA 文件夹的 AJAX 返回的 IMAGE URL
- node.js - npm install throws 和错误告诉 node 不是一个可识别的命令
- python - 键名无效时的 TypedDict
- angular - 使用 moment.js 在 DatePicker 角度材料上过滤周末
- phpstorm - PhpStorm 无法配置 JSHint
- service-worker - 如何使用 pwa 添加多个应用程序(添加到主屏幕)
- android - 如何从 couchbase 服务器获取每个更改通知?
- python - django import-export 不适用于 mptt
- javascript - 如何防止 Liferay SPA SennaJS 上的多个事件监听器?