tôi thử nghiệm với một lớp đơn giản (tất cả những phương pháp này unreferenced):
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");
}
}
tôi biên soạn apk, chiết xuất Test.class
và dịch ngược nó (với javap -c
). Tôi nhận được kết quả sau. Tôi cũng thử nghiệm với một cái bình thay vì một APK, và kết quả là chính xác như nhau. Tôi đã sử dụng Java 1.6.0_29.
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
Có nghĩa chức năng chỉ tin được loại trừ tại thời gian biên dịch.
Tôi cũng đã cố gắng khai báo lớp học final
, nhưng kết quả là như nhau.
Không phải là bản dupe chính xác, nhưng hãy xem điều này cho rất nhiều thông tin rất hữu ích: http://stackoverflow.com/questions/4912695/what-optimizations-can-i-expect-from-dalvik-and-the-android- toolchain –
@GrahamBorland Cảm ơn, tôi đã xem xét và không thể tìm thấy bất kỳ thông tin nào trong câu hỏi hoặc câu trả lời về việc liệu mã không được tham chiếu có được bao gồm hay không. –