もう、枯れた技術で、今更みても使えないと思います。。。
■Crosswalkとは
- Androidの標準WebViewを置き換えるChromiumベースのViewコンポーネント
- 端末ごとの微妙なWebViewの実装・バージョン差を気にすることなく最新のChromiumベースのアプリケーションを開発することが可能
- ただし、Crosswalkの開発はNov 14th, 2016、バージョン23を最後に終了、対象のChromium Versionは53(2016年9月ぐらいのバージョン)
開発が終わって、2017年にはもう更新されていないので、この記事は終了で良いかと思います。
なのですが、、、
それを無理やり、新しいバージョンに更新しようとしたらどうなるのかという無茶な話があったので、調べてみました。
- 最終リリースについて
https:// crosswalk-project.org/blog/crosswalk-final-release.html
※リンク切れ - バージョンについて
https://github.com/crosswalk-project/crosswalk-website/wiki/Release-dates - Cordovaとの連携について調べた情報
https:// crosswalk-project.org/documentation/cordova.html
※リンク切れ
■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-andro… - 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
コメント