2

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

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

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

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

更新

我查看WebView.javaWebViewCore.javaJniUtil.javawebkit 包中。特别是在JniUtil.java

static {
        System.loadLibrary("webcore");
        System.loadLibrary("chromium_net");
}

webcore 和 chromium_net 在哪里?它们与这个webkit 源有关吗?

4

1 回答 1

10

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

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

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

编辑:您可以看到类 android.webkit.WebViewCore:在静态构造函数上:

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.");
    }
}

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

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

于 2012-09-21T15:53:47.490 回答