Что значит не хранить activities
[Прочее] Оптимизируем MIUI: отключаем фоновую запись действий пользователя на Xiaomi (Redmi)
|
IMG_20200522_104403-840×525.png (89.06 KB, Downloads: 0)
2020-05-30 21:34:31 Upload
Чем глубже изучаешь MIUI на Xiaomi (Redmi), тем больше понимаешь как много функций возможно отключить, или перенастроить, чтобы улучшить автономность телефона, увеличить его производительность и добиться более предсказуемой и плавной работы.
Каждая настройка отдельно слабо влияет на общее впечатление от работы с Xiaomi, но когда их отключишь все, станет заметно насколько MIUI будет работать быстрее, отзывчивее и плавнее, при этом увеличиться автономность смартфона.
Сегодня я покажу вам одну настройку в меню для разработчиков на Xiaomi, которая ведёт постоянную запись в лог всех действий пользователя почти во всех приложениях. Строго говоря, запись ведётся только в тех программах, которые поддерживают эту функцию, но это почти все приложения, обновлённые за последний год.
Факт записи активности пользователя на Xiaomi не сильно влияет на производительность, но всё зависит от частного случая и конкретного приложения. После того, как я отключил её, мой телефон начал плавнее листать ленту в приложениях социальных сетей, и анимация переключения между приложениями также стала воспроизводиться стабильнее. Возможно, это самовнушение, но в любом случае обычному пользователю, не разработчику, запись вести нет необходимости, к тому же эти логи занимают драгоценную память Xiaomi.
Прежде всего необходимо получить права разработчика: Настройки / О телефоне / Нажимаем на ВЕРСИЯ MIUI нескольео раз, пока не появится надпись на экране ВЫ СТАЛИ РАЗРАБОТЧИКОМ.
4.jpg (277.21 KB, Downloads: 0)
2020-05-30 21:29:00 Upload
После этого: Настройки / Расширенные настройки /Для разработчиков / Трассировка системы
Теперь оключаем функцию ЗАПИСЫВАТЬ ДЕЙСТВИЯ ПРИЛОЖЕНИЙ, ДОСТУПНЫХ ДЛЯ ОТЛАДКИ
5.jpg (359.4 KB, Downloads: 0)
2020-05-30 21:29:07 Upload
И нажимаем УДАЛИТЬ СОХРАНЕННЫЕ ЗАПИСИ ДЕЙСТВИЙ, чтобы освободить память от ненужных нам записей, которые могут занимать сотни мегабайт.
Всё, мы отключили ещё одну функцию, которая потребляла энергию, ухудшала производительность Xiaomi и зря занимала память.
Проверено лично на Xiaomi mi 9t pro
Источник
В чем главное преимущество и недостаток «не сохранять активности» в Android
Один вопрос, который я хотел бы получить, если бы кто-нибудь мог ответить на него, например: Do not keep activities параметры, которые необходимо проверить во время тестирования мобильного приложения Android от разработчиков.
Я использовал его в своем приложении и обнаружил, что мое приложение ведет себя некорректно и дает сбой при включении Do not keep activities в Android.
Моих вопросов было немного:
1: How much this option will affect mobile applications?
2: What exactly does this do?
Создает ли это положительную или отрицательную функциональность в моих приложениях?
6 ответов
Насколько эта опция повлияет на мобильные приложения?
Если они хорошо написаны, эта опция на них не повлияет.
Если этот параметр включен, только переменные, которые сохраняются в активности с помощью метода onSaveInstanceState будут сохранены, когда вы перейдете к другому действию или приложение перейдет в фоновый режим. Все остальные переменные будут немедленно удалены. Когда эта опция выключена, существует вероятность, что эта переменная будет сохранена.
Нет, это означает, что все несохраненные переменные будут удалены. Например, когда вы нажимаете кнопку «Домой».
Создает ли это положительную или отрицательную функциональность в моих приложениях?
Нет, это только помогает правильно разработать приложение. Помогает предугадывать неожиданные ситуации.
Преимущество «Не сохранять действия» заключается в том, что он имитирует ситуацию с нехваткой памяти в системе, когда она начинает убивать различные части приложения. Ваше приложение должно поддерживать эту ситуацию. Недостатком является то, что этот вариант является своего рода ограниченным и убивает только действия, когда нет возможности эмулировать это для служб.
Опция Do not keep activities рядом с Developer options позволяет разработчикам легко воспроизвести тот же сценарий.
В идеале хорошо разработанное Android-приложение должно обрабатывать onSaveInstanceState и onRestoreInstanceState сохранение и восстановление локальных переменных всех действий.
Более подробная информация представлена здесь на официальном сайте разработчиков Android.
ПРЕИМУЩЕСТВО :
НЕДОСТАТКИ :
Если пользователь неосознанно включил эту опцию, устройство будет работать медленно, и все действия будут воссозданы заново во время навигации пользователя на его устройстве. Это затруднит работу пользователя
Очень хороший ответ об использовании можно найти на форуме разработчиков xda. этого варианта
2. Handled малым объемом памяти Ситуации, соответствующим образом (в этом случае активность будут уничтожены). ̶
Каково главное преимущество и недостаток «не держать действия» в android
Один запрос, который я хотел бы получить, если бы кто-нибудь мог ответить на него, как: Do not keep activities следует проверять параметры Do not keep activities во время тестирования мобильного приложения Android от разработчиков.
Я использовал его в своем приложении и обнаружил, что мое приложение ведет себя некорректно и разбилось, когда я включил. Do not keep activities в android.
Мои вопросы были несколько:
1: How much this option will affect mobile applications?
2: What exactly does this do?
Создает ли это какие-либо положительные или отрицательные функции в моих приложениях?
Каковы были преимущества и недостатки его использования при сохранении. Do not keep activities Просьба поделиться опытом.
Насколько этот параметр повлияет на мобильные приложения?
Если они хорошо написаны, этот вариант не повлияет на них.
Если этот параметр включен, только переменные, хранящиеся в активности с методом onSaveInstanceState будут сохранены, когда вы перейдете к другому действию или приложению в фоновом режиме. Все остальные переменные будут немедленно удалены. Когда этот параметр выключен, есть вероятность, что эта переменная будет сохранена
Нет, это означает, что все не сохраненные переменные будут удалены. Когда вы в пример нажмите кнопку «домой».
Создает ли это какие-либо положительные или отрицательные функции в моих приложениях?
Нет, это только помогает правильно разработать приложение. Это помогает прогнозировать неожиданные ситуации.
Do not Keep Activities – это просто вариант разработчика, который поможет вам проверить, не
2. Handled малого объем память Ситуация, соответствующий образ (в этом случае активность будет уничтожена). ̶
Изменить : этот параметр не эмулирует ситуации с низкой памятью. Когда устройство испытывает низкую память, система может запросить операцию «Drop», вызывая Finish (), или она может идти вперед и полностью уничтожить процесс, как говорится в комментарии.
ПРЕИМУЩЕСТВА :
НЕДОСТАТКИ :
Если пользователь неосознанно включил эту опцию, то устройство будет работать медленно, и все действия будут воссозданы во время навигации пользователя на его устройстве. Это затруднит работу пользователя
Очень хороший ответ дается в форуме разработчиков xda об использовании этой опции
Поэтому для проверки такого полного случая вы должны остановить приложение вручную, но не отбрасывайте его из диспетчера задач. Самый простой способ – с красной квадратной кнопкой в андроид-студии. И снова откройте приложение.
Преимущество «Не сохранять активность» заключается в том, что он эмулирует системную ситуацию с низкой памятью, когда она начинает убивать разные части приложения. Ваше приложение должно поддерживать эту ситуацию. Недостатком является то, что этот вариант является своего рода строгим и убивает только действия, когда нет способа подражать этому для служб
Режим разработчика на Xiaomi
Работа системной анимации
В брендовой оболочке от Xiaomi в параметры от производителя всегда включена анимация интерфейса. Она смотрится стильно, но может дополнительно загрузить систему. Это будет особенно заметно, если у вас модель со слабыми характеристиками.
Анимацию можно выключить, но для этого нужно иметь Root-права, т.е. быть в режиме разработчика. Чтобы получить доступ, зайдите в приложение “Настройки” и откройте раздел “О телефоне” или “Об устройстве”. Название может различаться в разных версиях.
В списке найдите пункт “Версия MIUI”. В меню есть надпись “Версия прошивки” — на неё нужно нажать 7 раз. Делайте это быстро, чтобы команда сработала. Если вы всё сделали верно, то появиться уведомление о доступности меню разработчика. Текст надписи может различаться.
Когда Root-права получены, зайдите в параметры и найдите пункт “Дополнительно”. В полученном списке выберите “Оптимизацию“. Смартфон предложит включить или отключить системную анимацию. Выберите необходимый пункт. Так даже слабые гаджеты будут работать, как флагманы.
Уменьшаем расход оперативной памяти
Чтобы не тратить время на очистку оперативной памяти, можно оптимизировать работу смартфона. Так он будет тратить меньше ресурсов и сэкономит время. Есть несколько способов это сделать:
Ограничение количества фоновых процессов
Рекомендованы следующие варианты:
Еще один вариант — настроить очищение оперативной памяти после включения экрана блокировки. Переходим в:
Выбрать можно очистку после 1, 5, 10, 30 минут включения блокировки экрана.
Как добавить и удалить
Имеется два способа, при помощи которых можно добавить рабочий стол:
Щипком с помощью трех пальцев на панели надо включить меню управления. Нажать на «+», после чего и появится новая площадка;
Актуальным также является вопрос о том, как убрать лишний рабочий стол на смартфоне, так как многим владельцам гаджетов тяжело работать с большим количеством экранов. Чтобы удалить площадку, необходимо зажать палец на центре дисплея, дожидаясь появления крестика. На него необходимо нажать, после чего исчезает рабочий стол.
Как убрать левый рабочий стол с виджетами
Чтобы отключить дисплей с виджетами, находящийся слева, необходимо зайти в настройки рабочего стола
Следует обратить внимание на то, что он убирается далеко не на всех прошивках. Однако попытаться все-таки стоит
На некоторых прошивках и телефонах необходимо обладать правами пользователя, чтобы разблокировать смартфон. Но сначала стоит попробовать без разблокировки.
Краткая инструкция по анлоку:
Срок обработки может составлять более 1 недели. При этом рекомендуется заходить на сайт и проверять статус заявки, так как sms-сообщение о подтверждении может не прийти.
Когда разрешение получено, можно приступать к основному процессу разблокировки. Как настраивать:
Далее для отключения надо зайти в «Настройки», «Рабочий стол и недавние» и сделать неактивным пункт «Лента виджетов».
На некоторых прошивках для отключения левого дисплея надо отключить функцию «Личный помощник» или «Умный помощник» в настройках рабочего стола.
Автозапуск приложений
В оболочке MIUI есть автозапуску приложений. Некоторые программы включаются сами, без вашего участия, при запуске смартфона. Это загружает систему и мешает её стабильной работе, особенно, если вы не пользуетесь или редкое открываете эти программы. Чтобы выключить “Автозапуск”, необходимо зайти в “Параметры” — “Все приложения”.
В верхней части есть четыре ярлыка: выберите медаль с лентой — “Разрешения”. Здесь можно настроить включение приложений.
Зайдите в раздел “Автозапуска”. Все программы, у которых ползунок синий, включаются при загрузке системы. Если некоторые из них не нужны, передвиньте ползунок
Важно: программы, которые вы отключите, больше не будут включаться сами. Уведомления из них также не будут приходить, пока вы не откроете приложение
Не выключайте автозапуск социальных сетей, если часто ими пользуетесь, иначе можно пропустить важное сообщение.
Отключение и удаление предустановленных приложений
При покупке пользователи неизбежно находят в своем гаджете предустановленные приложения. Некоторыми из них вы будете часто пользоваться. Другие — остаются балластом, который занимает оперативную память и загружает телефон.
В системе MIUI можно отключить неиспользуемые приложения. Для этого нужно зайти в параметры и найти раздел “Все приложения”. Найдите иконку программы, которым вы не пользуетесь, и зайдите на его страницу. Если кнопка “Закрыть” доступна, нажмите её. Она может быть серого цвета: это значит, что приложение не открыто.
Если вы не используете приложение, удалите его обновления. Так освободится часть встроенной памяти. Хотя она нужна для установки программ, наличие свободного пространства влияет и на скорость работы системы.
Режим разработчика: приложения
Подведем итоги. Мы рассмотрели все функции и сервисы в режиме для разработчиков. Большинство из них обычному пользователю просто не нужны, они предназначены для тестировщиков и разработчиков ОС, дополнительного ПО и работы приложений. но есть и ряд полезных индивидуальных функций, вроде GPU-ускорения или агрессивного переключения сетей (использовать мобильную передачу данных и wi-fi одновременно).
Все опции вы настраиваете на свой страх и риск. Поэтому если не уверены, лучше не включать.
Чистим кэш
Кэш — это область во встроенной памяти, которая отведена для хранения временных данных. К ним относятся параметры, логины, пароли, локальные копии фотографий и страниц. Например, если вы часто заходите на один и тот же сайт, смартфон сохраняет шаблон ресурса. Так обновление страницы занимает меньше времени, ведь телефону остается только проверить, изменилась ли информация на ней. Кэш экономит трафик, но может замедлить работу системы, когда его накапливается слишком много.
Смартфоны Xiaomi делают автоматическую очистку кэша, но иногда этого недостаточно. Тогда нужно удалить данные вручную. Есть три способа это сделать:
1. Выборочно. Откройте в настройках раздел “Все приложения” и поочередно переходите во все программы и нажимайте на кнопку “Очистить Кэш”. Для этого способа не понадобятся дополнительные утилиты, но он занимает больше времени.
2. Приложения “Очистка памяти”. Стандартная программа для оптимизации системы, которая удаляет кэш. Чтобы запустилась очистка, достаточно нажать на иконку.
3. Удаление лишних файлов. Откройте в настройках раздел “Хранилище”. Внизу есть надпись “Очистить”.
Второй путь через приложение “Безопасность”. Нажмите на неё и программа начнет анализировать все файлы на телефоне, чтобы отсортировать ненужные.
Среди них будет и папка с неиспользуемыми данными. Сверху написано общее количество найденного мусора. Все файлы разбиты на категории: вы можете посмотреть всё, что будет удалено. Нажмите “Очистить”, чтобы оптимизировать работу системы.
В итоге вы увидите надпись “Очистка завершена”.
Встроенная утилита «Безопасность»
Чтобы повысить продуктивность Xiaomi Miui, пригодится и вкладка Безопасность. Выше мы писали, что сетевые угрозы могут негативно сказаться на энергопотреблении. Производитель же предусмотрел решения для надежной среды.
Периодическая проверка на вирусы
Антивирус для Android – мастхэв или обязательный софт у гаджета. Развитие рынка перенесло вирусы в мобильное сообщество. Повысить производительность медленно работающего гаджета можно лишь одним способом – периодически проводить сканирование, запустив антивирус на полное исследование памяти. При выявлении угрозы он сообщит владельцу и предложит лечение либо удаление зараженного файла.
Ограничение фонового подключения к интернету
Еще один способ помочь телефону – оптимизировать работу приложений от сети. Некоторые из них пользователь использует редко, а подключение в фоновом режиме осуществляется регулярно и достаточно часто – до нескольких раз в час.
Зайдите в меню проверки потребления интернета и отключите галочки у редко используемых приложений. Их значки станут красными. Расходы по тарифу снизятся, а долгосрочность работы аккумулятора возрастет.
Если вы хотите проанализировать каждое приложение в отдельности, используйте пункт «Потребление трафика», там можно посмотреть потребление трафика у каждой программы более детально, отключить тип связи и даже ограничить фоновую активность.
Оптимизация батареи и режима питания
На энергопотребление Xiaomi влияет и надежность работы приложений. Кривая установка, проблемы с совместимостью или глюки системы в целом делает работу на гаджете крайне неудобной. Для уменьшения нагрузки нужна оптимизация работы батареи MIUI.
В разделе «Потребление энергии» можно посмотреть какой именно процесс «самый прожорливый».
Провести оптимизацию легко с помощью иконки с нарисованной батарейкой в меню настроек безопасности.
Алгоритм подсчитает частоту возникновения ошибок, определит длительность использования или неиспользования опцией и порекомендует лучшее решение.
Сверху будут наиболее энергозатратные приложения. После их закрытия или удаления ОС автоматически обновит время до полного разряда батареи в большую сторону.
Если удалить приложение нет возможности, можно поставить ограничение на работу в фоновом режиме через контроль активности.
Очистка кэша
Сделать ревизию кэша – то есть временных файлов – можно двумя способами. Первый – через меню управления памятью очищает его полностью при нажатии на соответствующую строку. В качестве альтернативы нажимайте иконки лишних приложений и последовательно их отключайте.
Очистку кэша можно сделать полуавтоматической — вам ежедневно будет приходить уведомление с предложением «сделать уборку». Можно настроить время проверки и лимит мусора, при достижении которого напоминания начнут появляться.
Для включения это функции нужно перейти в:
Режим разработчика: настройки сети
Отключение рекламы
Навязчивая реклама также раздражает пользователя и влияет на потребление заряда телефоном.
Он состоит из двух этапов. Процедура начинается с перехода в меню Безопасности и отключаем персонализацию услуг. Подробнее об отключении рекламы в отдельной статье.
Перевести бегунки рекомендаций в отключенное положение нужно также в:
Расширенных настройках приложения Музыка;
Настройках утилиты Темы;
Настройках меню безопасности;
Расширенных настройках, в категории Конфиденциальность. Также нужно снять разрешение на участие в программе улучшения качества и отправки данных через персональные сервисы;
В этом же разделе надо найти два пункта: «Доступ к уведомления» и «Приложения с доступом к данным» и в них убрать галочки с полей MSA, MIUI Daemon, Analytics, com.mi.dlabs.vr.Notification Listener (названия могут меняться в зависимости от версии Miui) – скрытых шпионов.
Как перенести заметки с Xiaomi на Samsung?
Для того, чтобы поделиться текстовыми данными с владельцем смартфона другой марки, можно использовать технологию Блютуз. Для передачи данных на устройство с такой же операционной системой, используют утилиту Трансфер. Алгоритм:
Переданные файлы будут сохранены в любую выбранную папку. Пользователь может выбрать путь и сохранить их в тот же месте, где хранятся заметки в Самсунг А50.
Do not keep activities
Не сохранять операции
«Не сохранять операции» — именно таким странным образом переведена фраза «Do not keep activities» в настройках Android. А описание «Удалять все операции сразу после их завершения пользователем» не добавляет ясности. Включается она в меню «Параметры разработчика» (Developer Options), находится в самом низу.
Работает эта настройка очень просто, когда она включена, все неактивные активити умирают. Т.е. после перехода из активити A в активити B, активити A уничтожается. Таким образом можно проверить насколько вписывается ваше приложение в activity lifecycle.
Почти не возникло проблем с Вконтакте, с их SDK можно написать все правильно, но все таки есть у них небольшая проблема. А именно, после авторизации через приложение, результат возвращается в onActivityResult. По документации, нужно вызвать
однако, в случае уничтожения активити нашего приложение, вылетит NPE, поэтому сначала нужно вызвать
Не совсем очевидно, да и незадокументировано. Завел issue, на всякий.
Были проблемы с Facebook, потому как, по глупости своей, я решил использовать android-simple-facebook, а ее автор, как я понял, не особо парился по поводу android lifecycle. Пришлось полностью от него отказаться и переделывать все на официальный SDK Facebook и все проблемы ушли. Хотя, наверное, можно было и так все поправить одной строчкой, но пути назад уже не было.
И совсем не было проблем с Twitter, потому что все работает просто, как топор. У них просто нет своего SDK и авторизации через приложение. Приходится делать все по старинке, через WebView. Вообще у них самая ужасная авторизация из всех.
Ну да это так, лирическое отступление.
Есть проблемы с PayPal SDK, оно просто валится везде где только можно. Благо кто-то уже завел issue до меня и наверняка они в скором будущем это поправят.
Другие примеры
У меня не много приложений на телефоне, да и смотреть их все мне, если честно, лень, но я не мог пройти мимо недавно вышедшего приложения хабра. Начнем, конечно же, с него. Ну и добавлю ошибку Payoneer, которую нашел случайно:)
Хабрахабр
Я потыкался по разным экранам и уже было расстроился, неужели все написано правильно и один лишь я делаю столько ошибок. Но нет, я таки добрался до страницы About:
Payoneer
Много времени не понадобилось. Экран логина, ушел в keepass за паролем, вернулся — гипс крэш:
Ещё есть некоторые приложения без крэшэй, но с неправильным поведением, например, не сохраняется открытый фрагмент, а вместо него, после пересоздания, снова показывается главный экран приложения.
Используйте настройку «Do not keep activities», надеюсь для кого-то эта информация окажется новой и поможет избежать ошибок поведения и крэшэй.
Думаю тоже смог бы избежать кучи репортов в Google Play, если бы сразу знал об этой настройке.