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

时间:2018-09-19 16:29:52

标签: android-emulator android-source

我正在尝试在仿真器上运行AOSP(oreo 8.1)。

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

source build/envsetup.sh
lunch aosp_arm-eng
make -j4

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

emulator

仿真器随以下警告消息启动。

无法自动检测到ADB二进制文件。在扩展设置页面中添加自定义ADB路径之前,某些仿真器功能将不起作用。

在成功启动后,模拟器上会显示“ 系统UI没有响应”消息,而且模拟器运行速度也很慢。

我们非常感谢您为解决此问题提供的帮助。

emulator screenshot: system ui isn't responding

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

3 个答案:

答案 0 :(得分:1)

通常会发生这种情况-特别是在运行CPU消耗较大的仿真的慢速计算机上,仿真器最初会加载到显示System UI isn't responding警报的状态。这并不一定意味着设备无法正常工作。从那时起,通常可以取消警报,并且设备将完全正常工作。

我不确定这里要解决的确切问题是什么。不过,假设您使用的是CI,并且-除了仿真器的呆滞之外,还希望克服System UI isn't responding警报在启动完成时出现(如标题所示)-我可以建议this bash script (gist)

#!/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 :-)"

该脚本等待启动器准备就绪并聚焦,并自动关闭系统响应警报,直到其启动。

但是,它绝不能解决仿真器的呆滞现象。

答案 1 :(得分:0)

请参见另一个问题的this answer来解决ADB错误。但是,这可能无法修复模拟器的响应能力。

如果为与主机不同的体系结构编译aosp,则仿真器的运行速度往往非常慢。如果您在x86机器上进行构建,则x86的构建将使模拟器的运行速度大大提高,而不会消耗掉机器的所有资源。

答案 2 :(得分:0)

这个答案可能对像我这样犯过错误并且可以节省时间的人很有帮助。

我在物理设备上遇到了此问题,因为我使用了非常大的应用程序图标(2100x2100)。我通过使用较小尺寸(512x512)的应用图标解决了此问题。