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çim | Her 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ümler | Depolama 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
| Alan | Ne anlatır |
|---|---|
| event type | Sayı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 / class | Olayla ilişkili paket ve etkinlik sınıfı. |
| packages aggregates | last_time_active_ms, total_time_visible_ms ve uygulama başlatma sayısı gibi aralık başına toplamlar. |
| standbyBucket | Uygulama bekleme grubu; ALEAPP saklanan değeri kendi yorumuyla grup ve neden (üst/alt 16 bit) olarak ayırır. |
| version file | Yükseltmeler sırasında yazılan veri tabanı sürümü ve derleme parmak izi. |
05Zaman damgaları
| Alan | Kodlama | Not |
|---|---|---|
| File name | Unix epoch, milliseconds | Dosyanın kapsadığı aralığın başlangıç zamanı. |
| Event / package times | Milliseconds, offset from file begin time | ALEAPP mutlak UTC zamanını elde etmek için saklanan her zamanı dosyanın sayısal adına ekler. |
| DEVICE_SHUTDOWN | Event timestamp | Kapanma 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ışı
- version ve mappings dahil tüm usagestats ağacını toplayın.
- Her dosyanın biçimini (XML veya protobuf) belirleyin ve gerektiğinde paket belirteçlerini mappings üzerinden çözün.
- Mutlak zamanları dosya adı tabanı ile saklanan sapmaların toplamından yeniden oluşturun.
- Birden fazla aralık klasöründe görünen olayları tekilleştirin.
- Ö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
- AOSP — UsageStatsDatabase.java Android Open Source Project (GitHub mirror) · erişim 2026-10-14
- UsageEvents.Event — API reference Android Developers · erişim 2026-10-14
- ALEAPP — scripts/artifacts/usagestats.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14
- ALEAPP — scripts/artifacts/usagestatsVersion.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14