Android webview如何使用webkit?

onm*_*133 2 javascript multithreading android webkit webview

我知道webkit是一个用于在Web浏览器中显示HTML内容的布局引擎.我查看了Webkit端口,发现没有与Android相关的东西.我还查看了WebView类的Android源文件夹,但我看不出Webview是如何与Webkit相关的.

我想知道如何在Android webview中使用webkit,如何自定义webkit?

我也想知道webkit中使用的线程机制,它如何使用线程池来处理布局和javascript(特别是对于Android)

我真的需要帮助.提前致谢.

UPDATE

我调查一下WebView.java,WebViewCore.javaJniUtil.javawebkit包中.特别是JniUtil.java

static {
        System.loadLibrary("webcore");
        System.loadLibrary("chromium_net");
}
Run Code Online (Sandbox Code Playgroud)

webcore和chromium_net在哪里?它们与此Webkit源相关吗?

Kha*_*ran 9

下图:android架构 - http://developer.android.com/images/system-architecture.jpg

webkit位于库层.和webkit源码是由c/c ++开发的.

我认为android webview通过使用jni(java本机接口)连接到webkit.你可以查看android源码(c ++部分).我认为那里的解决方案.

编辑:你可以看到类 android.webkit.WebViewCore:On静态构造函数:

static {
    // Load libwebcore and libchromium_net during static initialization.
    // This happens in the zygote process so they will be shared read-only
    // across all app processes.
    try {
        System.loadLibrary("webcore");
        System.loadLibrary("chromium_net");
    } catch (UnsatisfiedLinkError e) {
        Log.e(LOGTAG, "Unable to load native support libraries.");
    }
}
Run Code Online (Sandbox Code Playgroud)

我想你可以在webcore&chromium_net中找到(android源码c ++)

更新:我找到了android webkit的链接jni