Хотите ускорить Андроид? Надоели тормоза и долгий отклик приложений? Прежде чем вы решите на покупку нового смартфона, сначала стоит попробовать немного ускорить ваш Андроид.

Содержание показать

Как и любое вычислительное устройство, даже самые лучшие смартфоны и планшеты Android имеют тенденцию замедляться по мере использования и старения. Это особенно актуально для недорогих смартфонов, которые не всегда предназначены для работы с будущими программными функциями и приложениями. Но не отчаивайтесь — вот 15 советов, которые вы можете использовать, чтобы ускорить ваше Android-телефон и вдохнуть в него немного больше жизни.

Примечание редактора. Хотя это руководство применимо к большинству телефонов Android, точные инструкции могут немного отличаться в зависимости от операционной системы и версии программного обеспечения телефона.

  1. Обновите прошивку на Андроид
  2. Отключить предустановленные приложения
  3. Отозвать неиспользуемые разрешения
  4. Время от времени перезагружайте телефон
  5. Удалить старые чаты и загруженные медиа
  6. Замените приложения, снижающие производительность
  7. Отключить громкую связь Google Assistant
  8. Запретить автоматическое обновление приложений
  9. Установка кастомной прошивки на Андроид
  10. Уберись на рабочем столе Андроид
  11. Уменьшите анимацию на Андроид
  12. Принудительный рендеринг GPU Андроид
  13. Переключитесь на SKIA Андроид
  14. Очистить кеш память Андроид
  15. Отключить автосинхронизацию Андроид
  16. Фоновые процессы в Андроид
  17. Избегайте приложений для оптимизации на Андроид
  18. Разгон Андроид
  19. Удалить все начисто с Андроид

Обновите прошивку на телефоне Андроид

КАК НА 100% УБРАТЬ ЛАГИ И ФРИЗЫ В МОБИЛЬНЫХ ИГРАХ НА ANDROID И IOS (60 ФПС)

Хотя последние обновления прошивки не всегда ускоряют работу телефона Android, производители часто оптимизируют и настраивают свое программное обеспечение с течением времени. Несколько исправлений безопасности и исправлений ошибок должны улучшить общее впечатление. То же самое касается сервисов Google Play, которые отвечают за многие современные функции Android и получают отдельные обновления через Play Store.

Большинство Android-смартфонов периодически проверяют наличие обновлений, но только при определенных обстоятельствах. С этой целью, возможно, стоит вручную проверить, не пропустили ли вы какие-либо обновления. Просто зайдите в «Настройки» > «Об устройстве» > «Обновление ПО» и нажмите «Проверить наличие обновлений».

Отключить предустановленные приложения

Из широкого спектра смартфонов, которые мы тестировали в xpcom.ru, становится ясно, что многие приложения, входящие в комплект производителя, просто никогда не используются. Это особенно верно для недорогих телефонов с поддержкой рекламы, которые могут продвигать свои собственные услуги по сравнению с теми, которые вы действительно используете. Некоторые заслуживающие внимания примеры включают специализированные магазины тем, музыкальные/видеоплееры и приложения для сканирования устройств.

Хотя производители часто запрещают удалять эти приложения, они все же позволяют их отключить. Другими словами, хотя вы не можете их удалить, вы можете перевести их в спящее состояние, в котором их нельзя будет открыть — вручную или автоматически. Вы можете отключить приложения в меню «Настройки» > «Приложения» > «Установленные приложения». Возможно, также придется переключить параметр «Показать системные приложения».

Отозвать неиспользуемые разрешения

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

Просто перейдите в «Настройки» > «Конфиденциальность» > «Диспетчер разрешений», чтобы получить краткий обзор разрешений приложений. Либо нажмите и удерживайте значок любого приложения на главном экране, нажмите «Информация о приложении» , затем «Разрешения».

Время от времени перезагружайте телефон

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

Тем не менее, телефон может оказаться в том же состоянии через несколько дней. К счастью, некоторые скины производителей, такие как Samsung One UI, позволяют запланировать автоматический перезапуск в установленное время. Вы даже можете настроить его на определенные дни недели. Другие производители Android, предлагающие эту функцию, включают Oppo, Xiaomi и OnePlus.

Удалить старые чаты и загруженные медиа

Как объяснялось в предыдущем совете, приложение на смартфоне может сильно раздуться при достаточном количестве времени и использования. Это относится и к чат-приложениям. WhatsApp, например, не только хранит загруженные данные в локальном хранилище, но и всю базу данных чата. Это может быть большой проблемой на более медленных смартфонов, особенно если вы накопили десятки тысяч сообщений за эти годы.

