2

webkitは、WebブラウザでHTMLコンテンツを表示するために使用されるレイアウトエンジンであることを知っています。Webkitのポートを調べたところ、Androidに関連するものは見つかりませんでした。WebViewクラスのAndroidソースフォルダーも調べましたが、WebviewがWebkitとどのように関連しているかがわかりません。

Android WebviewでWebkitがどのように使用されているか、Webkitをカスタマイズする方法を知りたいですか?

また、Webkitで使用されているスレッドメカニズム、レイアウトとjavascriptの処理にスレッドプールを使用する方法(特にAndroidの場合)についても知りたいです。

本当に助けが必要です。前もって感謝します。

アップデート

WebView.javaWebViewCore.javaおよびJniUtil.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に接続すると思います。あなたはアンドロイドソース(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 ++)で見つけることができると思います

更新:AndroidWebkitのリンクjniを見つけました

于 2012-09-21T15:53:47.490 に答える