Путеводитель по системным утилитам для ОС Android, часть 1. Оптимизация системной памяти андроид для разработчиков


Android: управляем памятью | GeekBrains

Есть ресурсы, которые программист не может увеличить. Значит, ими надо эффективно управлять.

У каждого разработчика наступает момент, когда ему кажется, что он освоил язык программирования, но приложение тормозит и отладчик не помогает. Это значит, что ему нужно расширять круг своих познаний, выйти из привычной среды разработки и оценить происходящее извне.

Начните управлять памятью. Да, это сложно поначалу, но память компьютера и мобильного девайса — ресурс ограниченный, и научившись им распоряжаться, удается одним махом решить целый спектр проблем.

Управление памятью в Android

Android основан на Linux, и использует ее нативные библиотеки. Это значит, что ввод-вывод и управление памятью работают на уровне ОС. Но при выполнении прикладного ПО, Android использует собственные Android Runtime (ART) и виртуальную машину. Так же поступают Java и .NET, однако Android пошёл своим путем и самостоятельно управляет жизненным циклом ПО. И это создает некоторые недоразумения.

Каждое приложение Android работает в виде отдельного процесса в рамках виртуальной машины Dalvik, исполняющей приложения, написанные на Java.

Dalvik оптимизирована для низкого потребления памяти, но расплата за это — нестандартная регистр-ориентированная архитектура, подходящая для исполнения на RISC-архитектурах мобильных процессоров. Это в корне отличает её от стандартных виртуальных машин Java. В Android 4.4 Kitkat и выше есть выбор между Dalvik и более быстрым ART, а в Android 5.0 используется только ART.

И Dalvik, и ART — надстройки над ядром Linux, а ведь именно он отвечает за работу с «железом» и памятью на низком уровне. А всем остальным приложениям предоставляется API, что не одно и тоже, что и прямой доступ к ресурсам и приводит к замедлению работы ПО.

Делаем выводы. Начнем с того, что смартфон — прежде всего телефон: львиная доля ресурсов отдана на обслуживание звонков и сообщений, а что осталось, достается прикладным программам.

Разработчик должен помнить об особенностях управления жизненным циклом ПО в Android: поскольку оперативная память ограничена и есть приоритеты в ее использовании, то порой запуск одного приложения означает закрытие другого из-за недостатка памяти с сохранением состояния в ПЗУ. И чем больше приложений запущено, тем чаще станут эти переключения и будет больше время закрытия/восстановления. И каков бы не был чудесен код этого приложения — оно будет подтормаживать.

Утечки памяти и контекст

Типичная ошибка новичков: наставить кучу долгоживущих ссылок на контекст. Вспоминаем: контекст(Context) используется для загрузки и доступа к ресурсам. Эта та самая причина, по который виджеты должны получать параметр Context в конструктор.

Приложения имеют два вида контекста: Activity and Application. Первый — экран с пользовательским интерфейсом, на который держат ссылку в коде и тем самым не дают сборщику мусора удалить отработавший код и данные. Сколько при этом будет потеряно памяти — неизвестно.

А теперь представьте: меняется ориентация экрана, и система по умолчанию уничтожает текущую активность и создает новую с сохранением состояния. Также должен перезагрузиться пользовательский интерфейс приложения. А если в нем содержится большое растровое изображение? Надо принимать меры! Например, использовать статические поля. Но ведь о них не помнят, пока не возьмут в руки девайс со своим приложением!

Правильное использование контекста Application поможет с проблемами: он «жив», пока работает приложение и не зависит от жизненного цикла. Если разработчику нужны долгоживущие объекты, нуждающиеся в контексте, вспомните об Application: Context.getApplicationContext() или Activity.getApplication().

Перечисленными приемами, конечно же, не ограничиваются методики управления памятью. Главное — сборщик мусора должен делать свою работу, а программист не мешать ему работать. Управлять памятью надо в момент написания кода, а не тогда, когда приложение уже запущено! Кроме того, надо помнить об «узких» местах работы с памятью, свойственных архитектуре Android.

Мы же продолжим эту тему и поговорим о том, какие профайлеры в среде разработки или статические анализаторы кода могут помочь.

Тем, кто хочет профессионально разрабатывать под Android, рекомендуем профессию «Разработчик Android».

 

