在模拟器上运行 AOSP 构建时出现错误“系统 UI 没有响应”

Var*_*van 2 android-emulator android-source

我正在尝试在模拟器上运行 AOSP(oreo 8.1) 构建。

我使用以下命令来构建 AOSP。

source build/envsetup.sh
lunch aosp_arm-eng
make -j4
Run Code Online (Sandbox Code Playgroud)

我的构建成功了。现在我正在尝试使用以下命令在模拟器上运行。

emulator
Run Code Online (Sandbox Code Playgroud)

模拟器启动并显示以下警告消息。

无法自动检测 ADB 二进制文件。在扩展设置页面中添加 ADB 的自定义路径之前,某些模拟器功能将无法使用。

成功启动后,模拟器上显示“系统用户界面没有响应”消息,模拟器运行速度也很慢。

非常感谢解决此问题的任何帮助。

模拟器截图:系统用户界面没有响应

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
Run Code Online (Sandbox Code Playgroud)

d4v*_*idi 7

它经常发生 - 特别是在运行消耗 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 :-)"
Run Code Online (Sandbox Code Playgroud)

该脚本等待启动器准备就绪并处于焦点状态,并自动解除系统响应警报。

然而,它并没有解决模拟器的迟钝问题。