Как сделать чтобы приложение не выгружалось из памяти андроид
Смартфоны становятся все более мощными, но емкость аккумулятора не растет такими же темпами. Поэтому производители, с каждым новым выпуском Android, стараются установить больше функций экономии батареи.
Но некоторые заходят слишком далеко. Чтобы получить немного больше времени работы вашего устройства, они убивают полезные приложения в фоне. Это настолько абсурдно, что с некоторыми производителями (например, Nokia, Xiaomi, OnePlus или Huawei) наши смартфоны снова превращаются в тупые телефоны.
Тупые телефоны не могут выполнять какие-либо полезные задачи для нас в фоновом режиме, если в это время устройство не используется. И это влияет на большинство приложений.
Больше всего пострадали будильники, устройства слежения за состоянием здоровья, приложения для автоматизации или просто что-то, что должно выполнять какую-то работу в определенный момент, когда вы не используете свой телефон.
С Android 6 (Marshmallow) Google ввел режим Doze в базовую версию Android, пытаясь объединить экономию батареи для различных телефонов Android.
К сожалению, производители (например, Xiaomi, Huawei, OnePlus или даже Samsung …), похоже, не приняли это, и у них у всех есть свои собственные средства экономии батареи. Они, как правило, очень плохо написаны, экономя батарею поверхностно и с побочными эффектами.
Естественно, пользователи обвиняют разработчиков в том, что их приложения не работают. Но правда в том, что разработчики делают максимум возможного. Узнавайте новые настройки для конкретных устройств, чтобы их (ваши!) приложения работали правильно. Но во многих случаях это просто не возможно, поскольку поставщики имеют полный контроль над всеми процессами в смартфоне.
Чтобы проверить, на сколько агрессивно смартфон работает с приложениями в фоне: Как проверить работу приложений в фоновом режиме
Способы решения проблемы
Xiaomi
Традиционно Xiaomi и его Android-надстройка, под названием MIUI, относятся к наиболее проблемным на рынке в отношении нестандартных ограничений фонового процесса и нестандартных разрешений. Для этих расширений нет API и документации. В настройках по умолчанию фоновая обработка просто не работает должным образом. И приложения, использующие их, прерываются. Для решения проблемы читайте материал: Как запретить Xiaomi завершать программы в фоновом режиме.
Huawei
У Huawei все то же самое, что и в Xiaomi. Своя оболочка EMUI, которая накладывает серьезные ограничения на фоновые процессы. Для решения проблемы читайте материал: Как запретить Huawei убивать приложения в фоновом режиме.
Samsung
И даже Samsung – доминирующий поставщик на рынке Android смартфонов, со своей One UI, использует грязную технику экономии заряда батареи, которая может убить фоновые процессы и сделать будильник бесполезным. Для решения проблемы читайте материал: Как запретить Samsung убивать приложения в фоновом режиме.
OnePlus
Выпуская свои телефоны, OnePlus ввел одно из самых серьезных предельных фоновых ограничений на рынке на сегодняшний день. Превзойдя в этом даже те, которые используются в Xiaomi или Huawei. Пользователям Oxygen OS нужно не только включить дополнительные настройки, чтобы их приложения работали должным образом, но повторять это каждый раз после обновления прошивки. Как бороться с этим безобразием рассказал в материале: Как запретить OnePlus убивать приложения в фоновом режиме.
Meizu
Meizu Flyme OS, наравне с Huawei и Xiaomi в своем подходе к ограничениям фоновых процессов. Но они не так распространены на рынке и, таким образом, не причиняют такой боли разработчикам, как вышеупомянутые. Однако, вот материал про Meizu: Как ограничить Meizu в завершении приложений в фоне.
Google Pixel
Чистый Android лучшее что можно представить, но и у него есть. Для решения которых читайте материал: Как запретить Pixel завершать работу приложений в фоне.
NOKIA
Nokia на Android P убивает любой фоновый процесс, включая отслеживание сна (или любое другое отслеживание спорта) через 20 минут, если экран выключен. Кроме того, когда приложение убито, все уведомления прекращаются, что делает, например, любые приложения будильников бесполезными. Как избавиться от этих проблем читайте в материале: Как запретить Nokia вмешиваться в работу приложений в фоновом режиме.
Sony использует очень эффективную и нестандартную оптимизацию фонового процесса. Режим Stamina мгновенно прерывает все фоновые процессы и все уведомления, если он включен. Читайте материал: Как бороться с режимом Stamina в смартфонах Sony.
На устройствах Asus предустановлено приложение оптимизации под названием Power Master. Оно не дает запускаться приложениям и уничтожает фоновые задачи при выключении экрана. Полезный материал: Как отключить Power Master в смартфонах Asus.
Устройства Wiko определенно проблематичны с точки зрения нестандартной оптимизации фоновых процессов и корректировки настроек, которые необходимо выполнить, чтобы приложения работали должным образом. Решаем проблемы Wiko смартфонов.
Lenovo
Не обошло проблема стороной и производителя смартфонов Lenovo. Решаем проблемы Lenovo смартфонов.
Программа находится в режиме тестирования и доработки способа удержания апп в памяти.
Отсюда и возникла эта тема. Хотим сделать программу, которая все таки будет работать.
Вроде получилось ;)
Смысл данной программы выполнить 4 команды
pidof - чтобы узнать в какой папочке искать файлик с приоритетом
cat - прочитать, чего в нем сейчас
и если в этом файлике НЕ -17, то
echo - записать -17
Ну и подсказали все это закрепить командой chmod и значениями 444
Цель
Нужные приложения всегда в памяти, мгновенно открываются, мгновенный переход между приложениями ну и экономия батареи (тк не нужно подгружать данные и загружать проц/поднимать частоту)
Black_BG, я выяснил, что если свернуть-развернуть приложение, то эта настройка сбивается, т.е. AutoKiller просто меняет oom_adj процесса (в теме про твики я чуть подробнее это описал). Наверное, адекватного решения задачи (кроме как ежеминутно или даже чаще выполнять эти команды) нету, потому что Android меняет эти значения при изменении состояния приложения (свёрнуто, передний план, задний план, . ). Как отловить эти события "снаружи" интересующего приложения я не знаю.
Ищу программиста, который сможет написать простую программу
подробности в шапке темы.
Кажется, на xda есть похожее приложение. Оно находится в стадии разработки. Читать, начиная отсюда.Там на 6-й странице есть ссылка на форму регистрации для тестирования.
Мне файл так и не пришёл. Может, тебе повезёт?
Добавлено 23.10.2012, 08:07:
можно пимп май цпу переделать. она же аналогична, только пишет по другому адресу.
можно) все тесты на мне если нужно.
Добавлено 23.10.2012, 08:34:
если поможет, то можно эту прожку разобрать. как мне кажется, что смысл похож, но пишет просто в другой файл. хотя могу ошибаться.
® Pimp My CPU
Сыровато и много чего из интерфейса не доделано.
При запуске показывает список приложений, всех установленных в системе.
У запущенных приложений OOM Value будет отличным от "--".
Долгий тап на нужном элементе меняет устанавливаемое OOM (в проге так и написано "OOM Set to") между -17 и то что система поставит (в программе "--")
При выходе запускается сервис, который раз в 5 секунд(можно чаще-будет жрать сильнее батарею) проверяет что запущено на экране.
При изменении запущенного приложения он обновляет всем заданным ООМ в -17.
Слушаю критику
AutoOOMmanager.apk ( 30.42 КБ )
UPD
У меня при запуске появляется "Reading apps" на 1 секунду, исчезает - и всё. Чёрный экран с названием программы.
В логе никаких ошибок нету.
В логе никаких ошибок нету. Проверил на SGS3, Sensation XE, Desire S - на всех нормально запускается и показывает список приложений. У меня все запускает на сенсации на СМ9 с андроидом 4.0
нормальный интерфейс - ничего лишнего)
Есть фигня, что не подхватывает приложение и не делает -17, хотя оно болтается с приоритетом 10-12. возможно из-за быстрых переходов.
не критика. просто о логике приложения хотел поговорить.
Сейчас, как я понимаю, каждые 5 сек сервис проверяет, что за окно открыто. если окно иное чем 5 сек назад, заново переприсваивает -17 нужным приложениям. так?
Рассмотрю 2 ситуации, на обе уже наткнулся.
1) я сижу и читаю книгу 2 часа. ничего не происходит. зачем здесь каждые 5 сек проверять есть ли новое окно?
2) я зашел в приложение и в туже секунду вышел из него. получается сервис проморгал этот момент.
Я предлагаю следующую логику. Раз сервис все равно делает проверку каждые 5 сек на новое окно, то давайте лучше он каждые n секунд/минут будет тупо сувать -17 во все нужне места.
В идеале, я представляю следующую логику программы
- Сделали нужные приложения в проге неубиваемыми.
- вышли из проги и запустился сервис
- сервис НЕ мониторит каждые n секунд, а ждет события "запуск приложения"/"смена приложения"/"поменялось окно"
- Как только событие произошло, он меняет на -17 в нужных местах и ждет след. события.
- Также работает таймер который раз в n минут (именно минут, это для ситуации с чтением книги) принудительно запихивает -17 в нужные места, не глядя что там уже есть.
Посмотрите пожалуйста как реализовано ожидание события в ® Pimp My CPU и ® SetCPU
если удастся реализовать именно также, было бы замечательно, тк мне представляется, что это лучшая реализация, тк сбоев ни пимп ни сетцпу не дают даже при быстром переходе по домику (долгое нажатие)
Версия 0,1 бэта добавлена в шапку
Сейчас, как я понимаю, каждые 5 сек сервис проверяет, что за окно открыто. если окно иное чем 5 сек назад, заново переприсваивает -17 нужным приложениям. так? 1) я сижу и читаю книгу 2 часа. ничего не происходит. зачем здесь каждые 5 сек проверять есть ли новое окно?2) я зашел в приложение и в туже секунду вышел из него. получается сервис проморгал этот момент.
вроде как нет способа отследить запуск приложения, вернее мне он не известен.
Посмотрите пожалуйста как реализовано ожидание события в ® Pimp My CPU и ® SetCPU
предполагаю, что за счёт внедрения дополнительных активити в программу, на какое нибудь часто происходящее событие.
Или всё таки использовать возможности утилиты nohup.
Хотя, как я вижу проблема уже почти решена.
RubberBigPepper,
ваше детище работает и на 4 и на 2.3
Просто тот же таскер например, конечно работает со скриптами криво, но он как то отслеживает события запуска приложения и меняет мне например яркость мгновенно.
у меня сделано как в нем? чтоб при запуске нард автояркость отключалась и включалась яркость 40% (начальная задача) и как только я выхожу из нард (без разницы как, кнопка выход или домик) автояркость опять включается (конечная задача) и все это присходит прям мгновенно как и в пимпе и сетцпу.
Аналогично у меня сделано и на контакты, только яркость 100%
На оперу у меня сделано, чтоб включался автоповорот, а при выходе выключался.
про профиля на звонок и там на подключение зарядника я не говорю, эти события наверное легко отследить, да и не нужны они нам.
Код из pimpа, хорошо сделана программа, но вылетает на моих телефонах сразу.
Обфускатором прошлись-гут.
То есть сделано как и у меня, только раз в секунду проверка запущенного приложения
У большинства современных смартфонов проблемы с работой приложений
Почему Android выгружает приложения
В большинстве современных прошивок на базе Android, помимо Doze, используются собственные механизмы оптимизации энергопотребления, справляющиеся с работающими в фоне приложениями. Некоторые действительно мягко заставляют их засыпать, а другие – просто выгружают из памяти. Жёстче всех, кажется, действует именно OnePlus, но и другие тоже не отстают. Это хорошо видно в бенчмарке DontKillMyApps, который показывает, сколько приложений продолжают работать в фоновом режиме. Так вот прошивка OxygenOS от OnePlus убивает больше половины всех программ.
Как установить Android 11 уже сейчас. Подробная инструкция
Очевидно, что перед OnePlus никогда не стояло цели навредить пользователям или добиться повышения автономности ценой удобства использования. Просто дело в том, что собственные механизмы смартфонов китайского бренда могут вступать в конфликт с Doze, да и разработчики просто-напросто не адаптируют свои приложения для OxygenOS. В результате получается то, что получается: приложения выгружаются из памяти, теряют способность присылать уведомления, пользователи пропускают важные события, злятся и сходят с ума в поисках решения для устранения проблемы, которого просто не существует.
Не приходят уведомления на Android
Не приходят уведомления? Так ваш смартфон бережёт энергию
Как сделать, чтобы на Android приходили уведомления
У этой проблемы существует решение, хоть и довольно компромиссное:
- Перейдите в «Настройки» и откройте вкладку «Приложения»;
- Найдите приложение, которое всегда выгружается из фона, откройте его и перейдите в «Сведения энергосбережения»;
Запретите автоматическое управление энергосбережением
- Отключите автоматическое управление;
- Откройте многозадачность и свайпните по окну приложения вниз, чтобы над ним появился значок замка, который не позволит ему выгружаться из фона.
Почему это решение временное? Да потому что некоторые прошивки могут самостоятельно менять заданные вами настройки и возобновлять выгрузку приложений из памяти. Поэтому этим вопросом нужно заняться Google, сделав использование Doze обязательным для всех производителей. Возможно, это немного попахивает автократией, но только таким образом поисковый гигант сможет добиться одинаково верного функционирования операционной системы на всех устройствах независимо от прошивки.
И вам надоело, что телефон, сам решает, что выгружать из памяти, то это приложение для вас.
Раньше, я включал музыку в вк, потом заходил в браузер, на сайт пикабу, и через некоторое время, вк тупо выключался.
Сейчас все висит в памяти и работает.
Программа называется AutoOOMmanager
"всего лишь" 2 гига оперативы.
купи бюджетник с 512 Мб, посмотри как оно там
У меня эта прога не подействовала :(
вроде в меню разработчика есть нужные настройки.
Стандартные настройки в андроиде
Стационарный смартфон
Первый пост и сразу в лигу
Стою на остановке, решил переключить трек и тут вижу, что телефон не откликается, экран черный, музыка играет в наушнике. Первая мысль заглючил! Делаю перезапуск, как то перезапутил, вижу экран загрузки андроида и после, снова экран черный.
Короче, дрочился минут 10, ничего не выходит. Приехала маршрутка, сел и решил ещё раз попробовать. Что я увидел? Просто яркость была 0 и на солнце для меня это был черный экран.
Как отключить рекламу в Яндекс.Погоде
Случайно нашёл, как просто и бесплатно отключить рекламу в Яндекс.Погоде. Может быть все и так знают, но за всё время на Пикабу я этого не видел.
Так приложение выглядело до:
Заходим в настройки в правом верхнем углу, листаем вниз и ждём на кнопку "О приложении".
Включаем ползунок "не показывать рекламу".
И всё готово! Больше нет рекламы!
Так светлая или тёмная?
Не нужные приложения
Удаление Android-вируса
Наблюдал сегодня интересную картинку на одном Android-телефоне. Видимые симптомы были такие:
Во-первых, по рассказам владелицы, несколько раз всплывало окно с негром требованием выкупа текстом
"нам надо сделать некоторе обслуживание чтобы сделать твои ощущения от времяпровождения здесь превосходными"
Уже подозрительно, да. По ближайшему просмотру на телефоне обнаружилось некое неудаляемое приложение. С названием Babe и во-о-от с такой иконкой:
Через ADB нашел идентификатор этой дряни - id.co.babe.
Отзывы примерно в таком ключе: "Что это? Откуда это у меня? Почему я не могу это удалить?" и всё в таком духе
Удаление через ADB:
adb shell am force-stop id.co.babe
adb shell pm uninstall -k --user 0 id.co.babe
Ну и само собой, удаление SIM-меню, чисто для информационной гигиены - оно там не было удалено. В статьях выше этот момент, разумеется, есть (хотя здесь полнее).
Заметили, что на вашем смартфоне почти не осталось памяти? Возможно, вы не отключили несколько опций, а возможно, это необратимый процесс. Лайф разобрался, как очистить память в смартфоне.
Мессенджеры и приложения сохраняют файлы сами по себе
В ряде приложений, которыми мы часто пользуемся, включена автоматическая загрузка файлов. WhatsApp сохраняет все фото и видео, которые вам присылают собеседники, Instagram — снимки с фирменными фильтрами. Через год одна из таких "папочек" вполне может заполнить 10–15 гигабайт.
В каждом приложении сохранение файлов можно отключить. Наиболее гибкие настройки сохранения кэша — в WhatsApp. Зайдите в "Настройки" —> "Данные и хранилище". Вы увидите раздел "Автозагрузка медиа" и сможете управлять сохранением файлов — они могут вообще не перемещаться в память телефона или сохраняться, но только при подключённом Wi-Fi.
Как определить, что мобильное приложение шпионит за вами. Оно совершает эти 6 действий
Чтобы удалить загруженные данные, зайдите в диспетчер файлов или просто приложение "Файлы" (название зависит от прошивки смартфона). Как правило, в нём есть отдельная папка конкретного приложения. И удалите все ненужные данные.
Слишком много кеша
Приложения собирают мелкие данные, чтобы работать быстрее, не тратить лишний трафик и не скачивать их из Интернета каждый раз. Фотографии пользователей в соцсетях, их аватары, записи и даже рекламные баннеры. Много места они не "съедят", но вполне могут занять несколько сотен мегабайт.
Почти каждое приложение браузера, соцсети или мобильной игры позволяет контролировать сохранение кеша. Сбросить его можно в настройках программы, как правило, в разделе памяти и сохранённых файлов.
Фото и видео сильнее других данных заполняют память смартфона. Более того, часть фотографий — это рандомные скриншоты. В смартфонах последних двух лет снимок экрана делается при одновременном нажатии на качельку регулировки громкости и кнопки питания.
К сожалению, решение проблеме ещё не нашли — на iPhone без рамок это единственный способ сделать скриншот, производители Android-смартфонов предлагают альтернативную команду — свайп тремя пальцами вниз, но отключить снимок экрана по одновременному нажатию качельки и кнопки питания нельзя.
Поэтому единственный способ не забивать память — стабильно чистить галерею. Кроме того, фотографии можно хранить в "Google фото" — снимки сохранятся, окажутся доступны с разных устройств и не будут занимать пространство на накопителе.
Настройки -> Основные -> Хранилище iPhone. Вы увидите раздел "Другое", и файлы, хранящиеся в нём, также забивают память. Они могут занимать до 80% памяти вашего смартфона в зависимости от продолжительности пользования.
Проблема в том, что файлы из этой папки бесполезные, а удалить их невозможно. Грубо говоря, это хлам, который iOS накапливает во время работы.
Удалить его можно только одним способом — полностью обновив прошивку на iPhone. Беда в том, что после этой операции восстановить резервную копию невозможно. Стоит ли жертвовать всеми данными ради свободного места на накопителе? Подумайте, прежде чем решиться на эту процедуру.
Telegram хотят разблокировать, но смысл? Одна функция "Яндекс.Мессенджера" убивает его и WhatsApp
Более безопасное решение — выгрузить все необходимые данные в облако и загрузить обратно вручную. Это займёт больше времени, но вы освободите заветные гигабайты.
Эта опция есть не во всех смартфонах, зависит от прошивки. Когда вы удаляете файлы, они не стираются безвозвратно, а попадают в корзину и удаляются только спустя определённое время — в iOS через 30 дней, в Samsung One UI — спустя 15 дней.
Плюс этой опции — надёжность системы. Если вы случайно удалили файл, останется время, чтобы его восстановить. Минус — когда надо срочно освободить память, придётся удалить файлов и приложений больше, чем если бы функция "Корзина" была отключена.
Читайте также: