Программное обнаружение Wake Locks

Мы разрабатываем SDK, который сильно зависит от location APIs ОС Android и сервисов Google Play.

Мы обнаружили слишком много пробуждений, из-за которых Android Vitals запускает оповещения в консоли разработчика наших клиентов. Чтобы решить или смягчить проблему, я хотел бы измерить количество wake locks, которое приложение удерживает с течением времени, чтобы я мог видеть, эффективны ли мои изменения кода или нет.

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

Однако мне не удалось найти документацию о том, как читать эту информацию с Java (только команды adb). Можно ли так? Как работает приложение "Wakelock detector"?

В целях тестирования вы можете загрузить декомпилятор apk и проверить само приложение Wakelock Detector. Вы не должны продавать программное обеспечение, основанное на этом коде, без проверки лицензий Wakelock Detector.

JensV 06.02.2019 13:40

Спасибо @JensV. Он использует отражение для чтения значений из следующего внутреннего класса: android.googlesource.com/platform/frameworks/base.git/+/mast‌​er/… , поэтому никаких общедоступных API. Мои выводы на данный момент: используйте отражение или попробуйте запустить и проанализировать команды adb из кода Java.

tomacco 06.02.2019 16:03
0
2
336
0

Другие вопросы по теме