[Cordova]Crosswalkを試す(終了)

スポンサーリンク

もう、枯れた技術で、今更みても使えないと思います。。。

■Crosswalkとは

  • Androidの標準WebViewを置き換えるChromiumベースのViewコンポーネント
  • 端末ごとの微妙なWebViewの実装・バージョン差を気にすることなく最新のChromiumベースのアプリケーションを開発することが可能
  • ただし、Crosswalkの開発はNov 14th, 2016、バージョン23を最後に終了、対象のChromium Versionは53(2016年9月ぐらいのバージョン)

開発が終わって、2017年にはもう更新されていないので、この記事は終了で良いかと思います。
なのですが、、、
それを無理やり、新しいバージョンに更新しようとしたらどうなるのかという無茶な話があったので、調べてみました。

■Crosswalk導入の条件

  • Cordova CLI is >= 5.0.0:
  • Cordova Android platform (version >= 4.0.0)

■Cordovaについて

CLIバージョンと(iOS,Android)プラットフォームバージョンが存在する
ややこしい

  • Cordova最新情報
    • Cordova CLI 7.0.1
    • Cordova Android platform 6.2.3

■Crosswalkについて

プラグインバージョンとCrosswalkバージョンの2種類がある
ライブラリとそれを使うためのプラグインというイメージ
こちらもややこしい

  • Crosswalk最新バージョン
    • Crosswalk Webview Plugin, 23
    • Crosswalk WebView libraries 23.53.589.4(Chromium53)

■バージョンの変更方法

例えば、Chromium32まで落とすには、以下のようにバージョンを指定してあげれば良いです。

cordova plugin add cordova-plugin-crosswalk-webview --variable XWALK_VERSION="4+"

※XWALK_VERSION="4+" は、Crosswalk Release:4 (Chromium Version:32) という意味
ただ、古すぎるためbuildでエラーが発生します。

  • エラー文言
    could not find any version that matches ~~~:4+

なお、以下のバージョンまではビルドが通ることを確認しています。

  • Crosswalk Release:19
  • Chromium Version:49

cordovaのバージョンを下げたり、Cordova Android platformのバージョンを下げることで、もう少し低いバージョンのcrosswalkを動かすことができます。

■crosswalkの古いバージョンの使い方

  • 旧バージョンのcordovaの環境構築
    旧バージョンのcordovaの環境構築 - Qiita
    なぜ古いcordovaで環境構築するのか 案件の中でcordovaのバージョンが最新ではなく特定のバージョンが指定されており、環境構築に結構苦労したので記載します。 対象はcordova-androidの4.0.2が対象になり...
  • cordovaインストール 5系 → 可能
     ただし、deprecatedが幾つか表示される npmconfやminimatchなど
  • 以下、コマンドを実行
    npm install -g cordova@5.0.0
  • AndroidSDKを古いものに変更
  • ANDROID_HOMEも設定
     手順は省略
     android studio 3.0preが入っていると悪さするので削除が必要(設定でなんとかできるとは思われるけど、、、)
  • プロジェクトの生成(cordova create)
     →SDKを変更しないとエラーが発生する

    cordova create hello com.example.hello HelloWorld
    cd hello
  • Cordova Android platformのバージョンを指定して追加
    cordova platform add android@4.0.0
  • プラグインのバージョンを指定して追加
    cordova plugin add cordova-plugin-crosswalk-webview@1.0.0

    ※上の、XWALK_VERSIONでのバージョン指定方法と違うのは、気分です。色々試していました。
    対応しているプラグインのバーションは以下
    valid install target
    "1.0.0"〜"2.3.0"
    1.0.0→
    crosswalkのバージョン(XWALK_VERSION):11.40.277.7
    Chromium 40.0.2214.91
    →ここまでは確認。
     起動させてUserAgentで確認
    #–variable XWALK_VERSION="4+"を指定しても無視される
     config.xmlで、xwalkVersion value="15+"になっていて、4+にしても変化なし
     プラグイン2.3.0だとこの値で、cwのバージョンを変更できたが、、、
    プラグインは、1.0.0以前はなさそう、githubでもない

  • XWALK_VERSION=4.32.76.6
    ソースコード
     https://download.01.org/crosswalk/releases/crosswalk/android/stable/
      4.32.76.6/arm/crosswalk-cordova-4.32.76.6-arm.zip
       →Readmeでeclipseでの取り込み方が記載あり
        ★★★eclipseで試すこと★★★
        (Android Studioへの変換を試しましたが、うまく行かず)
        (eclipseってRefreshが効かないことがあって久しぶりに触るとハマるよね)
        ★★★Android SDK toolsもバージョン25.3.0以前を使用すること★★★
        (古いcordovaでは新しい構成に対応していないため)
        https://dl.google.com/android/repository/tools_r25.2.3-windows.zip
        https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
        "test"プロジェクトをインポート後、
        AndroidManifest.xmlのLAUNCHER ActivityをCordovaActivityに変更
        CordovaActivity.javaにloadUrlのアクセス先が直書きされているので
        アクセスするサーバーのURLに変更
         他のファイルは無視しても良さげ  
      
     githubからもコードが取得できるが、ライブラリのコードがなかったりして
     ビルドエラーになった。
      #Readmeの内容も怪しいが、何かしらの方法でできるのかも
      https://github.com/crosswalk-project/crosswalk-cordova-android

■プラグインを使った場合

手順は公式を参照
https://crosswalk-project.org/documentation/cordova.html

  • Crosswalk導入の条件
    • Cordova CLI is >= 5.0.0:
    • Cordova Android platform (version >= 4.0.0)
  • コマンド
    環境構築

    npm install -g cordova@5.0.0
    cordova create hello com.example.hello HelloWorld
    cd hello
    cordova platform add android@4.0.0
    cordova plugin add cordova-plugin-crosswalk-webview@1.0.0

    ビルド、起動実行

    cordova build android
    cordova emulate android

■monacaで試した場合

プラグインの設定でcrosswalkを選択できる。
XWALK_VERSION=9.38.208.10(Chromium:38)まで選択可能

しかし、プラグインバージョンが最新2.3.0から変更できない、かつ、
cordova・Cordova Android platformのバージョンが変更できないため、
古いバージョンではビルドエラーとなる。

  • XWALK_VERSION=19.49.514.4 (Chromium:49)までビルド可能

■Crosswalkライブラリの作りについて

####時間を作ってまとめたい。

  • 流れ
    ライブラリのビルド
     xwalk_core_library
    ライブラリ用のリポジトリ
     chromiumのソースも取得している
      純粋なchromiumソースではなく、少し手が入っている。
      つまりchromiumバージョンを上げるには、2つの方法が挙げられる
       chromium最新バージョンのソースに、Xwalk独自のコードを追加する
       Xwalk用のchromiumにバージョンアップのパッチを地道に当て続けていく
      ビルドは、chromiumのビルド方法と同じ
    github.com/crosswalk-project
    crosswalk
    cordova-plugin-crosswalk-webview
    chromium-crosswalk
    crosswalk-cordova-android

コメント

タイトルとURLをコピーしました