E-ten Club Russia - На лавную --:--
 
Тема закрытаОткрыть тему
> Оптимизация работы памяти, штатными средствами Android OS
denxxlab
Закрепленное сообщение
сообщение 29.3.2011, 22:18


Команда EtenClub.ru
Иконка группы

Группа: V.I.P
Сообщений: 677
Модель зверька: Другой КПК/Коммуникатор

Репутация: 182

Награды:
За вклад в развитие сайта За особую помощь форуму и посетителям.

Этот мануал посвящен оптимизации и настройке Android OS для её лучшей работы с памятью. Сторонние программы "таск-киллеры" здесь не рассматриваются.
Все операции, представленные здесь, Вы выполняете на свой страх и риск, автор статьи не несет никакой ответственности за любой ущерб, причиненный вашему девайсу.
http://etenclub.ru - Сайт источник!
  1. Каков принцип работы автоматического менеджера памяти и процессов?
    Android выполнен на ядре линукса и поэтому использует его функции для работы с памятью. Существует 2 ключевых момента, связанных с этим:
    1. По настоящему, память никогда не бывает свободна. Большую часть памяти занимает кэш файлов, создаваемый для ускорения операционной системы. Кэш никак не мешает программам, например, если программе понадобится память, то она сотрет кэш и будет использовать высвобожденную память. Чем больше памяти на Android девайсе свободно, тем больше кэша будет создано и тем быстрее будет работать операционная система.
    2. Если память уменьшится до определенного порога, то включится "киллер приложений", который будет пытаться закрыть ненужные процессы, дабы высвободить память.
    Нас интересует, только последний пункт B.

    В Android OS все приложения делятся на 6 типов:
    • FOREGROUND_APP
    • VISIBLE_APP
    • SECONDARY_SERVER
    • HIDDEN_APP
    • CONTENT_PROVIDER
    • EMPTY_APP
    В операционной системе имеется файл:
    /sys/module/lowmemorykiller/parameters/minfree

    он создается при каждой загрузке операционной системы, с помощью:
    /system/etc/init.d/99complete

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

    В этом файле прописан порог при котором соответствующий тип приложения будет закрываться. Все цифры хранятся в страницах (1 страница = 4 килобайта). Для удобства эти цифры я буду указывать в мегабайтах.

    В операционной системе Android, по умолчанию стоят следующие цифры: 6, 8, 16, 20, 22, 24 Mb (для 256Mb оперативной памяти).
    Первые две цифры трогать нет необходимости, мы же не хотим, чтобы закрывались приложения, которые используются в данный момент. Поэтому, будем изменять последние 4 цифры. Самая главная из них - третья цифра, т.к. она определяет количество свободной памяти. Самые оптимальные настройки: 6, 8, 24, 26, 28, 30 (это для 256 Mb оперативной памяти, для 512 можно выставить и побольше, но я не могу этого проверить). Но Вы можете поэкспериментировать сами.

    Вы спросите как же установить нужные нам значения?
    Выхода два: либо менять 99complete, либо использовать программы Auto Memory Manager или AutoKiller Memory Optimizer. Эти программы после загрузки изменяют содержимое minfree. Для обеих программ нужны root-права!
    http://etenclub.ru - Сайт источник!

  2. Изменяем VM Heap Size
    VM Heap Size — размер кучи виртуальной машины. Оптимальным значением считается - 32Mb, но можно смело экспериментировать. Меняется в файле /system/build.prop параметр dalvik.vm.heapsize (Есть программа VM Heap Tool, позволяющая изменять этот параметр).
    http://etenclub.ru - Сайт источник!

  3. Как избавится от перезагрузок хоумскрина?
    Если обмануть менеджер памяти, сказав ему, что хоумскрин относится к FOREGROUND_APP, то выгружать его система не будет (ну, если конечно Вы совсем не исчерпаете память).

    Для этого обмана нужно добавить строчку ro.HOME_APP_ADJ=0 в файл /data/local.prop (на сайте xda говорят, что если эта строчка в конце, то нужно добавить еще пустую строку, иначе она пропадает).
    http://etenclub.ru - Сайт источник!

  4. И не забудьте про JIT!
    Хотя он и кушает память, но с включенным JIT программы работают гораздо быстрее.
    http://etenclub.ru - Сайт источник!
Заключение.
Выполнив все эти советы, работа на моем Acer Liquid стала более приятной. И что радует, многозадачность совсем не пострадала. На мой взгляд, на сегодняшний день это самый лучший способ оптимизации работы памяти, ИМХО.
 
Теги данной темы: Android OS,
Вернуться в начало страницы
 
Цитировать выделенноеОтветить с цитированием данного сообщения
Googlebot
сообщение
Цитировать выделенное    Сообщение #








Вернуться в начало страницы
 
Цитировать выделенноеОтветить с цитированием данного сообщения
 

Тема закрытаОткрыть тему

 

- Текстовая версия | SEO by MinervaSEO © Icelabz.net Сейчас: 24.9.2017, 18:56
Rambler's Top100 Рейтинг@Mail.ru Яндекс цитирования Rambler's Top100   Internet Map
 
admin@etenclub.ru
E-ten Club Russia 2007-2014.
Design & Code by DDK.