3

のようなシステム クラスのバイトコードandroid.os.Looperは単なるスタブです。たとえば、android.os.Looper.loop()fromandroid.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."<init>":(Ljava/lang/String;)V
   9:   athrow

しかし、AOSP では、メッセージ ディスパッチを実行する実際のソース コードを確認できます (「参考文献」を参照AOSP_ROOT/frameworks/base/core/java/android/os/Looper.java)。では、このクラスは Android システムによって正確にどのように処理されるのでしょうか? システムを dex ファイルにコンパイルするときに実際のコードにパッチが適用されandroid.jarますか?それとも Dalvik VM 内で実行時に行われますか?

4

1 に答える 1