Исправить эту проблему легко, но немного долго. Вам придется вручную очищать неважные разговоры каждые несколько недель. Не забудьте удалить медиафайлы. Это ускорит работу приложения галереи и средства выбора изображений на Android-телефоне.

Замените приложения, снижающие производительность, облегченными версиями

Облегченные приложения предлагают простой способ высвободить ресурсы телефона из полноценных энергоемких приложений. Приложение Facebook для Android, например, имеет репутацию раздутого и требовательного к разрешениям. В то же время другие, такие как Instagram и Twitter, имеют слишком много тяжелых элементов, таких как автоматическое воспроизведение видео, с которыми ваш телефон не справится.

«Облегченные» приложения обычно отказываются от функций в пользу более быстрого времени загрузки и улучшенного отклика. Если это компромисс, на который вы готовы пойти, рассмотрите возможность использования таких приложений, как Facebook Lite и Messenger Lite, чтобы ускорить работу вашего Android-телефона.

Отключить громкую связь Google Assistant

приложения Google сильно разряжает аккумулятор

Google Ассистент может быть удобен, когда нужно быстро что-то найти. Однако для запуска службы требуется довольно большая часть бюджета производительности телефона. С этой целью следует отключить фоновые функции, если вы хотите ускорить работу своего Android-смартфона.

Чтобы отключить помощника без помощи рук, зайдите в приложение Google и коснитесь фотографии своего профиля (расположенной в правом верхнем углу экрана). Затем перейдите в «Настройки» > «Google Ассистент» > «Окей, Google и Voice Match» и отключите эту функцию. Не беспокойтесь — вы по-прежнему можете получить доступ к Ассистенту вручную. Либо нажмите и удерживайте кнопку «Домой», либо проведите пальцем по диагонали из любого нижнего угла, если вы используете жесты Android. Если вы используете смартфон Samsung, рассмотрите также возможность отключения Bixby Voice .

Запретить автоматическое обновление приложений

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

Чтобы отключить обновления приложений, просто откройте Play Store, коснитесь изображения своего профиля в правом верхнем углу и выберите «Настройки сети». Наконец, просто измените настройку автоматического обновления на «Не обновлять приложения автоматически», как показано на рисунке выше.

Установка кастомной прошивки на Андроид

Если для вашего смартфона долго не выходят обновления, можно попробовать решить проблему установкой кастомной прошивки.

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

Читайте также:  Как перейти в вольный режим в Hearthstone

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

Уберись на рабочем столе Андроид

Все, время от времени убираются у себя в доме. То же самое нужно делать и на Андроид устройстве. Если у вас на рабочем столе стоят живые обои, виджеты показывающие вам новости, погоду, соцсети, то можно заметить не большое подтормаживание при переходе между столами. Если у вас включена визуализации вроде Bixdy, подумайте об ее отключении.

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

Уменьшите анимацию на Андроид

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

Чтобы убрать анимацию на Андроид, вам нужно включить режим разработчика в настройках устройства. Активировать режим разработчика нужно зайдя в «Настройки» -> «О телефоне» и нажать 7 раз на надпись «Номер сборки» на телефонах Xiaomi нужно нажимать на «Версия MIUI».

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

Принудительный рендеринг GPU Андроид

Не выходите из меню разработчика! Есть еще один способ ускорить ваш телефон на Андроид, — это принудительный рендеринг GPU. Телефон будет использовать свой графический процессор (GPU), а не программный рендеринг для некоторых 2D-элементов, которые еще не задейстWowали эту функцию. Это означает, что визуализация пользовательского интерфейса станет более быстрой, а анимация более плавной, и снимет нагрузку с основного процессора устройства.

Примечание: GPU потребляет больше энергии, чем процессор, поэтому время автономной работы может сократиться на 5-15%. Выбор за вами!

Переключитесь на SKIA Андроид

Если на вашем телефоне стоит Андроид 7.0 или выше, вы можете, попробовать перевести движок рендеринга графического процессора на SKIA, после чего, по отзывам пользователей, FPS в играх увеличивается. Я попробовал на игре Star Wars™: Галактика героев и могу подтвердит, что игра стала плавней. Включить режим SKIA, можно в том же режиме разработчика, а также изменить другие настройки, чтобы ускорить скорость работы Андроида.

