简体   繁体   English

Android webview如何使用webkit?

[英]How Android webview uses webkit?

I know that webkit is a layout engine used for display HTML content in web browser. 我知道webkit是一个用于在Web浏览器中显示HTML内容的布局引擎。 I looked at Webkit ports and found no stuffs related to Android. 我查看了Webkit端口 ,发现没有与Android相关的东西。 I also looked at Android source folder for WebView class, but I can't see how Webview is related to Webkit. 我还查看了WebView类的Android源文件夹,但我看不出Webview是如何与Webkit相关的。

I want to know how webkit is used in Android webview, how to customize webkit ? 我想知道如何在Android webview中使用webkit,如何自定义webkit?

I also want to know the threading mechanism used in webkit, how it uses thread pool for processing layout and javascript (especially for Android) 我也想知道webkit中使用的线程机制,它如何使用线程池来处理布局和javascript(特别是对于Android)

I really need help. 我真的需要帮助。 Thanks in advance. 提前致谢。

UPDATE UPDATE

I look into WebView.java , WebViewCore.java and JniUtil.java in webkit package . 我查看webkit包中的 WebView.javaWebViewCore.javaJniUtil.java Particularly in JniUtil.java there is 特别是在JniUtil.java

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

Where are webcore and chromium_net ? webcore和chromium_net在哪里? Are they related to this webkit source ? 它们与此Webkit源相关吗?

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

webkit located on the libraries layer. webkit位于库层。 and webkit source was developed by c/c++. 和webkit源码是由c / c ++开发的。

I think android webview connect to webkit by using jni (java native interface). 我认为android webview通过使用jni(java本机接口)连接到webkit。 You can view android source (c++ part). 你可以查看android源码(c ++部分)。 I think the solution there. 我认为那里的解决方案。

EDIT: You can see the class android.webkit.WebViewCore : On static constructor: 编辑:你可以看到类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.");
    }
}

I think you can find in webcore & chromium_net (android source c++) 我想你可以在webcore&chromium_net中找到(android源码c ++)

Update: I find the link jni of android webkit 更新:我找到了android webkit的链接jni

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM