AndroidOrtaUygulama kullanımı

Kullanım istatistikleri (usagestats)

UsageStatsService dosyaları: aralık başına uygulama özetleri ve ACTIVITY_RESUMED, ekran ve kilit ekranı geçişleri gibi olay günlükleri.

01Konum

  • /data/system/usagestats/<userId>/{daily,weekly,monthly,yearly}/<begin-time-ms>
  • /data/system_ce/<userId>/usagestats/{daily,weekly,monthly,yearly}/<begin-time-ms>
  • …/usagestats/version and …/usagestats/mappings

02Yanıtladığı sorular

  • Hangi uygulama etkinlikleri ne zaman ön plana veya arka plana geçti?
  • Ekran ne zaman etkileşimli hâle geldi ve kilit ekranı ne zaman kalktı?
  • Cihaz ne zaman kapandı ve açıldı?
  • Bir uygulama her aralıkta ne kadar ön plan veya görünür süre biriktirdi?

03Biçim ve sürümler

BiçimHer aralık için başlangıç zamanıyla adlandırılmış bir dosya. UsageStatsDatabase, veri tabanı sürümü 4'ten önce XML, sonrasında Protocol Buffers yazar; güncel varsayılan sürüm 5'tir ve paket adları mappings dosyasıyla çözülen gizlenmiş belirteçlerle tutulur. version dosyası veri tabanı sürümünü ve bir derleme parmak izini (release;codename;incremental) içerir.
Geçerli olduğu sürümlerDepolama klasörü, işletim sistemi sürümüne bağlı olarak /data/system/usagestats yerine /data/system_ce/<userId>/usagestats oldu. ACTIVITY_RESUMED ve DEVICE_SHUTDOWN gibi olay türleri API 29'dan, KEYGUARD_SHOWN/HIDDEN ise API 28'den itibaren geneldir.

04Temel alanlar

AlanNe anlatır
event typeSayısal UsageEvents.Event sabiti; ör. 1 ACTIVITY_RESUMED, 2 ACTIVITY_PAUSED, 23 ACTIVITY_STOPPED, 15/16 SCREEN_(NON_)INTERACTIVE, 17/18 KEYGUARD_SHOWN/HIDDEN, 26 DEVICE_SHUTDOWN, 27 DEVICE_STARTUP.
package / classOlayla ilişkili paket ve etkinlik sınıfı.
packages aggregateslast_time_active_ms, total_time_visible_ms ve uygulama başlatma sayısı gibi aralık başına toplamlar.
standbyBucketUygulama bekleme grubu; ALEAPP saklanan değeri kendi yorumuyla grup ve neden (üst/alt 16 bit) olarak ayırır.
version fileYükseltmeler sırasında yazılan veri tabanı sürümü ve derleme parmak izi.

05Zaman damgaları

AlanKodlamaNot
File nameUnix epoch, millisecondsDosyanın kapsadığı aralığın başlangıç zamanı.
Event / package timesMilliseconds, offset from file begin timeALEAPP mutlak UTC zamanını elde etmek için saklanan her zamanı dosyanın sayısal adına ekler.
DEVICE_SHUTDOWNEvent timestampKapanma anının kendisi değil, kapanmadan önce veri tabanının son kaydedildiği zaman olarak belgelenmiştir.

Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.

06İnceleme akışı

  1. version ve mappings dahil tüm usagestats ağacını toplayın.
  2. Her dosyanın biçimini (XML veya protobuf) belirleyin ve gerektiğinde paket belirteçlerini mappings üzerinden çözün.
  3. Mutlak zamanları dosya adı tabanı ile saklanan sapmaların toplamından yeniden oluşturun.
  4. Birden fazla aralık klasöründe görünen olayları tekilleştirin.
  5. Ön plan olaylarını uygulama veri tabanları ve cihazın diğer günlükleriyle doğrulayın.

07Yorum tuzakları

  • AOSP eski dosyaları budar: günlükler 10 gün, haftalıklar 4 hafta, aylıklar 6 ay, yıllıklar 2 yıl sonra silinir.
  • Olay adları platform geçişlerini etiketler; SCREEN_INTERACTIVE kilit durumu olayı değildir ve ACTIVITY_RESUMED tek başına bir kişinin uygulamayı kullandığını kanıtlamaz.
  • DEVICE_SHUTDOWN ile DEVICE_STARTUP arasındaki açık olayların kapanış zamanı bilinmez ve uzatılmamalıdır.

09Kaynaklar

  1. AOSP — UsageStatsDatabase.java Android Open Source Project (GitHub mirror) · erişim 2026-10-14
  2. UsageEvents.Event — API reference Android Developers · erişim 2026-10-14
  3. ALEAPP — scripts/artifacts/usagestats.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14
  4. ALEAPP — scripts/artifacts/usagestatsVersion.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14