basit bir sınıfı ile test (bütün bu yöntemler başvurulmayan bağlıdır): APK derlenmiş
public class Test
{
private void privateMethod()
{
System.out.println("private");
}
protected void protectedMethod()
{
System.out.println("protected");
}
public void publicMethod()
{
System.out.println("public");
}
void method()
{
System.out.println("method");
}
}
I Test.class
ekstre edilmiş ve (javap -c
ile) bozulamaz. Aşağıdaki sonuçları aldım. Ayrıca bir APK yerine bir kavanozla test ettim ve sonuç tam olarak aynı. Java 1.6.0_29 kullandım. sadece özel fonksiyonlar demektir
protected void protectedMethod();
Code:
0: getstatic #44 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #47 // String protected
5: invokevirtual #46 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
public void publicMethod();
Code:
0: getstatic #44 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #48 // String public
5: invokevirtual #46 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
void method();
Code:
0: getstatic #44 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #49 // String method
5: invokevirtual #46 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
derleme sırasında dışındadır.
Ayrıca, final
sınıfını bildirmeyi denedim, ancak sonuç aynıydı.
Tam olarak değil, ama çok yararlı bilgiler için bkz: http://stackoverflow.com/questions/4912695/what-optimizations-can-i-expect-from-dalvik-and-the-android- toolchain –
@GrahamBorland Teşekkür ederim, bir baktım ve soruda herhangi bir bilgi bulamadım veya cevapsız kod içerip içermediğine dair cevap bulamadı. –