Crosswalk Projectは、Android WebViewの代替品です。 プロジェクト統合

クロスウォークプロジェクト



この記事では、 Crosswalk Projectと呼ばれる興味深いプロジェクトに関する2部構成の短いシリーズを開きます。 その中で、CrosswalkをAndroidアプリケーションに統合し、それを通常のアプリケーションのシステムWebViewの代替として使用する問題に対処します。



「通常」とは、HTML5アプリケーションやネイティブC ++コードではなく、Android SDKを使用した古典的なJavaプロジェクトを意味します。 そして以来 Crosswalkは、主にHTML5アプリケーションを起動するためのランタイムとして使用されるため、用語を混同しないように、このプロジェクトを通常のものと呼びます。



最初の部分では、CrosswalkをAndroidアプリケーションに統合し、システムAndroid WebViewの代わりにCrosswalk WebViewを使用することについて直接話したいと思います。 第2部では、統合中にCrosswalkを使用する際の微妙な違いと困難さについて説明し、一般的な結論を導きます。



横断歩道とは何ですか?



Crosswalk Projectは、HTMLアプリケーション用のオープンソーステクノロジー上に構築されたランタイムです。 Crosswalk Projectの基盤はGoogle Chromiumです。 Crosswalk Project自体もオープンソースプロジェクトであり、 BSDライセンスの下で配布されています。



Crosswalkは、Webプラットフォームの既存の機能を拡張します。以下は、作成者が注目している機能の小さなリストです。



Crosswalkを使用すると、次のことができます。



そのため、Crosswalkは主にHTML5アプリケーションのランタイムを使用することを目的としており、バージョン4.0からCordovaと統合されています。 したがって、ハイブリッドアプリケーションの開発者の間では非常によく知られていますが、Java開発環境ではあまり知られていません。



Crosswalkは、通常のAndroidプロジェクトでシステムWebViewの代替として使用できます。 Crosswalkは、4.0以降のAndroidのすべてのバージョンを公式にサポートしています。 この場合、AndroidのバージョンとこのバージョンのシステムでのWebViewの実装の制限に依存しないようにするスタンドアロンブラウザーを取得します。



横断歩道コンポーネント。



Crosswalkの作成者は、システムWebViewとの完全な互換性を目指していませんでした。 ただし、一般に、Android 4.4までのシステムブラウザーインターフェイスのかなり近いコピーがあり、これによりシステムWebViewもChromiumに基づいて開始されました。 したがって、残念ながら、Crosswalkでは、Android API 21を使用した非常に便利でアクセス可能な呼び出しは見つかりません。

public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request)
      
      





Crosswalk 10以降、著者は標準インターフェイスからさらに離れることを決定し、パブリックAPIにいくつかの追加の呼び出しを追加しました。 CrosswalkのさまざまなバージョンのJavadocは、 公式Webサイトで見つけることができます。以下では、現時点での最新リリースバージョンである14番目のバージョンのいくつかの重要なポイントを検討します。



Crosswalkには、Crosswalk WebView(またはXWalkView)自体と以下が含まれるようになりました。



上記のクラスに加えて、ブラウザアプリケーションへの統合を容易にするいくつかの補助クラスとクラスがありますが、私は使用していません。 たとえば、XWalkApplicationおよびXWalkActivityです。



プロジェクトでの横断歩道の統合。



XWalkViewと説明されたソリューションが統合されたソースコードは、 GitHubで入手できます



一般的に、Eclipse / ADTを使用して開発されたプロジェクトにCrosswalkを統合する必要がある場合、Crosswalkの統合は非常に簡単です。これは、これに関する優れた公式ガイドです。 ここでは、Android Studioを使用したプロジェクトへの統合について説明します。 基本的に、Crosswalkライブラリを接続することで構成され、他のすべての操作は標準のWebViewを使用する場合とほとんど変わりません。



1. Android Studioで新しいプロジェクトを作成する必要があります。 たとえば、空のアクティビティと、API 14からのサポートを含むプロジェクトを作成しました。



2.リポジトリをCrosswalkアセンブリに接続し、プロジェクトアセンブリ自体を選択します。 私はバージョン14.43.343.17で利用可能な最新のものを使用しています:

 repositories { maven { url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2' } } dependencies { compile 'org.xwalk:xwalk_core_library:14.43.343.17' }
      
      







3.ネットワークを使用するための許可をAndroidManifest.xmlなどに追加します。

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      
      





許可の完全なリストは、上記の公式ガイドに記載されています。 場所、カメラ、オーディオ録音へのアクセスが含まれます。 単純なブラウザー実装の場合、それらのすべては必要ありません。 例では、Crosswalkキャッシュを保存するために、インターネット自体にアクセスし、ストレージに書き込むためのアクセス許可のみを指定します。



4. XWalkViewを使用するレイアウトに追加します。 簡単な例:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <org.xwalk.core.XWalkView android:id="@+id/xwalkview" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout>
      
      







5.アクティビティのコードにURLをロードするには、次の呼び出しを追加する必要があります。

 mXWalkView = (XWalkView) findViewById(R.id.xwalkview); mXWalkView.load("http://stars.chromeexperiments.com/", null);
      
      







6.システムWebViewと同様に、クラスを接続してXWalkViewから通知を受信できます。

 mXWalkView.setResourceClient(new MyResourceClient(mXWalkView)); mXWalkView.setUIClient(new MyUIClient(mXWalkView));
      
      







さらに、HTML5アプリケーションのベースとしてXWalkViewを使用する場合、CrosswalkにメッセージをブロードキャストするためのonActivityResult、onNewIntentなどのメソッドをオーバーライドできます。 たとえば、onActivityResultはJavaScriptダイアログからのイベントの処理にも使用されます。 これに、HTML5アプリケーションの場合、XWalkActivityを継承することを追加できます。XWalkActivityでは、必要なすべての瞬間が既に実装されています。



実装のいくつかのニュアンス。



すぐに注意を払う必要があるCrosswalk実装のいくつかのポイントを次に示します。





2番目の記事で 、より複雑な点とその可能な解決策について説明しました。



結論



Crosswalkについて簡単に説明すると、これは適切なサポートを備えた非常に便利で優れたソリューションです。 特にアクティブな開発プロセスを考慮すると、HTML5アプリケーションのランタイムは非常に有望に見えます。 ハイブリッドアプリケーションを作成するときに使用することをお勧めします。



All Articles