Pull to refresh

Comments 51

Пользуюсь дозиметром Atom Fast, подключаемым по BLE к смартфону. Соответственно, его родной софт (Atom Swift) должен всегда работать, потому что он собирает статистику в график мощности дозы, рисует трек на карте показывая где какая была радиация, должен (помимо пищалки в дозиметре) выдать аларм при скачке радиации. Так вот просто заставить это приложение стабильно работать в фоне - большой гемор, надо слазить в несколько закоулков системы, отключая всевозможные энергосберегающие опции. И всё равно примерно раз в 2-3 недели я обнаруживаю, что приложение не запущено и дозиметр "отвалился". Возможно, это происходит потому, что андроид иногда ставит какие-то минорные обновления и без спросу уходит в ребут (я пару раз ловил этот момент ночью - телефон просто лежит и пошёл перезагружаться), а запустить то, что работало, андроид не желает. И при этих перезагрузках слетают некоторые настройки ввода текста, что отдельно бесит.

Вообще эта экономия ресурсов телефона где не надо напрягает. Раньше что на компе, что на телефоне я мог открыть страницу в браузере, уехать на месяц в отпуск, вернуться и продолжить с ней работать. Устарела она, не устарела - это была только моя забота. А теперь и ОС свапит браузер из RAM (даже если её вагон), и браузер считает вправе решать, что сессия и куки устарели и надо всё обнулить, и сайтостроители делают динамические страницы, где всё меняется не по воле пользователя.

Вот полностью согласен.

Раньше на 5-ом AOSP, с 2 гб оперативкой можно было открыть все предустановленные приложения и ещё пару вкладок в браузере и оно всё так могло висеть минимум неделю и никуда не пропадать.

Сейчас на MIUI с андроид 10 и 6гб оперативки, почти всегда приложения открываются с нуля каждый раз! Просто открываешь СМС, чтобы потом воткнуть код в браузер или банковское приложение, так сразу страница в браузере выгружается, а банковское приложение тем более.

А уж пропадает всё почти со 100% вероятностью за ночь, даже из меню запущенных пропадает. Это при том, что везде где только можно разрешено всё что только можно - работа в фоне, автозапуск в двух местах разрешён, в меню запущенных замки поставлены. Если это всё не потыкать, то будет просто система одного приложения.

При этом работа от батареи всё равно никакая! Даже при таких агрессивных закрытиях моих приложений, телефон довольно туго входит в режим сна и часто из него выходит, поэтому за ночь может сожрать до 20% зарядки, тогда как на старечке с 5-ым андроидом таких проблем не было, за ночь больше 1% никогда не разряжал.

Это больше проблема MIUI. Очень агрессивная в своих потугах освободить побольше памяти и ресурсов прошивка в которой куча вещей сделана через задний проход. Разрабы Vanced например на MIUI бугуртели очень знатно... AdGuard тоже. В общем MIUI очень проблемна.

А кто сейчас не агрессивный то?
Хуавей даже уведомления через раз показывал например.
Рилми, 1+, оппо, виво - они лучше?
Смотрю в сторону пикселей, просто надоело это.

Например в приложении aliexpress листаешь себе каталог товаров и тут тебе пришло СМС или сообщение в мессенджере, нужно ответить. Даже когда отвечаешь в шторке, не открывая приложение, всё равно aliexpress закрывается и открывается полностью с нуля, просто минус 2 часа листания товаров. После такого просто удаляешь нахрен приложение и пользуешься только сайтом, полной версией сайта на телефоне или вообще только на ПК, где ничего никуда не девается, даже при том что оперативки меньше чем в телефоне.

Я писал на 4pda скрип для установки Vanced на MIUI. Там суммарно набралось наверное около тысячи скачиваний на 4pda. А я ведь ещё продублировал на github и gdrive

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

Ну, я не программист и не знаю как оно там под капотом, но по опыту использования я это вижу. Открыл в мобильном браузере несколько вкладок (причём как со сложными динамическими сайтами, так и с простыми статическими сайтами-визитками), свернул браузер на часок - открываю - и все они снова по несколько секунд подгружаются. А если просто свернуть-развернуть браузер - они продолжают висеть и реагируют мгновенно. То же самое с приложением ВК, я не могу просто свернуть и через день продолжить просмотр ленты с места где я остановился: оно обнуляется и грузится с нуля.

