Байт-код для системных классов, таких как android.os.Looper, представляет собой просто заглушку. Например, android.os.Looper.loop() из android.jar содержит следующий байт-код:
public static final void loop();
Code:
0: new #2; //class java/lang/RuntimeException
3: dup
4: ldc #3; //String Stub!
6: invokespecial #4; //Method java/lang/RuntimeException."":(Ljava/lang/String;)V
9: athrow
Но в AOSP я вижу настоящий исходный код, который выполняет отправку сообщений (см. AOSP_ROOT/frameworks/base/core/java/android/os/Looper.java< /код>). Так как же именно этот класс обрабатывается системой Android? Исправляется ли настоящий код при компиляции системы android.jar в файл dex или это происходит во время выполнения внутри виртуальной машины Dalvik?
Байт-код для системных классов, таких как android.os.Looper, представляет собой просто заглушку. Например, android.os.Looper.loop() из android.jar содержит следующий байт-код:
Но в AOSP я вижу настоящий исходный код, который выполняет отправку сообщений (см. AOSP_ROOT/frameworks/base/core/java/android/os/Looper.java< /код>). Так как же именно этот класс обрабатывается системой Android? Исправляется ли настоящий код при компиляции системы android.jar в файл dex или это происходит во время выполнения внутри виртуальной машины Dalvik?