Ölü Kod Eleme

Giriş

Java uygulamanızın kaynak jar dosyası, muhtemelen veya yalnızca birkaç yöntemle kullanıma sunulmuştu. Bu ölü kodu Objective-C'ye çevirme iOS uygulamanızı gereksiz şekilde şişirir ve özellikle de Java kitaplıklarınızdan birinde J2ObjC çevirmeni.

ProGuard, küçük resimlerinizi daraltmanıza yardımcı olan açık kod karartma ve diğer Java bayt kodunu karıştırma. İsteğe bağlı olarak, bir bayt kodu kavanozu verilirken, "kullanım" uygulamanızda kullanılmayan tüm sınıfları ve yöntemleri listeleyen bir rapor görürsünüz. J2ObjC, bu tür bir raporu kullanarak çeviri sırasında bu sınıfların ve yöntemlerin atlanmasını sağlayabilirsiniz.

ProGuard'ı buradan indirebilirsiniz.

ProGuard'ı yapılandırma

ProGuard bir yapılandırma dosyasını, optimizasyonları belirten bir komut satırı bağımsız değişkeni olarak kabul eder ve oluşturması gereken raporları gösterir. J2ObjC'nin yalnızca ölü kodu bilmesi gerektiğinden, tüm optimizasyonları ve gereksiz günlük kaydını devre dışı bırakmalısınız; J2ObjC'ye iletilen dosya Yalnızca ProGuard başlık metni ve kullanım raporundan oluşmalıdır.

Öncelikle, uygulamanız için kaynak jar'a karşılık gelen bir bayt kodu jar'ınızın olduğundan emin olun. ProGuard kılavuzundan kopyalanan aşağıdaki yapılandırma dosyasını, aşağıdaki gibi şablon olarak kullanabilirsiniz: şu sonuçları elde eder:

-injars app-bin.jar
-libraryjars /lib/rt.jar

-dontoptimize
-dontobfuscate
-dontpreverify
-printusage
-dontnote

-keep public class com.foo.app.Main {
    public static void main(java.lang.String[]);
}

-keepclassmembers class * {
    static final % *;
    static final java.lang.String *;
}

ProGuard'ın kaldırmaması gereken öğeleri ortadan kaldırmadığından emin olmak için bu yapılandırma dosyasını değiştirin. Japonuz yalnızca bir kitaplık değil de bir uygulamaysa, main() yöntemini gerekli her şeyi saklamalısınız. projenizin sonunda ortaya çıkan çıktıyı Sağlık kontrolü olarak ProGuard'dır.

ProGuard'ı çalıştırma

Uygulamanızın bayt kodu jar'ını ve özelleştirilmiş bir ProGuard yapılandırma dosyanızı ( usage.pg), aşağıdaki komutla bir kullanım raporu dosyası oluşturabilirsiniz:

java -jar proguard.jar @usage.pg > usage.log

Bu işlemle, uygulamanızda kullanılmayan sınıfların ve yöntemlerin listelendiği usage.log adlı bir dosya oluşturulur.

J2ObjC'yi ölü kod yok ederek çalıştırma

Artık ProGuard kullanım raporunuza sahip olduğunuza göre, J2ObjC için --dead-code-report <file> komut satırı işaretini kullanın. The DeadCodeEliminator çevirisi aşamada her kaynak dosyadaki ölü kodu kaldırmak için kullanım raporunu kullanır. Hedef-C.