Почему мое Android-устройство замедляется после последовательных обновлений ПЗУ без очистки?

У меня Verizon Galaxy Nexus (торо) на 32 ГБ. Я использую Cyanogenmod 10.1 ROM nightlies и использую CyanDelta Updater , чтобы оставаться в курсе последних событий.

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

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

Вместо того, чтобы переключиться на другое ПЗУ, я решил сначала сделать полную очистку (сброс настроек). Я использовал Titanium Backup для резервного копирования своих пользовательских приложений и данных. В TeamWin Recovery я сбросил настройки до заводских, каждую ночь прошивал тот же CM 10.1, что и раньше, восстановил свои приложения с помощью Titanium, вошел в учетные записи и т. д.

Работа моего телефона полностью восстановлена. Это как ночь и день.

Мой вопрос: почему это сработало? Что такого в применении последовательных версий ПЗУ, которые могут вызвать замедление работы, которое исправит стирание?

Мне нравится мой новый уровень производительности, но мне также нравится следить за последними выпусками. Кажется, я не могу есть свои мармеладки и есть их тоже. Теперь неохота прошивать какие-либо обновления, не сделав полный вайп.

У меня такая же проблема, и я просто предположил, что это были ошибки или что-то еще.
Иногда вместо полной очистки проблему может решить очистка Dalvik Cache (именно там находится предварительно скомпилированный код приложений, который затем будет просто перегенерирован во время загрузки), возможно, он стал слишком фрагментирован.
CyanDelta автоматически стирает кеш Dalvik при каждом обновлении. Так что вряд ли это решение.

Ответы (4)

Я сам придумал один потенциальный ответ: TRIM

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

Команда операционной системы TRIM объясняется в этой статье AnandTech:

Его применимость к определенным устройствам Android, включая мой Samsung Galaxy Nexus и ASUS Nexus 7, объясняется в этих темах XDA Developers:

Член XDA написал приложение под названием LagFix, которое предназначено для выполнения функции обслуживания TRIM, тем самым восстанавливая производительность записи для устройства.

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

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

Я настоятельно рекомендую вам последовать совету и прочитать FAQ по LagFix. Он указывает на утилиту, которая может сказать вам, содержит ли ваше устройство микросхему, которая может страдать от BrickBug.

Я собираюсь принять свой собственный ответ здесь с оговоркой «работает для меня». После введения ночной операции TRIM с использованием LagFix моя производительность оставалась приемлемой (для меня). Продолжал прошивать ночные CM 10.1.
Обновление: согласно AnandTech, Android 4.3 добавляет TRIM на все устройства Nexus. Казалось бы, это подкрепляет мой ответ выше. anandtech.com/show/7185/…

Чтобы ответить на ваш вопрос, я хотел бы процитировать что-то под названием Dalvik VM и файловая система Android.

Файловая система Android будет иметь следующие разделы (как обычно на большинстве устройств), \system\boot\data\cache

Когда вы прошиваете новое ПЗУ, соответствующие файлы будут перемещены в соответствующие разделы.

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

\Кэш\Данные

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

Все приложения Android оптимизированы для dex (.odex) для работы на виртуальной машине dalvik (аналогично Java VM). Эти элементы необходимо очищать при переходе на другие ромы.

Немного информации о dalvik - http://en.wikipedia.org/wiki/Dalvik_%28software%29

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

TL;DR — Восстановлена ​​производительность моего ASUS Nexus 7 16 ГБ 2012 года путем удаления нескольких ГБ ненужных файлов.

Недавно я решил проблему с производительностью на моем ASUS Nexus 7 (16 ГБ, первое поколение), используя решение, не связанное с решением LagFix/TRIM, описанным выше. Хотя LagFix, кажется, решил проблему на моем Verizon Galaxy Nexus (производительность по сей день остается отличной), я продолжал испытывать действительно ужасную и неприемлемую производительность на моем ASUS Nexus 7.

Мои исследования выявили много сообщений о том, что если память Nexus 7 становится «слишком полной», производительность значительно снижается. На моем устройстве было 3 ГБ свободной памяти, поэтому я скептически отнесся к тому, что мой Nexus 7 «слишком заполнен».

Я использовал отличную утилиту DiskUsage , чтобы проверить содержимое моей 16-гигабайтной флэш-памяти, чтобы посмотреть, смогу ли я освободить место. Я обнаружил файл фильма, который давно смотрел, и забыл о том, что он занимает несколько ГБ места.

Я удалил файл фильма, несколько старых резервных копий Nandroid и Titanium, которые мне больше не нужны, и удалил пару гигабайт ненужных мне подкастов. Это освободило несколько ГБ на устройстве.

Производительность моего Nexus 7 теперь превосходна. Он как новый.

Ваша производительность сразу улучшилась? Я просто удалил приложения и файлы, чтобы освободить около 1,7 ГБ до 6,7 ГБ. Я чувствую, что некоторые части системы стали немного быстрее, но в целом многие вещи по-прежнему так же медленны, как и раньше.
Прошло больше года с тех пор, как я написал это выше, и, боюсь, я не помню, улучшилась ли производительность «сразу», извините. Кроме того, в более новых версиях Android было внесено множество улучшений. Версия 5.0 Lollipop вышла и должна быть доступна для ASUS Nexus 7 2012 года. У меня больше нет этого устройства, поэтому я не могу больше помочь с ASUS Nexus 7 2012 года.

Я попытался стереть кеш dalvik, но это не сработало, затем я попытался стереть все данные и переустановить CyanogenMod 11 , но это тоже не сработало. Затем я придумал решение, что с помощью CPU MASTER (доступно в магазине игр) мы можем установить максимальную частоту нашего процессора на постоянное время, и Блум результат был невероятным. Я предпочту его всем. Но для этого нужен рут, так что.....

Привет, Онкар, и добро пожаловать в ряды любителей Android! :) Хотя ваш ответ имеет смысл, он не затрагивает основную проблему вопроса. Настройка частоты ЦП, скорее всего, всегда приведет к повышению производительности, но здесь это нежелательно. Также следите за временем автономной работы с этого момента :)