geekbrains.ru

Секреты Android — основные способы увеличения объема оперативной памяти

Многие владельцы андроид устройств рано или поздно задаются вопросом как увеличить объем оперативной памяти. Сейчас попробуем решить эту проблему.

Совершенно ясно, что физический объем памяти в смартфоне или, например, планшете, является постоянным, и увеличить его невозможно. Если в техническом паспорте указано, что объем оперативной памяти равен 1 ГБ или 2 ГБ, это значит, что в распоряжении системы будет именно это значение и не мегабайтом больше. В ситуации, когда ваше андроид устройство начинает тормозить и медленно работать, нужно, как то оптимизировать работу системы. Решение этой проблемы осуществимо тремя путями:

Первый способ заключается в оптимизации работающих приложений

Второй в удалении ненужных приложений

Третий в в установке специальных приложений создающих дополнительный файл подкачки ОЗУ

1 Способ

Если пойти первым путем, и заняться оптимизацией работающих приложений, тогда в первую очередь нужно определиться, какие из них вам не нужны, и вы готовы ими пожертвовать, остановив их или же удалив. Для этого нужно зайти в настройки системы и выбрать пункт меню «Приложения» далее «Использование памяти» Здесь можно посмотреть список всех приложений, список запущенных приложений, а также список тех приложений, которые установлены вами и те из них, которые размещены на карте памяти. Кроме этого, здесь указано, сколько памяти ОЗУ занято и сколько свободно.

Если значение свободной оперативной памяти минимально, или равно нулю, это значит, что ваш смартфон или планшет будет работать медленнее обычного или вообще тормозить, поэтому нужно остановить те работающие приложения, которые вам не нужны. Для этого нажимаем на его названии и в открывшемся окне нажимаем кнопку остановить.

2 Способ

Важно знать, что после перезагрузки андроид системы, все приложения снова запустятся, и вам придется останавливать их опять самостоятельно. Такие приложения как игры, фонарик, синхронизация, почта, облачные сервисы, google play, GPS навигатор одни из самых прожорливых в отношении оперативной памяти, и если что-то отключать, или удалять, то следует начинать именно с их.

Удаляя установленные приложения, вы столкнетесь с проблемой неудаляемых приложений, ведь удалить стандартные программы Андроид нельзя, поэтому придется удалять те, что вы устанавливали самостоятельно. Но выход все же есть, если получить права суперадминистратора (ROOT права), то вы сможете удалить с вашего смартфона все, что вам захочется. Как получить ROOT права можно прочитать тут.

3 Способ

Третий способ решения нехватки оперативной памяти в андроиде – установка специальных приложений, которые создают файл подкачки, располагающийся в постоянной памяти ПЗУ или карте памяти Micro SD и др.

Приложение SWAPit RAM EXPANDER создано специально для создания файла подкачки объемом до 2,5 ГБ.

SWAPit RAM EXPANDER

Основные возможности данного приложения

  1. Создание файла подкачки в ПЗУ или на карте памяти
  2. Управление скоростью и стабильностью системы
  3. Отображение полной информации об использовании памяти
  4. Управление файлом подкачки (увеличение размера)
  5. Создает виджет на рабочем столе, который позволяет получить быстрый доступ к управлению файлом подкачки.

Приложение  Swapper 2

Swapper

Данное приложение создает так называемые swap файлы, которые управляют теми приложениями, которым не нужен большой объем оперативной памяти, тем самым, оставляя весь объем физической оперативной памяти для более «тяжелых» приложений.

Возможности Swapper 2 таковы:

  1. Выбор размера swap-файла.
  2. Выбор места хранения swap-файлов.
  3. Есть возможность запуска swap при включении устройства.
  4. Есть возможность добавить системные файлы в swap, и это ускорит загрузку вашей операционной системы.
  5. Простой, интуитивно понятный интерфейс.

Приложение RAM Manager

Приложение RAM Manager

Данное приложение предназначено для оптимизации работы оперативной памяти андроид системы, поддерживаются все устройства с версией Android 2.1 и выше. Приложение позволяет использовать несколько режимов оптимизации:

 

Скачать данные приложения можно в Google Play.

xsoid.ru

