Блог программиста
не только о программировании

Дружественные ресурсы:

IntSystem.org | Веб-разработка, все о ней

DevOps-заметки |

28.03.2015

Старый смартфон на Android. Вторая жизнь устройства.

true_android

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

Пару слов о проблеме

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

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

Решение

На самом деле, чтобы избежать вышеописанной ситуации, достаточно просто немного задумываться о необходимости того или иного приложения на устройстве.   Например, если Вам не нужны gapps на устройстве, то просто удалите. Или, если Вас не устраивает стандартный Launcher на прошивке со своими свистелками, то замените его более простым.  На самом деле, все что нужно сделать, это с умом подойти к приложениям и их необходимости. Не нужно устанавливать десять различных плееров, т.к. в конечном итоге большинство из них это все равно GUI-обертка поверх объекта Android SDK – MediaPlayer (вдобавок, каждый из них может запускать фоновые процессы, которые поодиночке работают незаметно, но вместе создают нагрузку на процессор, что кстати плохо сказывается не только на работе, но и на времени работы, если устройство мобильное). Итак, вот небольшой список рекомендаций:

  • Одно приложение на одну задачу (это касается всех медиаплееров, офисных пакетов, браузеров и т.д.). Разумеется, если Вам нужны специфические задачи для софта, то нужно ставить несколько различных приложений. Например, один браузер для сети Интернет, другой – для Tor;
  • Не гонитесь за свежими версиями ПО. Просто посмотрите на историю изменений большинства ПО. Как правило, там будет написано что-то вроде «Stability improved» или «Fixed a lots of bugs». Это слова ни о чем. Ни конкретных цифр, подтверждающих увеличение производительности, ни номеров багов не написано. Стоит воспринимать это как «Я что-то изменил в коде, но сам не хочу писать, что именно или не знаю, но код я поменял, а значит, вышла новая версия. Скачивайте.». Причем, что особенно актуально для софта под мобильные ОС, редко кто пишет, что закрыл уязвимости в ПО, а ведь их там немало;
  • Не пользуйтесь кастомными прошивками. Нет, я вовсе не заставляю никого пользоваться стоком. Но как показала практика, стоковые прошивки не только работают быстрее, но и стабильнее, что намного важнее скорости. Вы всегда можете почитать о «стабильности» портов популярных прошивок, адаптированных под конкретное устройство «непонятно кем». Даже если прошивка стабильно работает у автора (стабильно по сравнению с чем?), то далеко не факт, что на другом таком же устройстве она будет работать точно так же. Более того, мне непонятно рвение делать что-то из разряда «потому что я могу». Например, Android 4.0 для LG GT540. Все, что можно сделать с таким устройством после прошивки, это посмотреть время. Даже звонить удается с трудом, не говоря уже о вполне привычных даже для редкого использования задач, вроде проверки почты или чтения новостей в Интернете;
  • Не ставьте утилиты для оптимизации системы и меняйте сами настройки системы/ядра. То, что какая-то программа почистит кеш Dalvik VM или перенесет кеш приложения на SD-карту, не сделает работу приложения быстрее. А изменение настроек ядра вообще отдельная история. В некоторых случаях можно не то что не заметить прироста производительности, но и вовсе получить ее ухудшение. О более конкретных примерах таких настроек и почему их не следует применять Вы можете прочесть в статье журнала «Хакер»;
  • Минимализм – то, чем стоит руководствоваться при выборе приложения. Речь идет об использовании нативного интерфейса и SDK. Если сравнить два одинаковых по функционалу приложения, работать (а зачастую и занимать в памяти) быстрее будет то, что использует SDK. Использование стека технологий «*уяк-*уяк и в продакшен» как правило устраивает всех, кроме конечного пользователя.
  • Не стоит брезговать старыми версиями ПО. Иногда их достаточно тяжело найти, но существуют любители собирать разные версии, имеется множество софта с открытым кодом. uTorrent для Windows и gapps – типичный пример того, как для пользователя с каждой новой версией софт становится «хуже» (требует больше ресурсов при одинаковых задачах). Различные версии ПО можно скачать на 4pda.ru (не качайте, пожалуйста, платный софт бесплатно, это очень плохо :) ).