Ускоряем Android с помощью оптимизации конфигов


Иногда вам кажется, что ваше устройство тормозит?? Ругаете, по вашему мнению, устаревшее железо? Глюченный софт? Разгоняете устройство, с помощью сторонних утилит, которые приносят больше вреда чем пользы? А между тем, все основные оптимизации можно выполнить без использования специальных инструментов и получить не мифический, а совершенно реальный прирост скорости работы
В этой статье мы поговорим об оптимизации Android без применения каких-либо специальных инструментов, кроме файлового менеджера с поддержкой прав root и собственной головы. В первой части речь пойдет о файле /system/build.prop, который содержит системные настройки Android, большинство из которых влияют на производительность работы и отзывчивость системы. Вторая часть будет посвящена скриптам инициализации, размещаемых в каталоге /system/etc/init.d и содержащие команды, которые будут выполнены во время загрузки системы. Применив определенные команды можно повлиять на поведение ядра системы, заставив его быстрее выгружать приложения из памяти, включить режим упреждающего чтения для повышения производительности работы SD-карты и многое другое. Все примеры будут приведены в виде уже опробованных многими другими пользователями рецептов.

Оптимизации build.prop

Файл /system/build.prop представляет собой обычный текстовый файл, содержащий набор пар "ключ=значение", где ключ определяет определенную настройку системы Android, а значением может быть число или строка, в зависимости от ключа. Изначально этот файл был создан для того, чтобы при сборке прошивки для определенного устройства разработчик прошивки могут оптимально подогнать параметры работы Android под это устройство и не изменять их в будущем. Именно поэтому этот файл недоступен для модификации и может быть отредактирован только при наличии прав root на устройстве.
Если телефон рутован, то отредактировать файл не составит труда с помощью любого файлового менеджера с поддержкой root (например, Root Explorer или Ghost Commander). Для этого достаточно просто перемонтировать каталог /system в режиме записи, перейти в него и открыть файл build.prop на редактирование. Далее можно вписать в него необходимые строки или изменить имеющиеся. Обычной практикой является добавление новых строк в самый конец файла. Ниже приведены строки (пары ключ=значение), которые могут быть полезны в определенных ситуациях.
  • Ограничение размера памяти, доступного приложениям (позволяет освободить оперативную память):
    dalvik.vm.heapsize=48m
  • Повышение качества отображения JPG-изображений за счет скорости работы (тут смотря что важнее для вас):
    ro.media.enc.jpeg.quality=100
  • Отрисовка интерфейса с помощью GPU (считается, что опция ускоряет интерфейс, однако на самом деле практически ни на что не влияет):
    debug.sf.hw=1
  • Улучшение отзывчивости при пролистывании списков:
    windowsmgr.max_events_per_sec=150
  • Отключение задержки перед осуществлением звонка:
    ro.telephony.call_ring.delay=0
  • Опции, продлевающие работу устройства от батареи (увеличение интервала между сканированием на наличие WiFi-точки доступа, более агрессивный режим энергосбережения, режим энергосбережения радио-модуля):
    wifi.supplicant_scan_interval=180
    pm.sleep_mode=1
    ro.ril.disable.power.collapse=0
  • Улучшение работы сенсора экрана (считается, что помогает улучшить отзывчивость сенсора, но на деле почти не влияет на его работу):
    debug.performance.tuning=1
    video.accelerate.hw=1
  • Улучшения качества фото и видео-съемки (не факт, что сработает на вашем устройстве):
    ro.media.dec.jpeg.memcap=8000000
    ro.media.enc.hprof.vid.bps=8000000
  • Улучшения работы радио-модуля (не всегда дадут положительный результат):
    ro.ril.hsxpa=2
    ro.ril.gprsclass=10 
    ro.ril.hep=1
    ro.ril.enable.dtm=1
    ro.ril.hsdpa.category=10
    ro.ril.enable.a53=1
    ro.ril.enable.3g.prefix=1
    ro.ril.htcmaskw1.bitmask=4294967295
    ro.ril.htcmaskw1=14449
    ro.ril.hsupa.category=5
  • Улучшения производительности сетевого стека (считается, что настройки положительно влияют на скорость работы сети, но результат может быть отрицательным):
    net.tcp.buffersize.default=6144,87380,1048576,6144,87380,524288
    net.tcp.buffersize.wifi=524288,1048576,2097152,524288,1048576,2097152
    net.tcp.buffersize.umts=6144,87380,1048576,6144,87380,524288
    net.tcp.buffersize.gprs=6144,87380,1048576,6144,87380,524288
    net.tcp.buffersize.edge=6144,87380,524288,6144,16384,262144
    net.tcp.buffersize.hspa=6144,87380,524288,6144,16384,262144
    net.tcp.buffersize.lte=524288,1048576,2097152,524288,1048576,2097152
    net.tcp.buffersize.hsdpa=6144,87380,1048576,6144,87380,1048576
    net.tcp.buffersize.evdo_b=6144,87380,1048576,6144,87380,1048576
  • Устранение проблем с падением приложений:
    ro.kernel.android.checkjni=0
  • Отключение анимации загрузки (сокращение времени загрузки):
    debug.sf.nobootanimation=1
  • Другие настройки, клияющие на производительность:
    ro.config.hw_menu_unlockscreen=false
    persist.sys.use_dithering=0
    persist.sys.purgeable_assets=1        
    dalvik.vm.dexopt-flags=m=y
    ro.mot.eri.losalert.delay=1000
  • Улучшение производительности работы сети за счет использования быстрых DNS-серверов Google:
    net.ppp0.dns1=8.8.8.8
    net.ppp0.dns2=8.8.4.4
    net.dns1=8.8.8.8
    net.dns2=8.8.4.4
Обратите внимание, что далеко не все эти настройки приведут к нужному результату, а некоторые вообще имеют эффект плацебо. Поэтому стоит лишний раз подумать, нужны ли они вам и после каждого изменения наблюдать за работой смартфона и, в случае ухудшения производительности, убирать строки из файла.
Чтобы опробовать ту или иную настройку без необходимости в редактировании build.prop и перезагрузки можно использовать команду setprop, которую следует набирать из эмулятора терминала (доступен в маркете). Например:
su
setprop windowsmgr.max_events_per_sec 150
Команда su здесь нужна для того, чтобы получить права root.

Комментарии

Популярные сообщения из этого блога

Установка компонента на Delphi 7 for Windows

Подключение к удаленному рабочему столу через браузер