Путеводитель по системным утилитам для ОС Android, часть 1

В данном путеводителе мы рассмотрим утилиты для Android, которые выполняют функции диагностики и оптимизации системы и позволяют лучше понять, как используются доступные ресурсы.

Можно с понятным скепсисом относиться ко всякого рода оптимизаторам, знакомым еще со времен «твикеров» для настольных ОС. Однако неоспоримо, что подобные приложения всегда должны быть под рукой, поскольку доступный инструментарий ОС Android не позволяет в полной мере, комплексно получить информацию о процессах, выполнить ряд пакетных операций и т. д.

Основные участники обзора:

Также будут упомянуты:

Assistant for Android

Google Play

Assistant for Android — подборка инструментов для оптимизации Android. Инструментарий этот включает в себя 18 основных функций оптимизации системы. Среди них — мониторинг, управление процессами и задачами, очистка от ненужных файлов, менеджер автозагрузки, диспетчер приложений и другие компоненты.

На главной странице в реальном времени отображается диагностическая информация о системе, это: загрузка процессора, ОЗУ, ПЗУ, свободное пространство на карте памяти и внутренней памяти телефона. Ряд виджетов уместно добавить на домашний экран для быстрого доступа к интересующей информации.

В разделе «Мониторинг» пользователь может выгрузить приложения из RAM (диспетчер задач) или очистить систему от ненужных данных — кэш временных файлов системы и установленных приложений, файлов журнала, пустых файлов / папок и прочего «мусора», удаление которого безвредно сказывается на системе. Кроме того, Assistant предоставляет список временных файлов на карте памяти, выборки пользовательских файлов по размеру, типу информации и т. п.

Следующий раздел приложения — управление процессами. Здесь можно получить сведения о типах процессов (отмечены соответствующей маркировкой), занимаемой ими памяти и нагрузке на CPU, отследить поведение определенных процессов — в том случае, если есть вопросы проблемы с производительностью системы. В соответствии с чем ненужные процессы можно выгрузить из памяти.

Третий раздел содержит опции, позволяющие оптимизировать расход батареи устройства. В верхней части экрана — управление сетями, яркость, звук, вибрация и прочие опции (также доступные посредством системных виджетов). Чуть ниже представлены различные сервисные приложения, полезные при оптимизации системы: пакетное удаление / установка программ, создание резервной копии, перемещение приложений на SD-карту, менеджер автозапуска, файловый менеджер, информация о батарее и системе, настройка прав. В целом, как видно, ничего примечательного здесь нет, и основная ценность подборки — доступность системных функций в одном разделе.

Резюме. Assistant for Android — вполне себе традиционный оптимизатор для Android с комплексным набором функций. Он не вносит ничего принципиально нового и является лишь удобной оболочкой для тюнинга системы. Из основных достоинств — несложный интерфейс и отсутствие бесполезных маркетинговых дополнений, пакетные операции с приложениями.

System Info for Android

Google Play

Приложение System Info for Android предоставляет различного рода служебную информацию по работе ОС Android, которая может быть полезна для последующей оптимизации системы. Рассмотрим основные функции этой программы.

На системной панели доступна сводная информация по занятому пространству на картах и памяти, ОЗУ, время работы и сетевая информация (IP-адрес, тип подключения к сети и пр.). При этом весьма странно, что нет никаких данных по процессору и его загруженности.

Во вкладке System вся информация представлена в текстовом виде. Она никак не применима к оптимизации и, вместе с тем, дает исчерпывающую информацию по системе Android, аппаратной составляющей в целом: ОС, конфигурация, память, батарея и прочие аспекты, влияющие на производительность.

Следующей раздел, Tasks, позволяет просматривать и «убивать» ненужные процессы, получать информацию по загруженности процессора и памяти. Данная секция чуть более полезна с практической точки зрения, но по удобству несколько отстает от аналогичных компонентов в подобных приложениях. Сортировка в наличии, но разработчик не предусмотрел цветовую маркировку для процессов или их категоризацию. Поэтому контролировать процессы, по факту, трудно.

В разделе Apps собраны все установленные и системные приложения. Здесь можно управлять каждой программой индивидуально, но пакетные операции (например, установка и удаление) отсутствуют как таковые.

