DEX kodu optimizasyonu, uygulamanızın derleme kalitesini, boyutunu ve performansını izlemenize ve iyileştirmenize yardımcı olan bir Android vitals bulgusudur. Kodunuzu R8 veya alternatif araçlar (ör. ProGuard ile uyumlu optimize ediciler ya da ikincil DEX işlem sonrası araçları) kullanarak optimize edip karartmak, uygulamanızın DEX boyutunu küçültür, çalışma zamanı performansını artırır ve bellek ayak izini en aza indirir.
DEX veya Dalvik Executable dosyaları, uygulamanızı çalıştırmak için kullanılan derlenmiş kodu içerir. Bu genellikle derlenmiş C++ kodu veya .so dosyalarının aksine Java ve Kotlin kodunu içerir.
Android vitals, tüm uygulama ve oyunlar için DEX kodu optimizasyonu metriklerini raporlar ancak yalnızca belirli boyut şartlarını karşılayan uygulama ve oyunlar için eşikleri zorunlu kılar.
Sorunu tespit etme
Android vitals, uygulamanızın DEX kodu optimizasyon seviyeleri düşük olduğunda sizi uyarabilir. Buna, R8 kullanan uygulamalar ve oyunlar için kod karartma, küçültme ve optimizasyon dahildir. R8'i kullanmayan uygulamalar için Android vitals, optimizasyon, küçültme ve karartma oranlarını kontrol etmeye çalışır ancak gerektiğinde karartma sezgisel yöntemlerine geri döner.
Optimizasyon durumunu izleme
Android vitals, uygulamanızın kod optimizasyonu için tanımlanan minimum yüzdeliklere uymadığında Play Console üzerinden sizi uyararak uygulamanızın performansını artırmanıza yardımcı olabilir. Küçültme, optimizasyon ve karartma ile ilgili ayrıntılı tanımlar için R8 Yapılandırma Analiz Aracı'nı kullanma başlıklı makaleyi inceleyin.
AGP 8.10 veya sonraki sürümlerin en son yamasıyla oluşturulan uygulamalarda bu yüzdeler, dahil edilen r8.json dosyasından alınır.
AGP'nin daha eski sürümlerinde veya r8.json dosyası dahil edilmediğinde, yüzdeler dahil edilmişse mapping.txt dosyasından, eşleme dosyası mevcut değilse DEX sezgisel yöntemleri kullanılarak hesaplanır.
Alternatif bir kod optimize ediciyle optimize edilmiş uygulamalar için Android vitals, uygulama paketinde karartılmış olan sınıfların, yöntemlerin ve alanların yüzdesini tahmin etmek üzere bir analiz gerçekleştirir.
Toplam DEX boyutu minimumları
Android vitals, tüm uygulamalar için kod optimizasyonu metriklerini hesaplarken yalnızca uygulama paketiniz aşağıdaki toplam DEX boyutu şartlarını karşılıyorsa uyarı alırsınız:
- Uygulamalar: Pakette, sıkıştırılmamış boyut olarak ölçülen en az 10 MB DEX kodu bulunuyor.
- Oyunlar: Paket, sıkıştırılmamış boyut olarak ölçülen en az 50 MB DEX kodu içeriyor
Android vitals, uygulamanızın DEX boyutunu gösterir ancak bu boyutu komut satırını kullanarak yerel olarak da ölçebilirsiniz:
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
Android vitals'ın puanlarınızı hesaplamak için kullandığı meta verileri incelemek üzere uygulama paketinizden r8.json dosyasını çıkarın:
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json