- Context.getSystemService(Context.XXXX),在/android/frameworks/base/core/java/android/app/SystemServiceRegistry.java类里面,直接搜索Context.XXXX,如果这里也搜不到,就全局搜索一下Context.XXXX,在注册的地方会有创建的入口,以Context.WINDOW_SERVICE为例
registerService(Context.WINDOW_SERVICE, WindowManager.class,new CachedServiceFetcher<WindowManager>() {@Overridepublic WindowManager createService(ContextImpl ctx) {return new WindowManagerImpl(ctx);}});
- /android/frameworks/base/core/java/com/android/internal/os/BinderInternal.java下的native方法,对应实现路径在android/frameworks/base/core/jni/android_util_Binder.cpp
public static final native IBinder getContextObject();static jobject android_os_BinderInternal_getContextObject(JNIEnv* env, jobject clazz)
{sp<IBinder> b = ProcessState::self()->getContextObject(NULL);return javaObjectForIBinder(env, b);
}