Ответ 1
Эмулятор Android основан на QEMU, который должен имитировать различные аппаратные устройства, которые можно найти в Android, работающем на реальном телефоне. В частности, он имитирует мифический телефон под названием "золотая рыбка".
При сохранении моментального снимка операционная память устройства должна быть сохранена в снимке. Но это не просто означает основную оперативную память - это также относится ко всем другим фидбитным битам аппаратного обеспечения телефона - например, регистры процессора, состояние оборудования часов реального времени и любые/все регистры в каждом другом часть оборудования в этом виртуальном телефоне.
Если вы не включили графический процессор, то состояние графического оборудования довольно просто - это будет фреймбуфер и несколько регистров, представляющих размерность x, размерность и формат пикселей.
Однако, если вы включили сквозной переход на GPU, сохранение состояния этого оборудования было бы намного сложнее. QEMU должен был бы сохранить состояние каждой текстуры, какие камеры настроены, геометрию и еще несколько вещей, которые хранятся в графическом процессоре. Конвейер команд, поступающих на GPU, также должен быть прерван в произвольной точке, и состояние выполнения этих команд записано (трудно, поскольку там может быть частично выполнен многоступенчатый конвейер и некоторые инструкции).
Кроме того, для qemu может быть очень сложно получить эту информацию, поскольку qemu просто передает его на главный GPU. Нет никакой возможности для qemu запросить драйвер GPU хоста точно, что было выполнено, а что нет. По крайней мере, для этого потребуется поддержка операционной системы хоста и драйвера графического процессора, и даже может потребовать внесения изменений в конвейер GPU для упрощения таких операций, чтобы конвейер можно было остановить и перезапустить в произвольных точках.