2

リモートサービスを実装せずに AIDL を実装することは可能ですか? Google Play サービスを調査した結果、いくつかの AIDL 呼び出しが次の方法で実行されていることに気付きました

  1. 次の方法でリモート コンテキストを取得します。

    Context c = context.createPackageContext("com.google.android.gms", 3)    
    
  2. クラスローダーを取得し、IBinder を実装するクラスをロードする

     ClassLoader localClassLoader = c.getClassLoader();
     IBinder localIBinder = (IBinder)localClass.newInstance();
     IInterface localIInterface = paramIBinder.queryLocalInterface("com.google.android.gms.plus.internal.IPlusOneButtonCreator");
    

そして、私たちはそれと通信することができます!

なぜこれが許可され、なぜ反対側にサービスがないのだろうか? データ全体はどこに保存されますか? この呼び出しは新しいプロセスを開始しますか?

4

0 に答える 0