Uygulama optimizasyonunu etkinleştirdikten sonra uygulamanızın istenen şekilde çalıştığını ve R8 yapılandırmasının beklediğiniz şekilde çalıştığını kontrol edin. Genel adımlar aşağıdaki gibidir:
- Uygulamanızın kritik kullanıcı yolculuklarını (CUJ'ler) test edin: Örneğin, kullanıcıların oturum açabildiklerinden ve diğer önemli görevleri yapabildiklerinden emin olun.
- Karşılaştırmaları kullanarak performans kazançlarını ölçün: Uygulama optimizasyonunu etkinleştirmeden önce ve sonra uygulamanızı karşılaştırın.
Sorun bulursanız R8, sorun gidermenize yardımcı olacak araçlar sağlar. R8 ile ilgili bir sorunu çözemiyorsanız hata bildirin.
Genel ipuçları
R8 ile ilgili sorunlar genellikle uygulamanıza özgüdür ancak hata ayıklamayı kolaylaştıracak bazı genel ipuçları aşağıda verilmiştir:
- Karartmayı geçici olarak devre dışı bırakma: R8, optimizasyon sürecinin bir parçası olarak kodu karartır. Kod karartma genellikle hataların nedeni değildir ancak hata ayıklama işlemini zorlaştırır. Sorunlu kodu tespit etmenize yardımcı olması için
‑dontobfuscate
ve‑dontoptimize
işaretlerini keep rules dosyasına ekleyin. Yansımayı kontrol edin: Aşağıdaki gibi bir böyle bir öğe yok istisnasıyla karşılaşırsanız
Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate in the stack trace
,İstisna genellikle söz konusu alanın yansıma yoluyla kullanıldığı anlamına gelir ve bir saklama kuralı eklemeniz gerekir.
Betik kodunu inceleyin: R8 sorunlarının çoğu, APK Analiz Aracı gibi araçlarla yapabileceğiniz betik kodu incelemesini gerektirir.
Hangi kuralların uygulandığını kontrol etme
Projenizi oluştururken R8'in uyguladığı tüm kuralların tam raporunu almak için uygulamanızın modül proguard‑rules.pro
dosyasına aşağıdakileri ekleyin:
-printconfiguration <output-dir>/<report-name>.txt
İstediğiniz yolu ve dosya adını belirtebilirsiniz. Yol veya dosya adı belirtmezseniz R8, kurallar raporunu <module-name>/build/outputs/mapping/<build-type>/configuration.txt
adresinde oluşturur.
Kodun neden saklandığını anlama
Kaldırılması beklenen bir kodun korunduğunu görürseniz kodun neden korunduğunu anlamak için ‑whyareyoukeeping
yapılandırma seçeneğini kullanın. R8, tutulan koddan uygulamanızın giriş noktalarından birine giden bir yol oluşturur. Daha fazla bilgi için Proguard kılavuzundaki ‑whyareyoukeeping
belgelerine bakın.
Orijinal yığın izlemeyi kurtarma
R8 tarafından işlenen kod, yığın izlemenin artık orijinal koda atıfta bulunmaması için çeşitli şekillerde değiştirilir. Örneğin, satır numaraları ve sınıfların ve yöntemlerin adları değişebilir. R8, orijinal yığın izlemeyi kurtarmak için komut satırı araçları paketiyle birlikte sunulan retrace komut satırı aracını sağlar.
ReTrace'i kullanmak için bir eşleme dosyası ve yığın izleme dosyası ekleyin. mapping.txt
adlı eşleme dosyası, Android App Bundle'ınızla (AAB) otomatik olarak birlikte paketlenir. Daha fazla bilgi için yeniden izleme dokümanlarına ve kilitlenme yığın izlemelerinin kodunu kaldırma hakkındaki Play Console Yardım Merkezi makalesine göz atın.