リモートサービスを実装せずに AIDL を実装することは可能ですか? Google Play サービスを調査した結果、いくつかの AIDL 呼び出しが次の方法で実行されていることに気付きました
次の方法でリモート コンテキストを取得します。
Context c = context.createPackageContext("com.google.android.gms", 3)
クラスローダーを取得し、IBinder を実装するクラスをロードする
ClassLoader localClassLoader = c.getClassLoader(); IBinder localIBinder = (IBinder)localClass.newInstance(); IInterface localIInterface = paramIBinder.queryLocalInterface("com.google.android.gms.plus.internal.IPlusOneButtonCreator");
そして、私たちはそれと通信することができます!
なぜこれが許可され、なぜ反対側にサービスがないのだろうか? データ全体はどこに保存されますか? この呼び出しは新しいプロセスを開始しますか?