Где Android хранит снимки, использованные в последних приложениях?

iOS делает снимок экрана приложения каждый раз, когда оно отправляется в фоновый режим (возможно, для отображения в виде эскиза при просмотре последних приложений. Подробности доступны в этом вопросе о переполнении стека ).

Я провел небольшое исследование и понял, что эта же функция используется и в Android. Этот вопрос о переполнении стека касается этого.

Это проблема безопасности, если эти снимки хранятся где-то на устройстве и доступны другим приложениям.

Я хотел протестировать эту функцию для своего приложения, но понятия не имею, где Android хранит эти снимки. Я немного погуглил, но ничего не нашел о месте хранения.

Где находятся эти снимки? Доступно ли это для пользователей, отличных от root?

Ответы (2)

Если то, что вы просите, это расположение миниатюр, отображаемых Android при переключении приложений, то (в моей LineageOS 13) они хранятся внутри /data/system/recent_images в виде файлов PNG с именем x_task_thumbnail.png ( где x , возможно, случайное число ).

Поскольку эскизы принадлежат пользовательской системе и групповой системе , а их восьмеричные разрешения равны 600 , вам нужен root для доступа к ним любым способом.

Не удалось найти каталог в моем Lenovo с Kitkat. :(

В качестве продолжения ответа продавца масок смерти , комментария Ирфана Латифа , а также на основе самостоятельных экспериментов на Nexus 5 под управлением Lineage OS 14.1 (Android 7.1) и самостоятельных исследований,

Каталог находится <SYSTEM_DIR><IMAGES_DIRNAME>там, где

  • SYSTEM_DIR:

  • IMAGES_DIRNAME: общие значения — «recent_images» и «snapshots» , но они могут быть настроены поставщиками/производителями ПЗУ.

Формат имени файла моментальных снимков <TASK_ID><TASK_THUMBNAIL_SUFFIX><IMAGE_EXTENSION>:

  • TASK_ID: идентификатор задачи (произвольное возрастающее число).
  • TASK_THUMBNAIL_SUFFIX: по умолчанию _task_thumbnail
  • IMAGE_EXTENSION: по умолчанию .png

Для доступа к этим каталогам и их изображениям требуется root-доступ .


Источники:

/data/system_ce/0/snapshotsнаходится в коде AOSP, не настроено: android.googlesource.com/platform/frameworks/base/+/… .
@IrfanLatif интересно, потому что это /data/system_ce/0/recent_imagesна Nexus 5, LineageOS 14.1 (Android 7.1). Переформулировал как смог.
Может быть, что-то связано с типом сборки ПЗУ, флагами сборки или системными свойствами, придется глубоко изучить код (что далеко от моей досягаемости). На моем устройстве (AOSP Extended Pie) также существуют оба каталога.