При просмотре запущенных задач я заметил утечку памяти в процессе system/bin/installd
. После завершения загрузки он начинает работать в фоновом режиме, потребляя 20-30 МБ ОЗУ. Со временем использование ОЗУ постепенно увеличивается, достигая 400 МБ, после чего происходит случайная перезагрузка.
Я могу принудительно убить этот процесс без заметных эффектов. Однако он перезагружается и продолжает утечку памяти.
Прежде чем я смогу попытаться решить эту проблему, мне нужно точно знать, что это такое system/bin/installd
/ что он делает - я не могу найти никакой информации о нем.
Кто-нибудь может помочь?
Характеристики:
/system/bin/installd
это системный демон, участвующий в установке приложений. Системные классы вроде PackageInstaller
используют его в своем исполнении.
Эта статья от DZone датируется 2013 годом, но в ней есть несколько советов, которые могут помочь:
PackageInstaller — это приложение по умолчанию для Android для интерактивной установки обычного пакета. PackageInstaller предоставляет пользовательский интерфейс для управления приложениями/пакетами. PackageInstaller вызывает действие InstallAppProgress для получения инструкций от пользователя. InstallAppProgress попросит службу диспетчера пакетов установить пакет через installd. Исходный код доступен в /packages/apps/PackageInstaller.
В сегодняшнем коде Android (например: services/core/java/com/android/server/pm/Installer.java
):
public void onStart() {
Slog.i(TAG, "Waiting for installd to be ready.");
mInstaller.waitForConnection();
}
Тот же файл комментирует при выезде frameworks/native/cmds/installd/installd.h
(дальше пока не смотрел).
Короче говоря, вам может понадобиться просмотреть исходный код, чтобы узнать больше о installd
, в зависимости от того, чем вы занимаетесь.
Эндрю Т.
Обломки футболки