Высокое использование оперативной памяти и один и тот же процесс показывает несколько раз? - PullRequest
0 голосов
/ 29 мая 2019

Я сделал медиаплеер в Android Studio, который использует Сервис для управления воспроизведением.

Теперь все работает нормально, и я не замечаю никакой задержки, хотя мой logcat показывает 123 кадра, гдепропущен во время запуска.

Я где-то читал, что это сообщение можно игнорировать, если оно не превышает 300 + пропущенных фреймов , но теперь я больше не уверен, потому что я сейчас прочитал этодаже пропущенный 1 кадр - это слишком много.

Я также сравнил использование оперативной памяти с mp3-плеером из магазина и заметил, что у большинства медиаплееров остается менее 10 Мб памяти.

Но у меня почти 50mb и я понятия не имею, почему, но если вы посмотрите на детали, вы увидите, что существуют процессы с одинаковым именем и множеством ' sandboxed_processes '.

Так что мой вопросесли все в порядке, мое приложение почти потребляет 50 Мб памяти и что означают эти sandboxed_processes .

enter image description here

1 Ответ

0 голосов
/ 29 мая 2019

Вопрос 1:

это зависит от того, сколько ресурсов ваше приложение использует и нуждается в них. Вы действительно должны серьезно относиться к памяти, и вам следует использовать как можно меньше.Сборщик мусора поможет вам переработать выделенную память, но вы должны подумать о сроке службы любого экземпляра создаваемых вами объектов, а также об их дизайне, чтобы минимизировать структуры.И последнее, но не менее важное: Studio позволяет вам профилировать распределение памяти вашего приложения, поэтому используйте его :).

Вопрос 2:

Тестовая среда приложения из официальной документации

Платформа Android использует преимущества пользовательской защиты Linux для идентификации и изоляции ресурсов приложения.Это изолирует приложения друг от друга и защищает приложения и систему от вредоносных приложений.Для этого Android назначает уникальный идентификатор пользователя (UID) каждому приложению Android и запускает его в своем собственном процессе.

Android использует этот UID для настройки изолированной программной среды приложения на уровне ядра.Ядро обеспечивает безопасность между приложениями и системой на уровне процессов с помощью стандартных средств Linux, таких как идентификаторы пользователей и групп, которые назначаются приложениям.По умолчанию приложения не могут взаимодействовать друг с другом и имеют ограниченный доступ к операционной системе.Например, если приложение A пытается сделать что-то вредоносное, например, прочитать данные приложения B или набрать телефон без разрешения (которое является отдельным приложением), то операционная система защищает от такого поведения, поскольку приложение A не имеет соответствующих пользовательских привилегий.,Песочница проста, проверяема и основана на многолетнем пользовательском разделении процессов и прав доступа к файлам в стиле UNIX.

Поскольку «песочница приложений» находится в ядре, эта модель безопасности распространяется на собственный код и операционную систему.Приложения.Все программное обеспечение над ядром, такое как библиотеки операционной системы, инфраструктура приложений, среда выполнения приложений и все приложения, запускается в изолированной программной среде приложений.На некоторых платформах разработчики ограничены определенной средой разработки, набором API или языком для обеспечения безопасности.На Android нет никаких ограничений на то, как может быть написано приложение, необходимое для обеспечения безопасности;в этом отношении нативный код такой же песочницы, как и интерпретированный код.

...