Что такое не хранить activities Xiaomi

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

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

Что такое «Не сохранять активности»?

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

Из документа Титаниум:

Don’t keep activities under the Developer Options menu. When this option is enabled, the Android OS will destroy an activity as soon as it is stopped. It is intended to help developers debug their apps. For example, it can simulate the case that Android will kill an activity in the background due to memory pressure. In normal use, it is not recommended to turn this option on because this may lead to unexpected issues on the apps, such as freezes, force closes, and reboots.

Так почему же он стоит на первом месте и в чем его преимущества?

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

MIUI HELP! Секреты MIUI, Activity Launcher! Разбираемся что по чем!))

Недостатки

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

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

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

Можно ли ускорить Android телефон с помощью меню «Для разработчиков»?

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

Бездумно настраиваешь MIUI на XIAOMI ? НЕ УДИВЛЯЙСЯ что смартфон работает плохо

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

Как повысить яркость на Xiaomi

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

Не хранить Activities

Активировав этот пункт вы действительно запретите приложениям занимать место в оперативной памяти, таким образом освободите её.

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

Кстати, настройка «Лимит фоновых процессов», работает по схожему сценарию и используется в при создании системы, чтобы выполнить правильную настройку планировщика (отвечает за распределение ресурсов под каждую конкретную задачу).

Показывать все ANR

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

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

Показывать предупреждения канала

Эта настройка Android будет полезна тем у кого возникают трудности с получением уведомлений от приложений.

В момент когда система не сможет вывести на экран смартфона уведомление допустим от «Viber», на дисплее появится код ошибки и если нужно будет, вы сможете найти в интернете решение, воспользовавшись поиском.

Трассировка системы (Размер буфера для каждого процессора)

Для того чтобы понять, действительно ли изменение параметров этой настройки может ускорить смартфон, я устанавливаю «Antutu» и зайдя по пути: Меню «Для разработчиков» —> Трассировка системы —> Размер буфера для каждого процессора, убеждаюсь, что установлены стандартные (для моего смартфона Redmi Note 10 Pro) значения в16 384 КБ.

Затем запускаю тест и получаю следующие результаты:

После этого возвращаюсь в меню и изменяю размер буфера на самые максимальные значения — 65 536 КБ, далее перезагружаю смартфон и снова провожу тестирование.

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

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

Надеюсь статья заслуживает вашего лайка и комментария

Чтобы вы могли протестировать свой смартфон я загружу «Antutu Benchmark» в телеграм канал.

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

Do not keep activities

«Не сохранять операции» — именно таким странным образом переведена фраза «Do not keep activities» в настройках Android. А описание «Удалять все операции сразу после их завершения пользователем» не добавляет ясности. Включается она в меню «Параметры разработчика» (Developer Options), находится в самом низу.

Работает эта настройка очень просто, когда она включена, все неактивные активити умирают. Т.е. после перехода из активити A в активити B, активити A уничтожается. Таким образом можно проверить насколько вписывается ваше приложение в activity lifecycle.

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

Почему не всегда включается быстрая зарядка Xiaomi

Или, самый простой способ убить активити — повернуть экран (если не android_configChanges=«keyboardHidden|orientation|screenSize»). Но не все приложения поддерживают поворот экрана. Да и те, которые поддерживают, встречаются с ошибками lifecycle на этапе разбработки, так что у них как раз проблем и не должно быть. Второй простой способ — сменить язык устройства.
Ну и разумеется можно просто включить «Do not keep activities».

Я потратил несколько дней на исправление ошибок, после того как прошелся по своему приложению с «Do not keep activities». Теперь, думаю, стоит всегда включать эту настройку на время разработки. Главной моей проблемой было корректное подключение социальных сетей в приложении.

Почти не возникло проблем с Вконтакте, с их SDK можно написать все правильно, но все таки есть у них небольшая проблема. А именно, после авторизации через приложение, результат возвращается в onActivityResult. По документации, нужно вызвать

VKUIHelper.onActivityResult(requestCode, resultCode, data);

однако, в случае уничтожения активити нашего приложение, вылетит NPE, поэтому сначала нужно вызвать
VKUIHelper.onResume(this);

Не совсем очевидно, да и незадокументировано. Завел issue, на всякий.

Были проблемы с Facebook, потому как, по глупости своей, я решил использовать android-simple-facebook, а ее автор, как я понял, не особо парился по поводу android lifecycle. Пришлось полностью от него отказаться и переделывать все на официальный SDK Facebook и все проблемы ушли. Хотя, наверное, можно было и так все поправить одной строчкой, но пути назад уже не было.

И совсем не было проблем с Twitter, потому что все работает просто, как топор. У них просто нет своего SDK и авторизации через приложение. Приходится делать все по старинке, через WebView. Вообще у них самая ужасная авторизация из всех.
Ну да это так, лирическое отступление.

Есть проблемы с PayPal SDK, оно просто валится везде где только можно. Благо кто-то уже завел issue до меня и наверняка они в скором будущем это поправят.

Другие примеры

У меня не много приложений на телефоне, да и смотреть их все мне, если честно, лень, но я не мог пройти мимо недавно вышедшего приложения хабра. Начнем, конечно же, с него. Ну и добавлю ошибку Payoneer, которую нашел случайно:)

Хабрахабр

Я потыкался по разным экранам и уже было расстроился, неужели все написано правильно и один лишь я делаю столько ошибок. Но нет, я таки добрался до страницы About:

Caused by: java.lang.NullPointerException at ru.habrahabr.activity.about.AboutFragment.onAttach(AboutFragment.java:44)

Payoneer

Много времени не понадобилось. Экран логина, ушел в keepass за паролем, вернулся — гипс крэш:

Caused by: java.lang.NullPointerException at com.payoneer.android.ui.fragment.LoginFragment.initializeOnCreateData(LoginFragment.java:379) at com.payoneer.android.ui.fragment.LoginFragment.onCreate(LoginFragment.java:152)

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

P.S.

Используйте настройку «Do not keep activities», надеюсь для кого-то эта информация окажется новой и поможет избежать ошибок поведения и крэшэй.
Думаю тоже смог бы избежать кучи репортов в Google Play, если бы сразу знал об этой настройке.

Ах да, репорты отправил.

  • android development
  • android
  • appgranula

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

Рейтинг
( Пока оценок нет )
Загрузка ...
Китай Покупай