Ben projelerle Geçenlerde oluşturduk fark ettik sağlayan güvenlidirNe optimizasyon önceden oluşturulmuş bir komut dosyası kullanmaktır ProGuard için yeni bir yaklaşım gelir ki, hala -assumenosideeffects kaldırma
Optimizasyon varsayılan olarak kapalıdır: sdk.dir} Bu optimizasyon olmadan, ve bir açıklama ile birlikte geliyor
/tools/proguard/proguard-android.txt. Dex, ProGuard optimizasyonu ve ön adımlarını kullanarak kod çalıştırmayı sevmez (ve bu optimizasyonların bazılarını kendi başına gerçekleştirir). Bu tavsiyenin ardından assumenosideeffects
'un hiçbir etkisi olmadığı anlaşılmaktadır. Örneğin, bu ortak görevleri:
#Remove logging
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
#Remove asserts
-assumenosideeffects class junit.framework.Assert {
public static *** assert*(...);
}
Kanıtı işe yaramıyor:
if (release)
{
Assert.assertTrue("Proguard config error, Asserts have been left in", false);
}
mi var
assumenosideeffects
ile tanımlanan ben hata ayıklama dışarı kesmek için optimizasyon uygulayabilirsiniz güvenli bir orta yol, ancak riske atmadan Dex ve proguard optimizasyonu ile ilişkili sorunlar?