Застрял частичные пробуждения замки - AudioMix - PullRequest
2 голосов
/ 27 января 2020

Прежде всего, я не совсем уверен, что это именно то место, где можно сообщить об этой проблеме, но я не могу нигде найти информацию или какую-либо документацию.

Пару дней (может быть, недель) a go Android Виталис начал предупреждать нас о "плохом поведении" в панели управления Google Play. В предупреждении написано «Заклинило частичную блокировку после пробуждения», и мы получили его во всех наших приложениях, но с очень низким процентом. В настоящее время самый высокий коэффициент составляет 0,93%. Я не уверен, что это было, так как в наших приложениях нет блокировок следа, поэтому я начал копать.

Пока нашел пару интересных вещей:

  1. Каждый бодрствующий замок имеет TAG и выглядит так: Android Виталы отслеживают их по этой TAG. TAG, появившийся чаще всего, это AudioMix ;

  2. Большинство устройств, испытывающих застрявшую блокировку, являются Huawei : Android Vitals

  3. Вероятно, важная деталь - все приложения основаны на WebView . У нас есть некоторые встроенные функции (IAP, AdMob, Firebase), но, скажем, 90% приложения составляют веб-контент.

  4. Я использовал инструмент adb , чтобы проверить, что бегут взгляды и как долго они бегут. Итак, я выполнил пару сценариев:

    • Использование моего приложения: после запуска приложения запускается пробуждение AudioMix. Если я убью приложение, AudioMix Wake Lock немедленно прекратит работу, что является правильным поведением. Но когда я ставлю приложение на фоновый режим AudioMix, будильник блокируется на 1-2 минуты. Я предполагаю, что это проблема;
    • Случайная нативная игра из Play Store: те же самые шаги, что и выше, но AudioMix немедленно останавливается на фоне.
    • Случайный веб-сайт на мобильном телефоне Chrome: Теперь это очень интересно. На фоне AudioMix снова зависает примерно через 1-2 минуты.

Какая-то потеряна здесь, но, похоже, это проблема с Chromium. Есть ли что-то, что я могу «волшебным» хардкором. Я прочитал пост на этом сайте , но похоже, что это не тот случай. Есть предложения?

1 Ответ

0 голосов
/ 27 января 2020

KungFuFlames приветствует сообщество SO.

В последнее время я также застрял на подобном типе проблемы, связанной с китайской ОС, особенно самой популярной Huawei, так как мое приложение не работает должным образом на устройствах Huawei. , Чтобы найти решение, я долго исследую его и обнаружил множество новых вещей, таких как Doze-Mode , Stand-by-Mode, WakeLocks , а также правильный способ фонового выполнения и их пределы. Хотя я еще не нашел решения.

Чтобы узнать, что такое Wake Lock , вы должны знать Android Режим дозирования

Итак Что такое Режим ожидания?

Начиная с Android 6.0 (уровень API 23), Android представляет две функции энергосбережения, которые увеличивают срок службы батареи для пользователей, управляя тем, как приложения ведут себя, когда устройство не подключено к источнику питания. Doze снижает потребление заряда батареи, откладывая фоновую загрузку ЦП и сети для приложений, когда устройство не используется в течение длительных периодов времени. App Standby откладывает фоновую сетевую активность для приложений, с которыми пользователь недавно не взаимодействовал.

Подробнее о режиме ожидания можно узнать

Теперь мы можем легко понять, что такое Wack Locks и почему мы их используем. Просто для переопределяет Doze Mode и Поддерживает процессор на . Эти ссылки также могут вам очень помочь Поддерживайте процессор на и , это

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

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

То, что вы получаете без игровой приставки, это Android Vitals

...