Pil Geçmişi aracı, bir cihazın zaman içindeki pil tüketimi hakkında bilgi sağlar. Bu araç, sistem genelinde düzeyde sistem günlüklerinden güçle ilgili etkinlikleri HTML temsilinde görselleştirir. Araç, uygulamaya özel düzeyde pil tüketen uygulamaların çalışma biçimini tanımlamanıza yardımcı olabilecek çeşitli veriler sağlar.
Bu belgede, pil tüketim kalıpları hakkında bilgi edinmek için Pil Geçmişi Aracı'nı kullanabileceğiniz bazı yollar açıklanmaktadır. Belgenin başında, Pil Geçmişi'nin raporladığı sistem genelindeki verilerin nasıl okunacağı açıklanır. Ardından, kendi uygulamanızın pil tüketimiyle ilgili davranışını teşhis etmek ve gidermek için Pil Geçmişi'ni kullanabileceğiniz yöntemleri sunar. Son olarak, Pil Geçmişi'nin özellikle faydalı olabileceği senaryolar hakkında çeşitli ipuçları sunar.
Sistem genel görünümünü kullanın
Pil Geçmişi aracı, çeşitli uygulama ve sistem davranışlarının sistem genelinde bir görselleştirmesini, ayrıca bunların zaman içindeki pil tüketimiyle ilişkisini sağlar. Şekil 1'de gösterilen bu görünüm, uygulamanızdaki güç kullanımı sorunlarını teşhis etmenize ve tanımlamanıza yardımcı olabilir.
Bu şekilde özellikle, Pil Seviyesini temsil eden ve y ekseninde ölçülen siyah, yatay ve aşağı doğru eğilim çizgisi dikkat çeker. Örneğin, Pil Seviyesi çizgisinin en başında, yaklaşık 06:50'de görselleştirmede pil seviyesinde nispeten keskin bir düşüş görülüyor.
Şekil 2'de ekranın söz konusu kısmının yakından görünümü sağlanmaktadır.
Pil Seviyesi çizgisinin en başında, pil dik bir şekilde azaldıkça ekranda üç şey gösteriliyor: CPU çalışıyor, bir uygulama uyanık kalma kilidi edinmiştir ve ekran açıktır. Bu şekilde Pil Geçmişi, pil tüketimi yüksek olduğunda ne tür olayların olduğunu anlamanıza yardımcı olur. Ardından bu davranışları uygulamanızda hedefleyebilir ve yapabileceğiniz ilgili optimizasyonlar olup olmadığını araştırabilirsiniz.
Sistem genelinde görselleştirme, başka ipuçları da sağlayabilir. Örneğin, mobil radyonun sık sık kapatılıp açıldığını gösteriyorsa JobScheduler veya Firebase Job Dispatcher gibi akıllı planlama API'leri aracılığıyla bu davranışı optimize etme fırsatı olabilir.
Bir sonraki bölümde, kendi uygulamanıza özgü davranışları ve etkinlikleri nasıl araştıracağınız açıklanmaktadır.
Uygulamaya özel verileri görüntüleme
Pil Geçmişi, sistem geneli görünümünde sağlanan makro düzeyindeki verilere ek olarak, cihazınızda çalışan her uygulamaya özel tablolar ve bazı veriler görselleştirmesi sunar. Tablo biçimindeki veriler şunları içerir:
- Uygulamanın cihazdaki tahmini güç kullanımı.
- Ağ bilgileri.
- Uyandırma kilitleri.
- Hizmetler'e dokunun.
- Bilgileri işleme.
Tablolar, uygulamanızla ilgili iki boyut verisi sunar. Öncelikle, uygulamanızın güç kullanımının diğer uygulamalara kıyasla nerede olduğuna bakabilirsiniz. Bunun için Tablolar altındaki Cihaz Gücü Tahminleri tablosunu tıklayın. Bu örnekte Pug Power adlı hayali bir uygulama incelenir.
Şekil 3'teki tablo, Pug Power'ın bu cihazda dokuzuncu en büyük pil gücü tüketicisi olduğunu ve işletim sisteminin bir parçası olmayan en büyük üçüncü uygulama olduğunu göstermektedir. Bu veriler, uygulamanın daha ayrıntılı bir şekilde incelenmesi gerektiğini gösteriyor.
Belirli bir uygulamanın verilerini aramak için Uygulama Seçimi'nin altındaki iki açılır menünün alt kısmına, görselleştirmenin sol tarafında uygulamanın paket adını girin.
Belirli bir uygulamayı seçtiğinizde aşağıdaki veri görselleştirme kategorileri, sistem genelindeki veriler yerine uygulamaya özel verileri gösterecek şekilde değişir:
- SyncManager.
- Ön plan işlemi.
- Kullanıcı Alanı Uyandırma Kilidi.
- En popüler uygulama.
- JobScheduler.
- Etkinlik Yöneticisi Proc.
SyncManager ve JobScheduler görselleştirmeleri, uygulamanızın gerekenden daha sık senkronizasyon yapıp yapmadığını ve işleri yürütüp yürütmediğini hemen açıkça gösterir. Böylece, daha iyi pil performansı için uygulamanızın davranışını optimize etme fırsatını hızla ortaya çıkarabilirler.
Ayrıca, uygulamaya özel bir tane daha görselleştirme verisi daha elde edebilirsiniz: Userspace Wakelock. Bu bilgileri hata raporuna eklemek için terminal pencerenize aşağıdaki komutu girin:
$ adb shell dumpsys batterystats --enable full-wake-history
Şekil 5 ve 6'da Pug Power'a ait veriler gösterilmektedir: Şekil 5'te uygulamaya özel verilerin görselleştirmesi, Şekil 6'da ise karşılık gelen tablo verileri gösterilmiştir.
Görselleştirmeye bakmak hemen bariz bir şey göstermez. JobScheduler satırı uygulamada planlanmış iş olmadığını gösterir. SyncManager satırı, uygulamanın herhangi bir senkronizasyon gerçekleştirmediğini gösterir.
Bununla birlikte, tablo verilerinin Uyandırma Kilitleri segmenti incelendiğinde, Pug Power'ın toplam bir saatten uzun uyanık kalma kilitleri edindiği ortaya çıkar. Bu olağan dışı ve maliyetli davranış, uygulamanın güç tüketiminin yüksek olmasına yol açabilir. Bu bilgi, geliştiricinin optimizasyonun çok yararlı olabileceği bir alanı hedeflemesine yardımcı olur. Bu durumda, uygulama neden bu kadar fazla uyanık kalma süresi kazanıyor ve geliştirici bu davranışı nasıl iyileştirebilir?
Pil Geçmişi'nin yardımcı olabileceği diğer durumlar
Pil Geçmişi'nin pil davranışını iyileştirme fırsatlarını teşhis etmenize yardımcı olabileceği başka birçok durum da vardır. Örneğin, Pil Geçmişçisi, uygulamanızın aşağıdaki özelliklere sahip olup olmadığını söyleyebilir:
- Uyandırma alarmlarının aşırı sık çalması (10 saniyede veya daha az).
- GPS kilidini sürekli olarak tutmak.
- İşleri 30 saniyede veya daha kısa aralıklarla planlama.
- Planlama, her 30 saniyede veya daha kısa aralıklarla senkronize edilir.
- Hücresel radyoyu beklediğinizden daha sık kullanıyorsunuz.