Наконец, раздел Logs может быть полезен не только пользователям, но и разработчикам, которые тестируют приложение и хотят извлечь отладочную информацию. Журналы обновляются в реальном времени, можно сохранить историю в файл.

В качестве опции, на домашний экран можно добавить виджет. Возможности его более чем скромны: он выводит информацию о заряде батареи, свободной памяти RAM и занятом пространстве на SD-карте.

Резюме. Таким образом, приложение System Info for Android будет полезно рядовым пользователям ОС, отчасти — разработчикам. Это, скорее, инструмент с информационным уклоном, который позволяет в реальном времени отследить процессы, события в журнале. Полезных опций оптимизацией, связанных именно с настройкой, здесь считанное количество.

Elixir 2

Google Play

Elixir 2 — утилита для получения системной информации, диагностики устройства и добавления соответствующих виджетов на домашний экран.

Начнем с тех функций, которые есть в аналогичных приложениях. Раздел «Информация» содержит сводные данные об устройстве: доступное дисковое пространство и память RAM, состояние процессора, заряд батареи, телефония, текущее расположение, экран и звук, режим работы, камера, внешние устройства и т. д.

Также следует отметить дополнительные функции, доступные через контекстное меню. Elixir 2 предлагает функции, связанные с каждым выбранным компонентом. Скажем, выбрав в меню процессор, можно посмотреть данные о его модели, использовании батареи, изменить регулятор ЦП. Для карты памяти доступно монтирование, управление приложениями. Таким образом, Elixir предлагает достаточно удобную и логичную компоновку связанных системных функций.

Далее в приложении следует диспетчер приложений. В этом разделе собрана информация об установленных приложениях, занимаемом ими пространстве и расположении. Доступна расширенная сортировка (например, по размеру кода или кэша), есть текстовый фильтр. Удобно то, что можно включить пакетный режим и быстро деинсталлировать все ненужные приложения.

Одна из наиболее интересных функциональных особенностей Elixir — раздел «Датчики». Соответственно, здесь можно ознакомиться с системными данными и потреблением доступных датчиков устройства на Android. Кроме этого, можно вручную запустить тесты для проверки их минимальной и пиковой мощности.

В «Журналах» выводится содержание файлов logcat и dmesg, и можно отфильтровать сообщения (ошибки / предупреждения / информация). Сгенерированные отчеты Elixir с системной информацией несложно отправить по e-mail.

Напоследок, следует отметить многообразие виджетов. Для их активации и настройки нужно установить дополнение. Это и другие дополнения (личные, системные, администраторские и др.) устанавливаются опционально, через Google Play.

Резюме. Elixir 2 — одно из наиболее мощных приложений в своей категории, однозначно рекомендуется для установки. Позволяет управлять системными ресурсами, произвести диагностику устройства, системных ресурсов. Отличные возможности по управлению системными компонентами, грамотная группировка функций и наличие всего необходимого.

DU Battery Saver (Power Doctor)

Google Play

DU Battery Saver — приложение для базовой оптимизации системы и экономии заряда батареи. Каких-либо тонких настроек здесь нет, оно очень простое и вряд ли будет интересно опытным пользователям.

На главной странице («Батарея») доступна информация о текущем состоянии батареи. Если устройство заряжается, можно узнать время, необходимое для полной зарядки. Кроме того, отсюда можно извлечь некоторые технические характеристики: температуру, напряжение и емкость батареи. На графике, в нижней части экрана, пользователь может отследить, как расходовался заряд батареи на протяжении дня, по уровню АКБ. Из этой шкалы все понятно, однако особого практического смысла в ней меньше, чем хотелось бы получить.

В разделе «Сохранение» — управление режимами потребления. Профили имеют описания, так что можно понять, за счет чего планируется оптимизировать телефон: звонки, смс, интернет и прочее. Можно создать собственный профиль из десятка параметров. Пользователям платной версии Battery Saver доступен т. н. «интеллектуальный» режим: отключение уведомлений, управление приложениями, автовыгрузка, изменение профилей энергопотребления на протяжении суток.

Во вкладке «Монитор» отслеживается потребление энергии приложениями и оборудованием. Здесь достаточно отчетливо видно, что больше всего разряжает батарею, «виновника» можно отключить.

