是否可以在不实现远程服务的情况下实现 AIDL?在对谷歌播放服务进行一些调查后,我注意到一些 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");
我们可以和它交流!
我想知道为什么这是允许的,为什么另一边没有服务?整个数据在哪里?这个调用是否启动了一个新进程?