Секреты Android — основные способы увеличения объема оперативной памяти. Андроид оптимизация памяти
Секреты Android — основные способы увеличения объема оперативной памяти
Многие владельцы андроид устройств рано или поздно задаются вопросом как увеличить объем оперативной памяти. Сейчас попробуем решить эту проблему.
Совершенно ясно, что физический объем памяти в смартфоне или, например, планшете, является постоянным, и увеличить его невозможно. Если в техническом паспорте указано, что объем оперативной памяти равен 1 ГБ или 2 ГБ, это значит, что в распоряжении системы будет именно это значение и не мегабайтом больше. В ситуации, когда ваше андроид устройство начинает тормозить и медленно работать, нужно, как то оптимизировать работу системы. Решение этой проблемы осуществимо двумя путями, первый способ заключается в оптимизации работающих приложений, а второй в установке специальных приложений, создающих дополнительный файл подкачки ОЗУ.
Если пойти первым путем, и заняться оптимизацией работающих приложений, тогда в первую очередь нужно определиться, какие из них вам не нужны, и вы готовы ими пожертвовать, остановив их или же удалив. Для этого нужно зайти в настройки системы и выбрать пункт меню «Приложения» далее «Использование памяти» Здесь можно посмотреть список всех приложений, список запущенных приложений, а также список тех приложений, которые установлены вами и те из них, которые размещены на карте памяти. Кроме этого, здесь указано, сколько памяти ОЗУ занято и сколько свободно.
Если значение свободной оперативной памяти минимально, или равно нулю, это значит, что ваш смартфон или планшет будет работать медленнее обычного или вообще тормозить, поэтому нужно остановить те работающие приложения, которые вам не нужны. Для этого нажимаем на его названии и в открывшемся окне нажимаем кнопку остановить.
Важно знать, что после перезагрузки андроид системы, все приложения снова запустятся, и вам придется останавливать их самостоятельно опять. Такие приложения как игры, фонарик, синхронизация, почта, облачные сервисы, google play, GPS навигатор одни из самых прожорливых в отношении оперативной памяти, и если что-то отключать, или удалять, то следует начинать именно с них.
Второй способ решения нехватки оперативной памяти в андроиде – установка специальных приложений, которые создают файл подкачки, располагающийся в постоянной памяти ПЗУ или карте памяти Micro SD и др.
Приложение SWAPit RAM EXPANDER создано специально для создания файла подкачки объемом до 2,5 ГБ.
SWAPit RAM EXPANDER
Основные возможности данного приложения
- Создание файла подкачки в ПЗУ или на карте памяти
- Управление скоростью и стабильностью системы
- Отображение полной информации об использовании памяти
- Управление файлом подкачки (увеличение размера)
- Создает виджет на рабочем столе, который позволяет получить быстрый доступ к управлению файлом подкачки.
Приложение Swapper 2
Swapper
Данное приложение создает так называемые swap файлы, которые управляют теми приложениями, которым не нужен большой объем оперативной памяти, тем самым, оставляя весь объем физической оперативной памяти для более «тяжелых» приложений.
Возможности Swapper 2 таковы:
- Выбор размера swap-файла.
- Выбор места хранения swap-файлов.
- Есть возможность запуска swap при включении устройства.
- Есть возможность добавить системные файлы в swap, и это ускорит загрузку вашей операционной системы.
- Простой, интуитивно понятный интерфейс.
Приложение RAM Manager
Приложение RAM Manager
Данное приложение предназначено для оптимизации работы оперативной памяти андроид системы, поддерживаются все устройства с версией Android 2.1 и выше. Приложение позволяет использовать несколько режимов оптимизации:
- Balance – данный режим максимально оптимизирует оперативную память системы для работы без задержек.
- Balance (with more free memory) – этот режим работает также как и первый, но стой лишь разницей, что подходит для устройств, объем оперативной памяти которых не превышает 512 Mb.
- Balance (with more multitasking) – этот режим предназначен для оптимальной работы операционной системы с объемом оперативной памяти больше 512 Mb.
- Hard Gaming – этот режим подходит для запуска «тяжелых» игр, которые требуют много оперативной памяти.
- Hard Multitasking – режим для мультизадачных приложений, позволяет оптимизировать работу системы при работе со многими приложениями одновременно.
- Default (Samsung) – режим, использующийся в устройствах Samsung по умолчанию. (Можно использовать в устройствах других производителей).
- Default (Nexus S) – режим, использующийся в устройствах Google по умолчанию. (Можно использовать в различных моделях компании Google).
- Default settings of your phone – этот режим позволит вернуть настройки ОЗУ по умолчанию.
Скачать данные приложения можно в Google Play.
RAM Manager
novosti-it.pp.ua
Оптимизация памяти на Андроид
Date: 26 апреля, 2014
Наверняка многие пользователи обращали внимание на то, что после длительного использования смартфона память на нем заканчивается. Она забивается различными программами и утилитами, временными файлами.
Его работа становится более медленной. По этой причине необходима оптимизация памяти на андроид. Для того чтобы ее организовать можно воспользоваться сторонней утилитой под названием RAM Manager.
С ее помощью можно провести оптимизацию всех запускаемых служб и существенно повысить производительность, а также скорость во время загрузки серьезных приложений или игр. Она позволяет увеличить время работы смартфона во время ожидания. Это достигается за счет выгрузки неработающих приложений, которые отправляют периодические запросы.
Менеджер является хорошим выходом для тех, у кого постоянно заканчивается память, имеются многозадачные приложения или устройство работает слишком медленно в режиме переключения между программами.
Менеджер предлагает несколько режимов работа.
- 1. Сбалансированный. Он подходит для ежедневного применения.
- 2. Максимальная свободная память. В случае. Если у Вас на смартфоне нехватка памяти, то он отлично подойдет. Отлично зарекомендовал себя при работе с объемом менее 512 Мб.
- 3. Максимальная многозадачность. Его рекомендуется применять при использовании тяжелых программ. За счет уменьшения памяти повышается общая производительность устройства.
- 4. Игровой. Оптимизирует и существенно ускоряет запуск игровых приложений.
- 5. Жесткая многозадачность. Он необходим, если Вы одновременно запускаете несколько серьезных утилит и требуется быстрое переключение между ними.
- 6. По-умолчанию. Возвращает настройки в первоначальное состояние.
Оптимизация памяти на Android может производиться за счет файла подкачки. Его создание также позволит повысить производительность смартфона. Для того чтобы производить различные манипуляции с программой необходимо обладать максимальными правами администратора.
groupb.ru
Ускорение работы Андроид устройств за счет оптимизации памяти.
Все мы хотим, чтобы наш Андроид планшет или телефон работал быстро, без задержек и на нем было достаточно свободного места в памяти.Один из разработчиков с сайта xda, Juwe11 создал метод для оптимизации оперативной памяти на Андроид планшетах и телефонах. Он нашел оптимальный баланс между свободной памятью, многозадачностью, скоростью запуска приложений и скоростью работы.
Разработчик заявляет, что вы сразу заметите разницу в скорости работы системы Андроид и вам не потребуются больше такие программы как Task Killer.
Для того, чтобы вы могли ускорить ваш Андроид планшет (или телефон) вам нужны root права и ядро вашей прошивки должно поддерживать init.d
Оптимизация памяти Android. Метод 1:
1. Скачйте файл Juwe_RAM_Script.zip, распакуйте и скопируйте файл S97ramscript в каталог /system/etc/init.d с помощью программы Root Explorer (или ES проводник).
2. Установите с помощью Root Explorer (или ES проводник) прва на файл 777 (rwxrwxrwx). Если у вас в каталоге init.d уже имеется какой либо скрипт для оптимизации памяти, удалите его.
3. Перезагрузите ваше устройство.
Оптимизация памяти Android. Метод 2:
1. Скачйте файл Juwe_RAM_Script-CWM.zip и установите его с помощью ClockWorkMod.
Оптимизация памяти Android. Метод 3:
1. Создаем текстовый файл со следующим текстом:
#!/system/bin/sh # Copyright© 2011 Juwe11
if [ -e /sys/module/lowmemorykiller/parameters/minfree ]; then echo "2560,4096,6144,12288,14336,18432" > /sys/module/lowmemorykiller/parameters/minfree fi
if [ -e /proc/sys/vm/swappiness ]; then echo "50" > /proc/sys/vm/swappiness fi
if [ -e /proc/sys/vm/vfs_cache_pressure ]; then echo "10" > /proc/sys/vm/vfs_cache_pressure fi
if [ -e /proc/sys/vm/dirty_expire_centisecs ]; then echo "500" > /proc/sys/vm/dirty_expire_centisecs fi
if [ -e /proc/sys/vm/dirty_writeback_centisecs ]; then echo "1000" > /proc/sys/vm/dirty_writeback_centisecs fi
if [ -e /proc/sys/vm/dirty_ratio ]; then echo "90" > /proc/sys/vm/dirty_ratio fi
if [ -e /proc/sys/vm/dirty_background_ratio ]; then echo "5" > /proc/sys/vm/dirty_background_ratio fi |
2. Если вы создаете файл в текстовом редакторе Windows, убедитесь, что в нем установлен формат окончания строк UNIX (LF), а не DOS (CR + LF).
4. Установите с помощью Root Explorer (или ES проводник) прва на файл 777 (rwxrwxrwx). Если у вас в каталоге init.d уже имеется какой либо скрипт для оптимизации памяти, удалите его.
5. Перезагрузите ваше устройство.
Похожие материалы:
Ускорение работы карты памяти Android устройств с помощью приложения SD-Booster.
Программа для для настройки и оптимизации Android устройств. Android Optimizer.
Очистка Android устройства с помощью SD Maid. Как почистить карту памяти и внутреннюю память от мусора.
Elixir. Подробная информация о Android устройстве и создание собственных информационных и управляющих виджетов.
Несколько способов заменить загрузочную анимацию в Android
Как установить Android на компьютер, нетбук или ноутбук
Получаем доступ из Windows к карте памяти Android устройства через WiFi. Инструкция.
Перемещение программ из внутренней памяти планшета на карту памяти. Инструкция
Как установить ClockWorkMod Recovery на планшет Samsung Galaxy Tab 10.1. Инструкция
Как восстановить Asus Eee Pad Transfomer, превратившийся в кирпич после неудачной прошивки.
Лучшие программы для Android. Программа восстановления файлов Hexamob Recovery PRO (Скачать)
Лучшие программы для Android. Viber
www.4tablet-pc.net
Управление RAM-памятью на Android: делать очистку нет нужды
«Память заполнена» – очень раздражающее сообщение, которое иногда может появиться на дисплее вашего смартфона. Некоторые пользователи даже устанавливают приложения-убийцы или другие приложения для управления оперативной памятью, чтобы освободить место для хранения данных. Но действительно ли есть смысл в ручном управлении RAM-памятью на Android-девайсах?
Содержимое статьи
Что такое RAM
В смартфоне, как и в любом ПК, есть несколько видов памяти. Они работают с разной скоростью и стоят также по-разному. К примеру, внутренняя памятьотносительно медлительна, недорога и может сохранять информацию даже при отключении источника питания. Именно во внутренней памяти хранятся приложения, их данные, а равно фото и видео. Оперативная память стоит дороже внутренней, но зато намного быстрее ее. При отключении питания информация в такой памяти не сохраняется. RAM-память является как бы рабочей оболочкой для ваших приложений, где хранятся временные данные, необходимые для использования вашего телефона.
Память заполнена: причина для паники?
Через некоторое время внутренняя память вашего телефона заполняется приложениями, которые вы используете чаще всего. В такой ситуации эта память должна быть частично очищена, чтобы была возможность открывать новые приложения. Однако вам ничего не нужно делать самому – за вас все сделает Android в автоматическом режиме.
Представление о том, что RAM-память внутри Android-девайса нужно очищать вручную, является не совсем верным. Если «оперативка» будет пустой, то вам придется постоянно перезапускать приложения, а это лишняя трата времени, ресурсов телефона и сокращение времени работы аккумулятора.
Полная RAM-память – это не слишком плохо, можно даже сказать, хорошо. Так как Android имеет свои корни в Linux и Unix, системное ядро Linux определяет правила для управления памятью. И такие правила следуют концепции, что свободная внутренняя память – это потерянная память.
Если вы включите смартфон и загрузите несколько приложений, то все эти приложения останутся в памяти. Если вы используете какое-то приложение, вы можете переключиться на главных экран и затем снова вернуться к этому приложению, и оно будет загружаться почти мгновенно. Это связано с тем, что приложение в той или иной форме остается во внутренней памяти.
Но если на вашем девайсе есть приложение-убийца или функция экономии памяти, которая постоянно закрывает процессы фонового режима, вам придется долго ждать, пока загрузятся такие приложения, как скажем, Facebook или Whatsapp. Подобный способ управления RAM-памятью может даже нанести вред производительным смартфонам, например, Samsung Galaxy S7.
Очистка оперативной памяти на Android-устройстве: когда ее нужно делать?
Есть мнение, что многие производители смартфонов оснащают свои девайсы функциями «очистки» для существующих приложений, и в этом слухе может быть какая-то доля правды. Хотя в действительности закрытие того или иного приложения для экономии места в RAM-памяти имеет смысл лишь в отдельных случаях.
Как правило, не рекомендуется прекращать работу приложения или очищать всю память. Тем не менее, бывает ситуация, которая требует прямого действия: когда приложение дает сбой или работает некорректно. Например, это может быть браузер, который работает с подтормаживанием или в котором присутствуют ошибки отображения информации. Либо это могут быт проблемы с загрузкой Facebook или Twitter. Такие симптомы могут быть весьма разнообразными. Даже перегрев смартфона без очевидной причины может быть связан с приложением, давшем сбой.
Только в подобных случаях есть смысл остановить работу поврежденного приложения. Иногда бывает достаточно убрать приложение из вида в режиме многозадачности, хотя это, по сути, эффект плацебо, так как мы лишь убираем приложение из обзора приложений, но не останавливаем его работу.
Как отобразить использование RAM-памяти и закрыть Android-приложения
Если сокрытие приложения не помогает, то вам может потребоваться более радикальный подход – закрыть приложение вручную. Это можно сделать в настройках. Здесь вы также можете посмотреть, какие приложения используют оперативную память больше всего, и какие приложения можно удалить в будущем.
Итак, чтобы отобразить объем используемой «оперативки», войдите в настройки вашего телефона, найдите меню приложений и откройте вкладку «Работающие». Начиная с версии Android Marshmallow, это представление имеет собственную запись в разделе «Память» в главных настройках.
Здесь вы увидите статистику использования памяти за последнее время. В зависимости от смартфона, подробный обзор может быть сокрыт за каким-либо дополнительным меню. Чтобы действительно закрыть приложение, вам необходимо перейти к информации о приложении. Как правило, сделать это можно, выбрав нужное приложение в перечне приложений. Здесь вы увидите иконку для того, чтобы остановить приложение. Впоследствии бывает так, что отключенное приложение снова запускается, но причина этого почти всегда заключается в тех или иных действиях пользователя.
Нажатие на отдельные приложения определит, какие из них потребляют большую часть системной памяти. Перезапуск смартфона может помочь в случае, если проблема не устранена.
Очистка RAM-памяти: удаление приложений, «съедающих» память
Приведенный выше список показывает, сколько памяти требуется приложениям. Эта цифра может также указывать на то, что для приложения требуется слишком много ресурсов. Помимо прочего, вы можете удалить приложения, которые не использовали длительное время, или те, которые выглядят подозрительно.
Войдите в меню настроек приложения или менеджера приложений и найдите соответствующее приложение. Теперь просто удалите приложение, если это возможно. Если это не сработает, вам необходимо удалить «расширенные права» приложения. Обычно вы предоставляете такие права приложению во время его установки на телефон. Откройте основные настройки, выберите раздел «Безопасность», затем «Администраторы устройства» и удалите крестик рядом с приложением. Теперь вы можете удалить приложение.
Заключение
Итак, нужно ли вам делать чистку внутренней памяти? Ответ прост – нет! Вам нужно лишь принять меры тогда, когда ваш телефон станет работать медленнее. В целом, Android-девайсы могут самостоятельно управлять RAM-памятью на оптимальном уровне. Закрытие приложений в общем списке приложений может улучить общую функциональность устройства, но это не имеет ничего общего с оптимизацией и эффективностью оперативной памяти.
На наш взгляд, автоматическое управление RAM-памятью Android-девайса – это самая быстрая и эффективная система, которую вы могли бы пожелать. Так что оставьте управление памятью самой ОС Android, и она вас не подведет
doitdroid.com
Советы по оптимизации использования памяти приложениями Android*
Введение
Выделение и освобождение памяти в Android* всегда достигались высокой ценой. Китайская пословица гласит: «После бедности легко привыкнуть к роскоши, но после роскоши трудно привыкнуть к бедности». Эта фраза вполне применима и к использованию памяти приложениями.
Представим себе наихудший возможный сценарий: идет компиляция приложения с миллионами строк кода, и внезапно происходит сбой из-за нехватки памяти (ООМ). Вы начинаете отлаживать приложение и анализировать файл hprof. Если повезет, то вы сможете найти причину сбоя и устранить проблему нехватки памяти. Но иногда везение обходит вас стороной, вы обнаруживаете, что множество мелких переменных и временных объектов выделяет память таким образом, что не существует простого способа исправить эту проблему. Это означает, что придется перестраивать код, что всегда связано с потенциальным риском, и лишь ради того, чтобы сэкономить несколько килобайт, а иногда и несколько байт памяти.
В этой статье описывается управление памятью в Android и поясняются различные аспекты и особенности системы управления памятью. Кроме того, рассматриваются такие вопросы, как более эффективное управление памятью, обнаружение и устранение утечек памяти, анализ использования памяти.
Управление памятью в Android
В Android используются пейджинг и mmap вместо пространства подкачки. Это означает, что память, затронутую вашим приложением, невозможно использовать до высвобождения всех ссылок.
В виртуальной машине Dalvik* размер кучи для процессов приложений ограничен. Приложения начинают работу с 2 МБ, а максимальный размер выделения, называемый largeHeap, составляет до 36 МБ (в зависимости от конфигурации конкретного устройства). Примеры приложения с большой кучей: редакторы фото и видео, камера, галерея, домашний экран.
Фоновые процессы приложений в Android хранятся в кэше LRU (кэш наиболее давно использованных элементов). Когда в системе заканчивается память, система завершает процессы согласно стратегии LRU, но при этом учитывает, какое приложение занимает больше всего памяти. В настоящее время предельное количество фоновых процессов равно 20 (в зависимости от конфигурации конкретного устройства). Если нужно, чтобы приложение дольше оставалось в фоновом режиме, отмените выделение ненужной памяти перед переключением в фоновый режим, тогда Android с меньшей вероятностью выдаст сообщение об ошибке или даже завершит работу этого приложения.
Как улучшить использование памяти
Android is a worldwide mobile platform and millions of Android developers are dedicated to building stable and scalable applications. Here is a list of tips and best practices for improving memory usage in Android applications:
- Будьте осторожны при использовании «абстракций». Впрочем, с точки зрения архитектуры абстракция может помочь в достижении более высокой гибкости. В мобильных решениях у абстракции может быть побочный эффект, который заключается в выполнении добавочного кода, из-за чего расходуется больше ресурсов ЦП и памяти. Использовать абстракцию следует лишь в том случае, если она дает вашему приложению ощутимое преимущество.
- Не используйте enum. По сравнению с обычными статическими константами при использовании enum выделятся вдвое больше памяти.
- Попробуйте использовать оптимизированные контейнеры SparseArray, SparseBooleanArray и LongSparseArray вместо HashMap. HashMap выделяет объект вхождения при каждом сопоставлении. Это очень неэффективно с точки зрения памяти и с точки зрения производительности, поскольку сопровождается множеством операций автоматической упаковки и распаковки. Контейнеры наподобие SparseArray сопоставляют ключи с простыми массивами. Но помните, что такие оптимизированные контейнеры непригодны для большого количества элементов; при выполнении действий добавления, удаления и поиска они медленнее, чем Hashmap, если набор данных содержит несколько тысяч записей.
- Не создавайте ненужные объекты. Не выделяйте память для краткосрочных временных объектов, если можно обойтись без этого, а чем меньше создано объектов, тем реже происходит сборка мусора.
- Проверяйте доступность кучи вашего приложения. Вызывайте ActivityManager::getMemoryClass(), чтобы запросить, какой объем кучи (в МБ) доступен для приложения. При попытке выделить больше памяти, чем доступно, возникнет исключение OutofMemory. Если приложение объявляет largeHeap в AndroidManifest.xml, то можно вызвать ActivityManager::getLargeMemoryClass() для запроса предполагаемого размера большой кучи.
Скоординируйте работу с системой с помощью обратного вызова onTrimMemory(). Используйте ComponentCallbacks2::onTrimMemory(int) в Activity/Service/ContentProvider для постепенного высвобождения памяти согласно последним ограничениям системы. Благодаря onTrimMemory(int) повышается общая скорость отклика системы, но процессы дольше поддерживаются в активном состоянии.Когда возникает событие TRIM_MEMORY_UI_HIDDEN, это означает, что весь пользовательский интерфейс вашего приложения был скрыт и нужно высвободить ресурсы пользовательского интерфейса. Когда приложение работает в режиме переднего плана, могут появиться сообщения TRIM_MEMORY_RUNNING[MODERATE/LOW/CRITICAL], а в фоновом режиме — TRIM_MEMORY_[BACKGROUND/MODERATE/COMPLETE]. Можно освободить память от второстепенных ресурсов на основе стратегии высвобождения памяти при ее нехватке.
- Используйте службы с осторожностью. Если служба нужна для выполнения задания в фоновом режиме, поддерживайте ее в запущенном состоянии, только если она фактически выполняет задачу. Попробуйте сократить время работы службы с помощью IntentService, поскольку в этом случае служба закончит работу после завершения обработки цели. Использовать службы следует с осторожностью: никогда не оставляйте запущенную службу, если она не нужна в данный момент. В наихудшем случае снизится производительность всей системы, пользователи попытаются определить причину этого, найдут ваше приложение и удалят его (если это возможно).
Если же вы создаете приложение, которое должно быть запущено в течение длительного периода времени, например, службу музыкального проигрывателя, его следует разделить на два процесса: один для пользовательского интерфейса, а другой для фоновой службы. Для этого нужно задать свойство службы android:process в файле AndroidManifest.xml. Ресурсы в процессе пользовательского интерфейса можно высвобождать после скрытия приложения, а фоновая служба воспроизведения продолжит работать. Помните, что процесс фоновой службы ни в коем случае не должен взаимодействовать с пользовательским интерфейсом. В противном случае объем потребляемой памяти может вырасти вдвое или втрое
- Используйте внешние библиотеки с осторожностью. Зачастую внешние библиотеки создаются для немобильных устройств, поэтому в Android они могут быть неэффективны. Принимая решения об использовании той или иной внешней библиотеки, обязательно учтите трудозатраты, необходимые для переноса этой библиотеки на мобильную платформу и для ее оптимизации. Если в какой-либо библиотеке используется лишь одна-две функции из тысяч доступных, то лучше написать код этих функций самостоятельно.
- Используйте растровые рисунки правильного разрешения. Загружайте растровые рисунки нужного разрешения или уменьшайте разрешение, если у исходных растровых рисунков оно слишком большое.
- Используйте Proguard* и zipalign. Средство Proguard удаляет неиспользуемый код и маскирует классы, методы и поля. При этом код становится более компактным, снижается количество требуемых распределяемых страниц оперативной памяти. Средство zipalign перестраивает APK-файл. Если средство zipalign не запущено, потребуется больше памяти, поскольку из APK невозможно распределять файлы ресурсов.
Как избежать утечек памяти
Аккуратный подход к использованию памяти и соблюдение перечисленных советов улучшат работу вашего приложения. Все преимущества будут потеряны в случае утечки памяти. Вот некоторые распространенные причины утечек памяти, о которых следует знать разработчикам.
- Закрывайте курсор после запроса базы данных. Если нужно, чтобы курсор был открыт в течение длительного времени, пользуйтесь им с осторожностью и закрывайте его сразу же после завершения задачи базы данных.
- Не забудьте вызвать unregisterReceiver() после вызова registerReceiver().
- Избегайте утечки контекста. Если объявить статическую переменную Drawable в Activity, а затем вызвать view.setBackground(drawable) в onCreate(), то после поворота экрана будет создан новый экземпляр Activity, а отменить выделение памяти прежнему экземпляру Activity будет невозможно, поскольку представление задано как обратный вызов и представление ссылается на Activity (Context). Утечка в экземпляре Activity означает утечку значительного объема памяти с высокой вероятностью возникновения ошибки «Недостаточно памяти».Избежать такой утечки можно двумя способами:
- Не храните долгосрочные ссылки на context-activity. Жизненный цикл ссылки на действие должен быть таким же, как у самого действия.
- Попробуйте использовать context-application вместо context-activity.
- Избегайте нестатических внутренних классов в Activity. В Java нестатические анонимные классы содержат неявную ссылку на их внешний класс. При небрежности сохранение этой ссылки может повлечь удержание действия в памяти, тогда как в противном случае его обработал бы сборщик мусора. Поэтому используйте статические внутренние классы и слабые ссылки на содержащиеся внутри действия.
- Будьте осторожны при работе с потоками. Потоки в Java находятся вне сборки мусора. Другими словами, виртуальная машина Dalvik (DVM) хранит жесткие ссылки на все активные потоки в системе выполнения, поэтому все потоки, оставшиеся запущенными, не попадают под действие сборки мусора. Потоки в Java сохраняются в памяти до тех пор, пока либо они не будут закрыты явным образом, либо весь процесс не будет завершен системой Android. В среде приложений Android поддерживается множество классов, предназначенных для повышения удобства фоновой работы с потоками:
- Используйте Loader вместо потока для выполнения краткосрочных асинхронных фоновых запросов вместе с жизненным циклом Activity.
- Используйте Service и передавайте результаты в Activity с помощью BroadcastReceiver.
- Используйте AsyncTask для краткосрочных операций.
Как проанализировать использование памяти
Для получения дополнительных сведений о статистике использования памяти в интерактивном и автономном режимах можно просмотреть основной журнал Android с помощью команды logcat в Android Debug Bridge (ADB), информацию дампа памяти для определенного имени пакета или с помощью других инструментов, таких как Dalvik Debug Monitor Server (DDMS) и Memory Analyzer Tool (MAT). Вот краткое описание анализа использования памяти вашим приложением.
- Просмотрите сообщения журнала сборки мусора (GC) для виртуальной машины Dalvik согласно следующим примерам и определениям:
- Причина сборщика мусора. Что запустило сборку мусора и какого типа эта сборка? Причины могут быть следующими.
- GC_CONCURRENT: одновременная сборка мусора, высвобождающая память по мере заполнения кучи.
- GC_FOR_ALLOC: сборка мусора, которая запускается из-за того, что приложение попыталось выделить память при уже полной куче, поэтому системе пришлось остановить приложение и вернуть память.
- GC_HPROF_DUMP_HEAP: сборка мусора, возникающая при создании файла HPROF для анализа кучи.
- GC_EXPLICIT: запущенная явным образом сборка мусора, например при вызове gc() (чего следует избегать; нужно полагаться на то, что сборщик мусора сам запустится в нужный момент).
- Освобожденный объем: объем памяти, освобожденный после этой сборки мусора.
- Статистика кучи: процент свободной памяти и (количество действующих объектов/общий размер кучи).
- Статистика внешней памяти: внешняя выделенная память на уровне API 10 и ниже (объем выделенной памяти/предел, по достижении которого начнется сборка мусора).
- Время приостановки: у более крупных куч время приостановки будет больше. При одновременной приостановке отображаются две приостановки: одна в начале сборки, а другая ближе к окончанию.
Чем больше журнал сборщика мусора, тем больше операций выделения и отмены выделения памяти произошло в вашем приложении. Это, в свою очередь, означает снижение удобства пользователей.
- Причина сборщика мусора. Что запустило сборку мусора и какого типа эта сборка? Причины могут быть следующими.
Используйте DDMS для просмотра обновлений кучи и отслеживания выделения памяти.Удобно проверять выделение кучи в реальном времени для определенного процесса с помощью DDMS. Попробуйте поработать с приложением и следите за обновлением выделения кучи на вкладке Heap. Это поможет определить, какие действия используют слишком много памяти. На вкладке Allocation Tracker отображаются все недавние выделения памяти с указанием типа объектов, потока, класса, файла и строки. Дополнительные сведения об использовании DDMS для анализа кучи см. в разделе справочных материалов в конце этой статьи. На следующем снимке экрана показана программа DDMS с текущими процессами и статистикой кучи памяти для определенного процесса.
Просмотр общего выделения памяти.С помощью команды adb — adb shell dumpsys meminfo <имя_пакета> — можно просмотреть всю текущую выделенную память приложения (в КБ).
Как правило, следует обращать внимание только на столбцы Pss Total и Private Dirty. В столбце Pss Total включено выделение всех объектов Zygote (с установкой весового коэффициента согласно их совместному использованию процессами в соответствии с определением PSS выше). В столбце Private Dirty — объем фактической оперативной памяти, предоставленной куче приложения, выделенным областям и всем страницам Zygote, измененным с момента ответвления процесса приложения из объекта Zygote.Кроме того, в столбце ViewRootImpl отображается количество корневых представлений, действующих в вашем процессе. Каждое корневое представление связано с окном, поэтому это поможет выявить утечки памяти, связанные с диалоговыми или другими окнами. На вкладках AppContexts и Activities отображается количество объектов Context и Activity приложения, используемых в вашем процессе. Это может пригодиться для выявления утечек объектов Activity, к которым невозможно применить сборку мусора из-за наличия в них статических ссылок, что бывает довольно часто. С такими объектами зачастую связано множество других ресурсов, и так можно удобно отслеживать крупные утечки памяти.
Сохраните дамп кучи и проанализируйте его в программе Eclipse* Memory Analyzer Tool (MAT).Записать дамп кучи можно непосредственно с помощью DDMS, а для более точных результатов можно вызвать Debug::dumpHprofData() в коде приложения. Затем потребуется применить программу hprof-conv для получения преобразованного файла HPROF. На следующем снимке экрана показан результат анализа памяти в МАТ.
Заключение
Для создания приложений, эффективно работающих с оперативной памятью, разработчикам для Android требуется базовое понимание принципов управления памятью в Android. Разработчикам следует применять методики эффективного использования памяти и средства анализа, следуя советам, перечисленным в этой статье. Лучше с самого начала создать стабильное масштабируемое приложение, чем применять исправления на этапе реализации.
Справочные материалы
- http://developer.android.com/training/articles/memory.html
- https://developer.android.com/tools/debugging/debugging-memory.html
- http://developer.android.com/training/articles/perf-tips.html
- http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html
- http://developer.android.com/tools/debugging/ddms.html
- http://www.curious-creature.com/2008/12/18/avoid-memory-leaks-on-android/comment-page-1/
- https://eclipse.org/mat/
Об авторе
Бин Чжу (Bin Zhu) — инженер по разработке приложений в команде Intel® Atom™ Processor Mobile Enabling Team в подразделении Developer Relations Division отдела Software and Solutions Group (SSG). Он отвечает за поддержку приложений Android на процессорах Intel Atom, а также занимается технологиями мультимедиа на платформах Android x86.
software.intel.com
Как на Андроиде очистить оперативную память
В разных моделях показатели ОЗУ на Андроид могут варьироваться от 512 Мб до 8 Гб. Чем больше памяти не задействовано выполнением команд и процессов, тем быстрее работает телефон. Давайте рассмотрим оптимальные варианты того, как очистить оперативную память на Андроид, чтобы телефон работал четко и без глюков. Для этого можно использовать как возможности, имеющиеся в гаджете, так и сторонние программы.
Используем встроенные возможности
В большинстве случаев, чтобы очистить оперативную память на Android, необязательно устанавливать сторонние программы, а затем разбираться в сложных инструкциях. Достаточно воспользоваться теми функциями, которые дает вам ваш телефон.
Понять, сколько системной памяти занято, можно при помощи имеющихся инструментов самого гаджета. Зайдите в меню «Настройки», а затем перейдите в подпункт «Приложения». Там нужно выбрать раздел «Работающие». Обычно переходить между меню нужно левым свайпом, так как в этом подпункте меню отображаются и приложения с запоминающего устройства (SD-карты).
Встроенные утилиты
Иногда Android-устройства предлагают предустановленные утилиты для очистки системной памяти, которые могут так и называться «Очистка» или «Clean». Эта утилита покажет вам, какие приложения практически не используются, а также помогут своевременно очищать кэш.
Самостоятельно очищаем кэш
Забитый кэш влияет на производительность телефона, ведь он забирает немало оперативной памяти, соответственно, его важно периодически чистить. Недавно, к примеру, «ВКонтакте» сохраняло аудиозаписи именно в кэш, чтобы их можно было слушать и без Интернета. Поисковик Google, игры, онлайн-карты и социальные сети тоже быстро занимают ОЗУ. Почистить его можно, нажав на нужную программу в разделе «Приложения» в пункте меню «Настройки».
Очищаем ОЗУ вручную через меню «Настройки»
В разделе работающих приложений вы увидите все процессы, которые используют оперативную память, а также объем ресурсов из общего числа мегабайт, которые используются на данный момент. В этом подразделе и можно очистить оперативную память на Андроид вручную.
Некоторые приложения, которые вам не нужны прямо сейчас, но были запущены, работают в фоновом режиме, при этом «съедают» ОЗУ. Выберите такие приложения из списка работающего ПО, а затем нажмите на кнопку «Остановить».
Помните, что некоторые процессы, указанные в списке, необходимы для работы смартфона, поэтому их нежелательно останавливать. В связи с этим, лучше работать только с играми, скачанным ПО и соцсетями.
Использование анимации, виджетов, обоев и другие полезные советы для экономии ОЗУ
Анимированные обои требуют для постоянной работы немало оперативной памяти, поэтому лучше выбирать обычные картинки. Также, если вы хотите очистить оперативную память Андроид, стоит отказаться от большого количества виджетов на рабочем столе, например, обновляемого в реальном времени виджета с прогнозом погоды.
Также стоит отключить анимированные переходы между меню, главными экранами или же анимацию при запуске приложения.
Используем сторонние приложения
А этот способ подойдет для тех, кто ищет, как быстро и без проблем на Андроиде очистить оперативную память. Помогут в этом сторонние приложения.
Clean Master
Одним из самых популярных программ на сегодняшний день является Clean Master. Он быстро ускоряет телефон, а также очищает мусор за считанные секунды. К тому же, он сам напоминает о том, что пора провести очистку или ускорить память, сообщая, сколько ОЗУ занято.
Инструкция по использованию Clean Master:
- Зайдите в ПО на телефоне.
- На главном меню в кружках будет информация о занятой встроенной памяти и ОЗУ в процентах. Нажмите на кружок с ОЗУ. В русском варианте этот пункт иногда называется «Хранилище».
- Вы увидите все запущенные приложения. Чтобы очистить ОЗУ, нужно нажать на кнопку «Ускорить».
Clean Master очищает память очень быстро, при этом не затрагивает программные процессы, необходимые для работы телефона.
Memory Booster
Еще один интересный вариант освобождения памяти на телефоне — Memory Booster. Она показывает, сколько RAM занято, а сколько – свободно. Программа подойдет тем, кто хочет быстро освободить оперативную память на Андроиде, потому что сразу же выдает меню с используемыми приложениями, позволяет освободить лишь часть памяти или же завершить все работающие приложения.
Эта утилита имеет гибкие настройки. К тому же, вы можете использовать как платную, так и бесплатную версию с урезанным функционалом. С ее помощью можно настроить оптимизацию процессов сразу при старте работы смартфона, благодаря чему ОЗУ не должна перегружаться. Также ПО предоставляет полный график использования памяти, сообщает, когда у устройства заканчивается ОЗУ, а также проводит очистку кэша.
Какие еще программы подойдут?
В «Плэй Маркет» и других источниках есть еще немало приложений, основная функция которых – очистка оперативной памяти. Вы можете выбрать то, которое удобнее всего в использовании, протестировав интерфейс, скорость работы и другие нюансы.
Обратите внимание на следующие программы:
- Free Memory. Еще одна утилита, которая помогает очищать оперативную память. Есть возможность настройки автоматического режима очистки.
Вы можете выбрать, как почистить ОЗУ телефона (при помощи встроенных функций или приложений), которые помогут этот процесс автоматизировать.
Пожаловаться на контентpoandroidam.ru
Как освободить оперативную память на Андроиде? Оптимизация работы Android
В предыдущей статье мы рассмотрели общие рекомендации как настроить ОС Android так, чтобы она работала с максимальным энергосбережением. Однако иногда общих действий бывает недостаточно и требуется тонкая настройка.
Перед тем, как начать настройку, будьте очень внимательны – удаление системных утилит может привести к нежелательным последствиям!
Программное обеспечение
Для настройки и оптимизации нам понадобится программа, дающая доступ к системным процессам. Воспользуемся приложением Root Uninstaller.
Для корректной работы программы требуется Root доступ к системе, о том, как это обеспечить рассказывать пока не будем. Другая удобная программа — SystemApp Remover, но у нее, к сожалению, отсутствует бесплатная версия.
Запускаем программу и видим список установленных у нас приложений. Системные утилиты выделены красным цветом и иконкой зеленого робота.
Нажатием на соответствующую программу вызывается меню.
Утилиту можно удалить либо заморозить. Мы категорически рекомендуем производить именно заморозку, которую легко можно потом восстановить. Конечно, перед началом лучше сделать предусмотренный в программе бэкап.
Краткое описание основных системных процессов
Рассмотрим основные системные программы и процессы, которые они инициирую. В графе «описание» указываются назначение программы и в каком случае можно ее заморозить. Внимательно подумайте над тем, какие программы вам действительно необходимы, а какие можно приостановить.
Вместо послесловия
С помощью тонкой настройки системы можно настроить свой девайс под управлением ОС Android максимально энергосберегающим. Напоследок хочется еще раз предупредить о том, что если вы сомневаетесь в назначении системной программы, не удаляйте ее.
поделитесь с друзьями:
ВКонтакте
OK
Google+
wd-x.ru