Пока вы находитесь в режиме разработчика, можете попробовать включить Force 4x MSAA. Это метод сглаживания, который не увеличит FPS в игре, но может сделать их визуализацию более красивой. Но, увеличит нагрузку на батарею и может привести к определенному замедлению смартфона. Тем не менее, изменение этих настроек не принесут вреда телефону. Попробуйте включить их, сравнит, и выбрать то, что вам больше нравиться.

Очистить кеш память Андроид

Кеш — это данные приложений, которые помогают быстрей загружаться — тем самым ускоряя работу Андроид. Браузер может кешировать изображения часто посещаемых вами сайтов, из-за чего ему не нужно загружать их каждый раз, когда вы заходите на такие сайты.

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

Заметка: Подробнее о том, как и когда, очищать кеш на телефонах Андроид, вы можете узнать на странице: Как очистить кэш на Андроиде.

Если вы не ходите или боитесь в ручную чистить кеш, может воспользоваться специальным приложением, например CCleaner.

The app was not found in the store.

Отключить автосинхронизацию Андроид

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

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

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

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

Фоновые процессы в Андроид

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

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

Избегайте антивирусов и приложений для оптимизации на Андроид

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

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

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

То же самое касается кэшированию данных — чистить кэш время от времени, но не злоупотребляйте этим!

Разгон Андроид

Если вам нужно ускорить скорости игры, разгон будет правильным решением.

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

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

Читайте также:  Как работает некролит Hearthstone

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

Удалить все начисто

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

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

Я, что-то пропустил?

Если я пропустил один или два способа ускорения телефона на Андроид, обязательно расскажите о них в комментариях ниже, а мои читатели будут вам очень признательны! Удачи!

Источник: xpcom.ru

Как ускорить игру и повысить производительность на Андроид – оптимизация

Как ускорить игру и повысить производительность на Андроид – оптимизация

Современные смартфоны используются для выполнения самых разных задач. Мобильные устройства не только являются средством связи, но и представляют собой геймерские девайсы. На телефоны можно устанавливать игры, однако далеко не всегда они готовы похвастать стабильностью. Если вы столкнулись с лагами во время гейминга, необходимо разобраться, как ускорить игру на операционной системе Андроид. Сделать это удается несколькими способами.

Изменение частоты обновлений

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

  • Откройте настройки смартфона.

как ускорить игру на андроид

  • Перейдите в раздел «Дисплей», а затем – «Частота кадров».

как ускорить игру на андроид

  • Установите максимальное значение.

Подобная опция доступна только на устройствах, чья частота экрана превышает стандартные 60 Гц. Однако данный показатель изменяется не только в настройках смартфона, но и в игре, где может быть выставлено ограничение в 30 fps. Попробуйте повысить его, воспользовавшись следующей инструкцией:

как ускорить игру на андроид

  • Откройте настройки.
  • В разделе «Графика» установите максимальное значение частоты кадров.

как ускорить игру на андроид

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

Так смартфону станет легче обрабатывать картинку, и она перестанет подвисать.

Установка последних обновлений

Также повысить стабильность гейминга помогает установка актуальной версии используемой игры. Проверить их наличие и установить апдейт поможет следующая инструкция:

  • Запустите Google Play Маркет.

как ускорить игру на андроид

  • Тапните по иконке своего профиля.
  • Перейдите в раздел «Управление приложениями и устройством».

как ускорить игру на андроид

  • Откройте вкладку «Доступны обновления».
  • Нажмите кнопку «Обновить», расположенную напротив названия приложения.

как ускорить игру на андроид

Если приложение устанавливалось вручную через APK-файл, то его сначала придется удалить, а затем – повторно установить, но уже новую версию. В то же время помните, что помимо обновления игры для стабильного гейминга требуется обновление операционной системы смартфона:

  • Откройте настройки устройства.

как ускорить игру на андроид

  • Перейдите в раздел «О телефоне», а затем – «Обновление ПО».
  • Нажмите кнопку «Проверить наличие обновлений».

как ускорить игру на андроид

  • Если апдейт будет найден, то поочередно необходимо нажать кнопки «Скачать» и «Установить».

Совет. Перед установкой обновления системы рекомендуется сбросить смартфон до заводских настроек.

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

Подключение к быстрому Wi-Fi

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

как ускорить игру на андроид

Force 4x

В настройках смартфона скрывается куча параметров, непосредственным образом влияющих на производительность устройства. Так что еще один вариант ускорения гаджета – активация опции Force 4x по инструкции:

  • Откройте настройки гаджета.

