Как отслеживать использование приложений в Android?Как определить, когда активность запущена? - PullRequest
22 голосов
/ 26 января 2012

Мне нужно отслеживать использование приложений в Android, например, как это делает AppUsage (то есть отслеживать количество запусков приложений и время, потраченное на их использование). Я планирую записать время начала, когда приложение запускается, а затем получить время окончания, когда приложение приостановлено или остановлено. В LogCat я могу видеть логи активности. Я посмотрел на доступные системные трансляции, я не уверен, есть ли что-нибудь, что транслирует при запуске деятельности. , В основном, как я могу определить, когда запускается действие?

Edit: Кроме того, в Android также имеется внутренняя система статистики использования, которую можно найти в приложении «Запасные части» или при наборе *#*#4636#*#* (Тестирование -> Статистика использования)

Ответы [ 2 ]

13 голосов
/ 15 января 2015

Теперь мы можем получить доступ к истории использования приложений на устройстве Android с помощью нового API android.app.usage, выпущенного как часть Android 5.0 API. Система собирает данные об использовании для каждого приложения, агрегируя данные за день,недельные, месячные и годовые интервалы

Для каждого приложения система записывает следующие данные:

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

Refr: http://developer.android.com/reference/android/app/usage/package-summary.html

6 голосов
/ 26 января 2012

Как определить, когда запускается действие?

Вы не делаете. В Android SDK нет ничего для «времени начала, когда приложение запускается», ни «времени окончания, когда приложение приостановлено или остановлено».

Вероятно, приложение, которое вы цитируете, тратит много времени ЦП, ОЗУ и время автономной работы, непрерывно опрашивая ActivityManager.

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

...