CEF GeneralUsage

2443 ワード

CEF GeneralUsage
概要
Chromium Embedded FrameWork(CEF)はChromiumベースのオープンソースプロジェクトです.Chromiumとの違いは、ChromiumプロジェクトがChromeブラウザにサービスしていることです.CEFはサードパーティのプログラムに組み込みブラウザフレームワークを提供します.CEFが適用される場合:
  • 既存のローカルプログラムにHTML 5をサポートするブラウザコントロールを埋め込む.
  • は軽量レベルの「シェル」プログラムを作成し、その上でWeb技術を使用してUI開発を行うことができる.
  • 「スクリーン外レンダリング」は、例えばバックグラウンドに大きなページをロードし、フロントでページが長くロードされないように直接表示します.

  • CEF 3はCEFの最新バージョンであり、Chromium Content APIに基づいている.
    本論文では,CEF 3を用いたプログラム開発に関する一般的な概念を紹介した.
    スタート
    バイナリバージョン
    CEFを体験するには、まずこのページからバイナリバージョンをダウンロードします.ダウンロードが完了したら解凍します.以下のディレクトリがあります.
  • cefclient:バイナリCEFライブラリに基づいて開発されたプログラムの例cefclientが含まれています.このプログラムはCEFの大部分の機能を使用しています.
  • cefsimple:バイナリCEFライブラリに基づいて開発されたプログラムの例cefsimpleが含まれています.このプログラムはCEFを使ってブラウザウィンドウを作成しただけです.
  • include:CEFヘッダファイル;
  • Debug/Release:コンパイルされたCEF共有ライブラリlibcef.dllおよびその他の必要な共有ライブラリ;
  • libcef_dll:libcef_dll_wrapper.lib静的ライブラリを生成するためのコードが含まれています.CEF C++APIを使用したプログラムは、この静的ライブラリにリンクする必要があります.「C++Wrapper」については後述する.
  • Resources:リソースフォルダ.CEFに基づいて開発されたプログラムは、これらのリソースファイルを実行する必要があります.

  • cefclientを生成するにはバイナリバージョンをコンパイルする必要があります....cefsimple.exe、コンパイル方法はTutorialを参照するか、ルートディレクトリのCMakeListを直接表示する.txtファイル.
    ソースバージョン
    CEFソースコードを直接コンパイルすることもできます.コンパイル方法はBranchesAndBuildingを参照してください.
    重要な概念
    正式に始まる前に、CEFに関するいくつかの重要な概念を理解しなければなりません.
    C++ Wrapper
    libcef.dll共有ライブラリはC APIをエクスポートします.C++APIを使用する必要があるプログラムでは、libcef_dll_wrapper項目を使用してパッケージ化する必要があります.C APIは、C++APIにカプセル化され、クライアント・プログラムにリンクされます.C/C++API間の変換レイヤコードはtranslatorツールによって自動的に作成されます.
    もちろん、直接C APIを使うのも可能ですが、具体的にはUsingTheCAPIを参照してください
    プロセス
    CEF 3はマルチプロセスとして動作する.メインプロセス(browserプロセスとも呼ばれる)は、ウィンドウの作成、描画、ネットワークアクセスなどの操作を処理し、ホストプログラムのビジネスロジックもbrowserプロセスで実行する.Blinkレンダリング、JavaScriptスクリプトの実行は、別のrenderプロセスが担当します.デフォルトのプロセスモデルは、サイトごとにrenderプロセスを作成します.他のタイプのプロセスは、必要に応じてのみ作成されます.たとえば、「plugin」プロセスは、Flashなどのプラグインを実行するために使用されます.「gpu」プロセスはaccelerated compositingを処理するために使用されます.
    デフォルトでは、メインプログラムの実行可能ファイルが複数回呼び出され、browserプロセス、renderプロセスの複数の独立したプロセスが作成されます.プログラムは、コマンドラインによって、自身がどのプロセスを表しているかを区別し、対応するプロセスの操作を実行する.実行可能ファイルが大きく、ロードが遅い場合は、ブラウザ以外のプロセスを別の独立した実行可能ファイルで作成することもできます.この構成はCefSettings.browser_subprocess_path variableで設定する必要があります.詳細は、次の「Application Structure」章を参照してください.
    各プロセスは、Inter-Process Communication(プロセス間通信)メカニズムを使用して対話することができる.browserとrenderプロセスのプログラムロジックは,非同期メッセージを送信することによって通信する.
    スレッド