как ускорить игру на андроид

  • Перейдите в раздел «О телефоне».
  • Несколько раз тапните по пункту «Номер сборки», пока не появится сообщение «Поздравляем, вы стали разработчиком».

как ускорить игру на андроид

  • Перейдите в раздел настроек «Для разработчиков».
  • Активируйте ползунок, расположенный напротив пункта «Force 4x MSAA».

как ускорить игру на андроид

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

Очистка памяти

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

как ускорить игру на андроид

Game Booster

Автоматизировать процесс оптимизации смартфона помогает приложение Game Booster. Оно доступно для скачивания через Play Маркет. После установки необходимо запустить утилиту и нажать кнопку ускорения. Далее остается запустить игру, чтобы проверить, насколько более плавным стал гейминг.

как ускорить игру на андроид

Аппаратное ускорение

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

Источник: it-tehnik.ru

Пять шагов по оптимизации производительности приложения для Андроид

В этой небольшой статье я хочу поделиться с вами опытом, как программно оптимизировать производительность приложения Андроид за 5 простых шагов на примере создания цифровой версии игры «Корона Эмбера».

До создания серьезных приложения со сложной структурой View и Layout’ов мы особо не задумывались над тем, как простые и логичные действия в стиле «смотрите, я набросал дизайн из лэйаутов» могут серьезно замедлить работу всей программы.

Помимо прочего, задача с «Короной Эмбера» осложнялась еще и тем, что игра, которую мы задумали перенести на Андроид платформу, была сама по себе достаточно насыщенной различными компонентами, которые как-то надо было умещать на игровом поле или рядом с ним.

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

Итак. Исходная точка (то, как это все выглядело ДО оптимизации)

Дизайн приложения был создан из «правильной» кучи около двух сотен View и десятка Layout’ов. Загрузка игрового поля происходила около 5 секунд, а почти каждое действие зависало еще на 1-2 секунды. И если на прогрессивных устройствах и эмуляторах лаги были практически незаметны, то на большинстве менее современных устройств картина выглядела достаточно печальной.

image

Понятно, что это не устраивало ни меня, ни нашу команду, ни тестеров. И хотя мы были искреннее уверены, что все оптимизировано дальше некуда, мы принялись искать информацию.

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

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

Читайте также:  Игры похожие на Хартстоун

И вот, как это происходило.

Шаг 1. Измерение

По сути это даже не шаг, а настойчивая рекомендация постоянно измерять свою производительность. Для этого в Андроид Студио предусмотрено несколько специальных программ: Android Device Monitor с HierarhyViewer, SystemTracing, Method Profiling; Android Monitor с Memory, CPU и GPU мониторами. Описывать их работу не цель данной статьи, вы легко можете найти гайды здесь же, на Хабре, или в упомянутых видео-уроках.

Суть в том, что чтобы оптимизировать производительность, нужно сначала понять где же она «спотыкается».

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

Шаг 2. Оптимизация иерархии и снижение веса

Основная потеря производительности приложений происходит при пересчете и перерисовке отображенных Layout’ов. Причем чем «тяжелее» лэйаут — тем дольше происходит перерасчет его показателей. И тут надо обратить внимание на следующие моменты:

— в вашей иерархии не должно быть вложенных LinearLayout с параметрами «weigh» (вес). Измерение такого лэйаута занимает в два (три, четыре! — в зависимости от вложенности) больше времени. Лучше заменить эту конструкцию на GridLayout (или support.v7.GridLayout для API меньше 21);
— некоторые LinearLayout можно заменить на RelativeLayout, тем самым убрав дополнительные вложения, например;
— оказывается, RelativeLayout также измеряется дважды. Где возможно — его нужно заменить на более «легкий» FrameLayout.

Изучив нашу разметку мы с ужасом обнаружили, что в ней есть вложенные до четырех (!) раз LinearLayout с параметром вес, игровое поле состоит из почти сотни RelativeLayout (клетки поля), а некоторые Layout просто не нужны.

(Зеленым отмечено допустимое вложение, желтым — нежелательное, оранжевым — опасное, красным — «никогда-так-не-делайте!»)

image

После этого мы немного переработали структуру. «Персонажа» вынесли в отдельный фрагмент с RelativeLayout, все вложенные Linear заменили на (один!) support.v7.GridLayout, а все RelativeLayout (на скрине их не видно — это клетки поля) заменили на FrameLayout. Получилось и симпатишней и производительней.

image

Однако до конца наши проблемы это не решило, и мы пошли дальше.

Шаг 3. Лишняя перерисовка (Overdraw)