Приложение ВК могло бы восстанавливать просмотр ленты с того же места. Это выбор компании обнулять и грузить с нуля.

Если бы это был выбор компании, то это было бы одинаково на любом андроиде.

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

И каким образом это тогда работает на старых андроидах, но не работает на новых
И зачем вообще что-то сохранять, если можно просто не закрывать?

Например с aliexpress тоже самое, листаешь себе каталог товаров и тут тебе пришло СМС или сообщение в мессенджере, нужно ответить. Даже когда отвечаешь в шторке, не открывая приложение, всё равно aliexpress закрывается и открывается полностью с нуля, просто минус 2 часа листания товаров.
После такого просто удаляешь нахрен приложение и пользуешься только сайтом, полной версией сайта на телефоне или вообще только на ПК, где ничего никуда не девается, даже при том что оперативки меньше чем в телефоне.

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

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

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

Просто какой-то дешман ZTE с 512мб оперативки и то мог держать открытыми 2 приложения, а иногда и 3. Да он тормозил дико, но он держал открытыми 2-3 приложения с 512мб оперативкой.
А сяоми с 6 гб оперативкой такое не всегда может, но не тормозит.

Полагаю у Вас телефон из антитопа dontkillmyapp.com

4-ое место, не зря собераюсь поменять его на пиксель.
А старый телефон был как раз тоже AOSP.

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

Это не верно. Android поддерживает swap, другое дело, что оф. прошивки его не поддерживают. С рутом можно поставить проги, которые свапят.

Сама система специально строилась без SWAP изначально. Та же Dalvik и JVM от Oracle разные виртуальные машины с учетом особенностей мобильных устройств

Может и строилась без, но андроид поддерживает swap изначально т.к. это все же Linux.

Android изначально имел свой форум Linux, SWAP не подходит из-за особенностей устройств под Android.

Своппинг активно продвигается в последнее время. Он и до этого на кастомах был и с root был. И про zram не стоит забывать. Просто раньше флеш медленный в телефоне был.

А ещё мне кажется я видел swap file на какой-то древней MIUI

Его делают производители как ход, но вот я ни разу не видел его тестов и как проседает работает приложений в SWAP. Мне нравится ход OnePlus где они сделали компрессию приложения неактивных в памяти

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

Другое дело что 1+ имеет проблемы с удержанием неактивных приложений (справедливости ради есть и хуже) и любой кастом с этим справляется лучше.

Полагаю у Вас телефон с китайской оболочкой. Посмотрите dontkillmyapp.com

Вообще у Андроида 2 проблемы - фоновые процессы и ограничения на фоновые процессы у сторонних вендоров

UFO just landed and posted this here

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

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

Не очень про что идет речь и как этой выглядит

Самое интересное: JobScheduler не использовался в Android 5.0, потому
что был жутко забагованный и Google официально рекомендовала его не
использовать

А как сейчас приложения работают с поддержкой Андроид 5?

Там используются старые API. Тот же WorkManager работает на основе AlarmManager + Service

все что ниже 9ки уже коммерчески не интересно поддерживать. 18 процентов уже перешли на 13 андроид. 11 теряет аудиторию - но еще остается топом с 22 % Далее 12 - й пока вровень с 13-м (18 %) . Ну и пошли по убыванию (10,9,8,7) - 16/10/6/4

В общем 96 процентов 7-13 андроид.

А полтора процента 5ки или 6ки суппортить разрабу, если у него аудитория менее 10 млн нет никакого смысла.

Во первых надо полагаться на вашу аудиторию и ее достаток. В разных регионах версии Android меняются.

Судя по публикациям на хабре, ещё 2-й встречается. Книжки Onyx Boox на 4 и 6.

А при небольшой аудитории можно рассуждать и по-другому: у вашего приложения 10 установок. Мимо проходит человек с 5-ым Андроидом и может купить или не купить. Для вас это будет 10% дохода :)

обычная воронка в маркете

поисковые запросы - страница приложения - установка - покупка

не будем затрагивать aso

средние числа по больнице

визит - установка медиана 35 процентов (в категории работа)

конверсия в покупку 1%

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

Ну и такая вишенка на этот тортик. Приложению на 4-й строчке достается не больше 5 процентов трафика

