için yapılandırılmalı mı? Proguard, enumları otomatik olarak bellek optimizasyonu için tamsayıya dönüştürüyor mu yoksa bunu yapmak için yapılandırmalı mıyım? Yapılandırmanın ne olduğunu yapılandırmam gerekiyorsa?Proguard, tüm enumları int için dönüştürür veya bu
8
A
cevap
15
Optimizasyon, ProGuard'ın optimizations page adresinde listelenmiştir. Varsayılan optimizasyonlardan biri gibi görünmektedir, ancak daha fazla kontrole ihtiyacınız olduğunda (diğer optimizasyonlar gibi) açıkça belirtilebilir (ör., Enum kutusundan çıkar çıkmaz tüm class/*
optimizasyonlarının devre dışı bırakılması).
sınıfı/kutudan çıkarma/enum
kolaylaştırır enum türleri mümkün sabitleri, tamsayı.
İlgili konular
- 1. 2d string dizilimi 1D'ye dönüştürür, int diziler
- 2. H2OFrame, dict'i tüm sıfırlara dönüştürür
- 3. Proguard, tüm başvurulan sınıflar
- 4. Proguard
- 5. ProGuard
- 6. Chrome DevTools, tüm HEX Renklerini RGB'ye dönüştürür
- 7. ProGuard
- 8. Android Proguard tüm günlük mesajları kaldırmıyor
- 9. PROGUARD
- 10. ProGuard
- 11. Proguard
- 12. H2 "runscript" komutu tüm tablo adlarını büyük harfe dönüştürür
- 13. Android Proguard
- 14. ClassLookupException: proguard
- 15. Sadece proguard
- 16. Tüm Android ProGuard özelliklerini gizleme dışında nasıl kapatırsınız?
- 17. Dizeyi hedefe dönüştürür c
- 18. Bahar Verileri MongoDB enumları destekliyor mu?
- 19. Ambalaj enumları için bir java sözleşmesi var mı?
- 20. Anlamı *; } ProGuard içinde
- 21. Python'daki unicode dizgiyi dönüştürür
- 22. Niçin bu kısa zamanda int başarısız olur?
- 23. Tüm lat değerlerini bu
- 24. Spring Security @PreAuthorization pass enumları doğrudan
- 25. AS3: int, uint veya Number için "undefined" parametresi bildirme
- 26. Android Desteği için Proguard yapılandırması v4 22.2.0
- 27. Java: Neden TimeUnit'in eksik enumları var?
- 28. Resmi gri tonlamaya dönüştürür alfa
- 29. Double int için dönüştürülüyor
- 30. Android ProGuard
Ben sadece bu denenmiş ve kod dönüştürülemez, ancak basit bir numaralandırma sınıfı (sadece çeteleler, hiçbir alanlar) hala bir enum yerine int olarak görünür. Yanlış yaptığım bir şey var mı? 'Proguard-android-optimize.txt' dosyasını kullanıyorum. –
@ThomasVos Bu dosyanın [statik sınıf üyelerini enums'de tutmak için] varsayılan belirtimine sahip olduğunu unutmayın (https://android.googlesource.com/platform/sdk/+/master/files/proguard-android-optimize.txt#48), kutudan çıkarmayı engelleyebilir. İlk olarak, 'values ()' yöntemini veya 'String' dönüşümünü kullanmadığınız sürece (eşitlik denetimlerinde sizi sınırlandırır) kullanmayı deneyebilirim. –
Cevabınız için teşekkür ederiz. Dosyayı kaynak koduma kopyalayarak bu satırları zaten kaldırdım ve android proguard kuralları dosyasını kaldırdım. Bununla birlikte, enumlar hala decompiled kodunda görünür. –