音声の問題はなんとかなりましたが、WebViewコンポーネントのこの遅さ。
これをなんとかしたい。Android4.4以上なら元から高速化されているようですが、
そうでないユーザもいるでしょう。という思いは強かったようで解決策が出ています。
4.2以上でないとだめですが、Crosswalkというものを組み込むと、WebViewが独自のものになります。
元WebViewは制限も多いし、いらないいらない。
https://crosswalk-project.org/
このWebViewでできること
https://software.intel.com/en-us/html5/articles/crosswalk-application-runtime
このCrosswalk、MonacaとかTitunium Mobileとかの開発環境では手軽に組み込めるようですが、
こちらはコマンドラインでやっているので、これでできないと困ります。
ただ、Cordova用をインストールしてもよくわからないのですよね。
で、インストールしてくれるコマンドを見つけました。
作ってくれた方には感謝。
AndroidSDKの導入が前提。
"android"コマンドが実行できるようにパス(%ANDROID_HOME%\bin;)を通しておきます。
① プロジェクト作る(ここではhelloとする)
② cd hello
③ cordova platform add android
④ npm i -g crosswalk-cordova-android
⑤ cordova-android-crosswalk --release stable --target android-19
なのですが、⑤の実行はちょっとまってください! このcordova-android-crosswalkはWindowsのCLIでうまく動かない記述があるので修正します。 (2015/1頃の話) C:\Users\xxxxx\AppData\Roaming\npm\node_modules\crosswalk-cordova-android\bin\crosswalk-cordova-android をエディタで下記のように修正します。
(修正前)ReleaseChannels: {
stable: 'https://download.01.org/crosswalk/releases/crosswalk/android/stable/8.37.189.12/arm/crosswalk-cordova-8.37.189.12-arm.zip',
beta: 'https://download.01.org/crosswalk/releases/crosswalk/android/beta/10.39.235.8/arm/crosswalk-cordova-10.39.235.8-arm.zip',
canary: 'https://download.01.org/crosswalk/releases/crosswalk/android/canary/11.39.251.0/arm/crosswalk-cordova-11.39.251.0-arm.zip'
},
(修正後)
https://download.01.org/crosswalk/releases/crosswalk/android/stable/
を確認して、最も新しいVerの数値に書き換える。以下は一例。
ReleaseChannels: {
stable: 'https://download.01.org/crosswalk/releases/crosswalk/android/stable/10.39.235.15/arm/crosswalk-cordova-10.39.235.15-arm.zip',
beta: 'https://download.01.org/crosswalk/releases/crosswalk/android/beta/10.39.235.8/arm/crosswalk-cordova-10.39.235.8-arm.zip',
canary: 'https://download.01.org/crosswalk/releases/crosswalk/android/canary/11.39.251.0/arm/crosswalk-cordova-11.39.251.0-arm.zip'
},
(修正前)exec('export ANDROID_HOME=$(dirname $(dirname $(which android))) && cd platforms/android/CordovaLib/ && android update project --subprojects --path . --target "' + Runtime.Args.target + '" && ant debug && cd ../../..')
(修正後)
exec('cd platforms/android/CordovaLib/' );
exec('android update project --subprojects --path . --target "'+ Runtime.Args.target + '"');
exec('ant debug');
exec('cd ../../..')
stableのバージョンをあげておかないと、android-19でビルドできません。 また、Windowsでは"export"コマンドはない(Promptを変更するのでいらない)し、 Windows7以下では &&によるコマンド連続実行はないようなので、 ひとつひとつ実行させます。 修正後、⑤のコマンドを実行します。 エラーがなければ成功。その後、
> cordova run android
を実行します。
もし、NativeAudioと組み合わせる場合は、Crosswalkの準備を先にして、
その後NativeAudioを追加してください。
なぜ、この記事がNativeAudio、Crosswalkの順番かは、私が解明していた順番だからです。
さあ、やっと憂いなくHTML5のWebアプリをAndroidプログラムにできました。
以上。