Ашмем политика хранения
Так что на Android нет ни общей памяти POSIX, ни общей памяти SysV, но есть ashmem
, Я хочу использовать его для сбора некоторой посмертной информации о сбоях в собственной подсистеме (как здесь). Вопрос - могу ли я сделать так, чтобы область ашмема сохранялась, когда процесс, который держит ручку, умирает? Где документирован ашмем?
1 ответ
Похоже, что нет встроенного способа сделать регион привязанным. Итак, я создал внепроцессный сервис, передаю дескриптор в регион и надеюсь, что сервис переживет основной процесс. Как известно, пожизненная гарантия на фоновые сервисы на Android отсутствует.
Служба имеет статическую переменную типа ParcelFileDescriptor
и поддерживает две команды связывания - GET и SET. Они соответственно возвращают указанный дескриптор в посылку ответа и присваивают его из посылки запроса, закрывая текущий (если таковой имеется).