Есть у приложения Battery Saver и другие функции, но они менее интересны, плюс, как и другие приложения этого разработчика, некоторые функции — сугубо рекламные.

DiskUsage

Google Play

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

Данные отображаются на диаграмме в виде цветных блоков, пропорционально занимаемому им пространству. Нажав на определенный блок, можно ознакомиться с файлами внутри этой директории. Таким образом, становится понятно, где искать «похитителей» дискового пространства.

Из дополнительных особенностей приложения — DiskUsage интегрируется с популярными файловыми менеджерами, такими как OI FileManager и Astro.

Clean Master

Google Play

Одна из самых известных утилит для ускорения CPU и памяти и, по совместительству, менеджер приложений. Содержит несколько полезных модулей, которые способствуют очистке системы.

Итак, «Мусор»: в этом разделе можно очистить кэш и различные временные файлы, которые оставляют за собой приложения. Кроме того, интересен расширенный режим очистки — он позволяет выявить дубликаты и файлы, которые занимают больше всего пространства на диске.

Раздел «Ускорение» позволяет освободить память телефона, выгрузив приложения в фоне. В «Ускорении» также можно перейти к разделу автозагрузки, где отображается соответствующий список приложений, активных и отключенных из автозапуска.

Еще один полезный модуль Clean Master — менеджер приложений. Здесь представлены приложения в виде выборок: последние установленные, редко используемые, по размеру, категориям и прочее. Можно отметить несколько элементов и удалить их в пакетном режиме, что очень удобно. Помимо этого, есть возможность создания резервной копии и удаления apk-установщиков приложений.

Clean Master радует информативностью по части оптимизации и позволяет быть осведомленным: информация о занятых/освобожденных мегабайтах постоянно отображается в верхней части приложения. Правда, визуальные красоты, анимация несколько замедляют приложение, и, как ни парадоксально, скорость системы временно ухудшается именно из-за Clean Master. Кроме того, программа изобилует дополнительными модулями (антивирус, CM Family и др.), которые интересны далеко не всем пользователям.

В целом, твикер Clean Master производит странное впечатление. Хотя в нем содержится ряд полезных функций, интерфейс тяжеловат. А при нехватке ресурсов, логично, не хотелось бы лишний раз перегружать Android.

ES Task Manager (Task Killer)

Google Play

Приложение от разработчиков популярного файлового менеджера ES Explorer. Если вдаваться в описание, перед нами — более универсальное приложение, чем простой менеджер задач. ES Task Manager позволяет сэкономить заряд батареи, очистить память устройства, выгрузить, заблокировать или деинсталлировать ненужные приложения.

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

Вторая секция менеджера — собственно «Диспетчер задач». Сверху отображается объем доступной памяти и состояние батареи, далее следует список запущенных приложений. Через контекстное меню можно занести приложение в исключения или добавить в список для автозавершения.

Также можно отметить раздел экономии электроэнергии. Здесь можно настроить поведение Android — включить или отключить сетевые соединения, выставить опции для экрана, вибрации и звука. В принципе, здесь дублируются функции стандартных системных виджетов.

Некоторые модули, такие как «Анализатор SD-карты» и «Приложения», доступны только после установки файлового менеджера ES Explorer.

Advanced Task Manager - Boost

Google Play

Advanced Task Manager — вполне предсказуемый по функциональности менеджер задач, но чуть более удобный, чем стандартный.

На главном экране Task Manager отображается список всех приложений, информация о занимаемой памяти и батарее телефона. Кроме того, эта же информация дублируется в панели уведомлений и через виджет. Приложения можно отметить в списке и массово выгрузить их из памяти. Помимо того, предусмотрена принудительная выгрузка из RAM устройства, можно создавать исключения — приложения, которые не будут закрываться в форсированном режиме.

Ряд полезных опций обнаруживается в настройках Advanced Task Manager. В первую очередь, это автовыгрузка приложений по выбору: сразу после отключения экрана, при запуске приложения, с заданным интервалом.

Из недостатков данного менеджера — нет сортировки и детальной информации по загруженности процессора для каждого приложения. Также, управление сервисами реализовано через системный интерфейс, что неудобно.

www.ixbt.com


Prostoy-Site | Все права защищены © 2018 | Карта сайта