умножаем - офигиваем. 7к тех кто ищет что-то похожее требуется.

Все хотят тонкие устройства

Отучаемся говорить за всю сеть (с) фидо

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

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

Там используются старые API. Тот же WorkManager работает на основе AlarmManager + Service

Спасибо! Как пользователь Андроида, много я не знал, а кое-чего лучше бы и не знал — была бы надежда на собственную криворукость, а оно, оказывается, так и задумано. Печаль.


даже если приложение сейчас убито, но BroadcastReceiver подписан на какой-то бродкаст в AndroidManifest, система запустит процесс приложения, чтобы доставить его в BroadcastReceiver, который подписался на рассылку.

Так вот откуда были приложения, которые, сколько не убивай, всё равно вылезают! В новых версиях я научился загонять всё под Shelter во вторую область, и теперь оно самопроизвольно не стартует. Вот ещё бы разного рода гугло-системные приложения поприбивать, типа того же Play Market самостартующего.


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

А, теперь понятно, почему два навигатора одновременно не получались — скажем, Яндекс и 2ГИС. При езде по трассе часть камер знает Яндекс, част 2ГИС, эти множества не совпадают, и хочется иметь оба набора. Приходится в поездках использовать два смарта.


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


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

Так вот откуда были приложения, которые, сколько не убивай, всё равно вылезают! В новых версиях я научился загонять всё под Shelter во вторую область, и теперь оно самопроизвольно не стартует. Вот ещё бы разного рода гугло-системные приложения поприбивать, типа того же Play Market самостартующего.

В системных настройках приложений есть кнопка "Оставновить" и она не даёт приложению просыпаться самому, пока это не сделает польщзователь. Также можно выбрать жесткий ограничения по батарейки в Android 12+ что тоже не даст этого делать

В Андроид 9, который у меня сейчас основной, вылезают. Тот же плэймаркет, останавливай-не останавливай, всё равно работает. Сервисы гугла, опять же. Ну и некоторые другие. И много любителей проверять обновление.
А в шелтере — никаких поползновений, если сам не запустил — как и нет его.

Это системные приложения с особыми правами

"Это" относится к первым двум, а их больше. Ну и от этого не легче.

А, теперь понятно, почему два навигатора одновременно не получались — скажем, Яндекс и 2ГИС. При езде по трассе часть камер знает Яндекс, част 2ГИС, эти множества не совпадают, и хочется иметь оба набора. Приходится в поездках использовать два смарта.

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

Что-то непонятно, в чём там борьба. Кто инициатор — приложение запрашивает или геолокация оповещает? В любом случае — какие проблемы отдавать двум-турём приложениям? Казалось бы.
Навигатор в фоне начинает тупить и пропускать события. Я пробовал включать подсказки — фоновый пропускает повороты иногда.

Как использовать функцию "Разделение экрана"

  1. Проведите от нижнего до верхнего края экрана.

  2. Откройте приложение.

  3. Проведите вверх от нижнего края экрана, удерживайте палец, затем уберите его.

  4. Нажмите и удерживайте значок приложения.

  5. Выберите Разделить экран.

  6. Экран будет разделен на две части.

Удивитесь, но не на все смартфонах поддерживается разделение экрана

Главное помнить, что Exact Alarm не обязательно вызовется в нужное нам
время. Это может случиться позже на несколько минут или больше. А то и
вовсе не произойти, если система так решит.

А мне вот интересно, что на это думают разработчики приложений-будильников? Ведь будильник, сработавший на несколько минут позже (или не сработавший вовсе) может очень много дел натворить - от испорченного на весь день настроения, до существенных финансовых потерь. И еще более интересно, как они все-таки умудряются заставлять свои приложения работать более-менее точно? Я изучал разработку под андроид и параллельно пытался запилить свой будильник. Тестовая версия работала, а потом телефон поймал обновление, кажется с 9 до 10 и все... Как я ни бился, сколько бы ни изучал документацию гугла и другие мануалы, так и не смог заставить его снова работать.

Для будильников есть специальное API с отдельным разрещением. Google Play будет проверять действительно ли оно нужно вашему приложению чтобы с ним опубликоваться. Также разработчик может запросить специальный доступ у пользователя чтобы могло работать это API

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

Sign up to leave a comment.