2012-01-26 12 views
17

Potrzebuję śledzić użycie aplikacji w Androidzie, np. W jaki sposób działa aplikacja AppUsage (np. Śledzić liczbę uruchomień aplikacji i czas spędzony na ich użyciu). Planuję zrobić to nagrać czas rozpoczęcia uruchamiania aplikacji, a następnie uzyskać czas zakończenia, gdy aplikacja jest zatrzymana lub zatrzymana. W LogCat mogę zobaczyć logi rozpoczęcia aktywności. Przyjrzałem się dostępnym transmisjom systemowym, nie jestem pewien, czy jest coś, co nadaje się, gdy zaczyna się aktywność. . Zasadniczo, w jaki sposób mogę wykryć, kiedy uruchamiane jest działanie?Jak śledzić użycie aplikacji w systemie Android? Jak wykryć, kiedy uruchamiane jest działanie?

Edit: Ponadto Android posiada również system statystyk wykorzystania dostępnej wewnętrznie, który można znaleźć w wolnym aplikacji części lub gdy *#*#4636#*#* jest wybierany (Testing -> Statystyki serwera)

+0

wybierania '# * # 4636 # * #' nie działa dla mnie: ' Problem z połączeniem lub nieprawidłowy kod MMI " –

Odpowiedz

12

Możemy teraz uzyskać dostęp do historii użycia aplikacji na urządzeniu z Androidem za pomocą nowego interfejsu API android.app.usage wydanego w ramach Android 5.0 API. System zbiera dane o użyciu na podstawie poszczególnych aplikacji, agregując dane codziennie , tygodniowe, miesięczne i roczne odstępy

Dla każdej aplikacji, system rejestruje się następujące dane:

ostatnim razem, gdy aplikacja została wykorzystana całkowita długość czasu aplikacja była na pierwszym planie dla tego przedziału czasowego (według dnia, tygodnia, miesiąca lub roku) Datownik przechwytywany, gdy składnik (identyfikowany przez pakiet i nazwę działania) przeniesiony na pierwszy plan lub tło ring dni znacznika czasu przechwytywanie gdy konfiguracja urządzenia zmieniła (na przykład, gdy orientacja urządzenia zmieniony z powodu rotacji)

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

+0

Czy mogę sprawdzić, ile razy aplikacja była używana przy użyciu UsageStats? –

+0

ale pole "Kontekst.USAGE_STATS_SERVICE" zostało dodane z API 22 (Android 5.1), więc jak uzyskać te statystyki przed API 22? –

4

Zasadniczo, jak mogę wykrywać, kiedy uruchamiane jest działanie?

Nie. W zestawie SDK systemu Android nie ma informacji "czas rozpoczęcia uruchamiania aplikacji" ani "czas zakończenia, kiedy aplikacja jest zatrzymana lub zatrzymana".

To, co najprawdopodobniej oznacza aplikacja, to marnowanie czasu procesora, pamięci RAM i żywotności baterii, ciągłego odpytywania ActivityManager.

Pamiętaj, że to, co proponujesz śledzić, jeśli planujesz mieć dostęp do danych innych niż użytkownik, narusza zasady prywatności, które spowodowały, że CarrierIQ narobił kłopotów.

+1

Według [opisu AppUsage z rynku Android] (https://market.android.com/details?id=com.smartappers.appusage&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5zbWFydGFwcGVycy5hcHB1c2FnZSJd): AppUsage _ praktycznie nie ma baterii - rejestruje się tylko wtedy, gdy zmieniasz aplikacje, w przeciwieństwie do innych, które sprawdzają co x sekund! _ - Nie jestem pewien jak to robi AppUsage. Jest to projekt, który rekomenduje aplikacje użytkownikom. Jednym z wymagań jest śledzenie użycia aplikacji. – sofiaguyang

+2

@Sofia: Sprawdzę ich aplikacje i zgłoś do Google, jeśli wykorzystują lukę bezpieczeństwa. Dziękuję za zwrócenie na to uwagi! – CommonsWare

+2

Wewnętrznie system Android ma również dostępny system statystyk użytkowania, który można znaleźć w aplikacji Części zamienne lub gdy zostanie wybrany numer "* # * # 4636 # * # *". Testowanie -> Statystyki użytkowania – sofiaguyang

Powiązane problemy