Оказалось, что Андроид тщательно прорисовывает каждую картинку, каждый background у каждого View на экране. Здесь он, конечно, молодец. Но что делать, если одни изображения перекрывают другие, бэкграунды накладываются и часть этой прорисовки становится абсолютно ненужной? Правильно — отключать все, что не видно и не нужно.

Измерить наложение перерисовки оказывается очень просто: на своем устройстве в «Параметрах разработчика» нужно включить «Показывать превышение GPU», запустить приложение и посмотреть на экран.

Цвета View-элементов покажут, насколько у вас все хорошо (или плохо).

Свой цвет — уровень 0, «идеально»
Синий цвет — уровень 1, «нормально.
Зеленый цвет — уровень 2, „допустимо“.
Светло-красный цвет — уровень 3, „нежелательно“.
Красный цвет — уровень 4+, „не дай бог“.

Наша картинка вновь ввергла нас в ужас:

image

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

В теме приложения выключили и его. И вот что получилось в итоге. Может и не везде идеально, но вполне допустимо. (Почти все View опустились на 3 уровня!)

Шаг 4. Кэширование — ключ к успеху

Тоже вполне очевидная вещь, которая не казалась обязательной — это кэширование. В частности (в данном случае) кэширование шрифта.
Как вы уже наверное обратили внимание, везде, включая логи, используется свой шрифт и, о (опять) ужас!, каждый раз, для каждого нового текста он подгружается заново из Assets. Каждый раз, Карл! (черным цветом — основной потом, коричневым — работа Assesnager’а).

С кэшированием до этого никто из нас не сталкивался, но тут нас выручил один хороший человек со StackOverflow и подсказал простой код:

private static final Hashtable cache = new Hashtable(); public static Typeface get(Context c, String name) < synchronized (cache) < if (!cache.containsKey(name)) < String path = «fonts/» + name; try < Typeface t = Typeface.createFromAsset(c.getAssets(), path); cache.put(name, t); >catch (Exception e) < e.printStackTrace(); >> return cache.get(name); > >

Применив который, лично я вообще практически забыл, что такое лаги.

Шаг 5. „А это — под укроп!“

Как в анекдоте, где мужику сказали, что он получит под надел столько земли, сколько сам сможет измерить и он скакал, бежал, шел, полз и в конце изможденный снял с себя шапку и кинул на сколько смог со словами: „А это — под укроп“, так и мы стремились максимально до мельчайших деталей оптимизировать производительность.

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

— создавайте поменьше „ненужных“ циклов. Если что-то можно сделать без них — делайте без них;
— не создавайте переменных в цикле. Лучше создать их за его пределами, а в цикле просто обновлять;
— если есть необходимость обратиться к ресурсам неоднократно (с помощью gerResources() или же просто в другой класс/массив, например, myList.get (0)) — лучше запишите полученный результат в новую переменную и используйте ее: int myItem = myList.get(0); — это тоже подарит вашему приложению миллисекунды свободного времени;
— по возможности используйте статические методы (если нет необходимости обращаться к самому классу);
— ну и классический способ: на финальном этапе программирования убирайте инкапсуляцию (геттеры и сеттеры) и обращайтесь к переменной напрямую.

Подводя итог

Уверен, что сделанные шаги не являются окончательными и всегда будет „место под укроп“, до которого мы не добрались. Всегда готов узнать о шаге №6, 7… и даже №157, если вы захотите ими поделиться в комментариях. Более того, за „науку“ буду благодарен.

А пока, резюмируем, что же нужно сделать, чтобы ваше приложение начало „летать“:

1. Измерьте производительность своего приложения и найдите источник проблемы. Может у вас это будет не шрифт, а, например, утечка памяти (включаем Memory Monitor);
2. Оптимизируйте структуру и иерархию View (включаем HierarhyViewer и здравый смысл);
3. Убираем везде все ненужные бэки, включая background приложения (в этом случае учтите, что для корректного отображения вам все равно понадобится общий бэк);
4. Смотрим на часто используемые ресурсы/загрузки/картинки/шрифты и кэшируем их;
5. Делаем оптимизацию программного кода.

В итоге, после всех этих шагов, картинка трассинга приложения стала выглядеть вот так:

задержки практически исчезли (или стали незаметны), что нас вполне устроило.

Ну и конечно, первая мысль, которая пришла ко мне в голову после всей нашей оптимизации: „Вау! Теперь же можно добавить еще больше View и Layout на основной экран!“

  • андроид разработка
  • оптимизация
  • android development
  • optimization

Источник: habr.com