ContentMainDelegate是客户端程序注册给content_main_runner.cc的回调接口,
content_main_runner.cc通过调用ContentMainDelegate的接口来通知客户端
当前Content框架的状态。
客户端程序通过ContentMainDelegate::RegisterApplicationNativeMethods接口
注册自己的本地方法。
ContentMainDelegate中的有四个函数:
CreateContentBrowserClient();
CreateContentPluginClient();
CreateContentRendererClient();
CreateContentUtilityClient();
用来分别创建ContentBrowserClient,ContentPlunginClient,ContentRendererClient,
ContentUtilityClient的实例。
content_main_runner.cc通过调用ContentMainDelegate的接口来通知客户端
当前Content框架的状态。
客户端程序通过ContentMainDelegate::RegisterApplicationNativeMethods接口
注册自己的本地方法。
ContentMainDelegate中的有四个函数:
CreateContentBrowserClient();
CreateContentPluginClient();
CreateContentRendererClient();
CreateContentUtilityClient();
用来分别创建ContentBrowserClient,ContentPlunginClient,ContentRendererClient,
ContentUtilityClient的实例。
ContentMainDelegate的注册过程如下:
虚拟机在动态库加载完成后调用全局函数JNI_OnLoad,定义在chrome_jni_onload.cc中。
JNI_OnLoad调用全局函数RunChrome,定义在chrome_android_initializer.cc中。
RunChrome调用content命名空间的全局函数SetContentMainDelegate()定义在content_main.cc中。
SetContentMainDelegate()将指向ChromeMainDele

本文详细分析了Chromium在Android平台上Browser进程的创建过程,从ContentMainDelegate的注册开始,通过JNI调用,内容包括ContentMainRunner和BrowserMainRunner的使用,以及如何通过ContentMainDelegate初始化不同类型的进程,最终达到Browser进程核心类BrowserMainLoop的建立。
最低0.47元/天 解锁文章
3262

被折叠的 条评论
为什么被折叠?



