Android 6.0でChromium WebViewがソースビルドされなくなったので、自前でChromiumをビルドをする
あれ、external/chromium_org
どこいった?
Android 6.0のソースが検索サービスに現れた。
さて、ブラウザやWebViewがどうなったか見てみるか、と思った次の瞬間・・・
なに???
Building the Chromium-based WebView in AOSP is no longer supported. WebView can
now be built entirely from the Chromium source code.
【意訳】
もうAOSPではChromiumをソースバンドルしないよん〜
改造するならじぶんで勝手にやってね〜♪
まじかーーーーー!!!!!!!!
とりあえずソースを落としてみる
とはいえ、親切にREADMEに、いろいろ書いてるので… (とはいっても、Chromiumプロジェクト内でドキュメントによって言ってることが違っていたりするので、このへんを参考にしつつ)
mkdir ~/Chromium
cd ~/Chromium
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
./depot_tools/fetch --nohooks android
で、
PATH=`pwd`/depot_tools:$PATH gclient runhooks
実行した。
すると、エラーがでました
Updating projects from gyp files...
Error while checking Android SDK extras versions. Could not find the "extra-google-google_play_services" package in /home/yi01/Chromium/src/third_party/android_tools/sdk//extras/google/google_play_services. Please run build/install-android-sdks.sh to download it.
gyp: Call to 'python ../../build/check_sdk_extras_version.py --package-id extra-google-google_play_services --package-location /home/yi01/Chromium/src/third_party/android_tools/sdk//extras/google/google_play_services' returned exit status 1 while in /home/yi01/Chromium/src/third_party/android_tools/android_tools.gyp.
Error: Command '/usr/bin/python src/build/gyp_chromium' returned non-zero exit status 1 in /home/yi01/Chromium
Hook '/usr/bin/python src/build/gyp_chromium' took 20.86 secs
ということで、
pushd src
./build/install-android-sdks.sh
./build/install-build-deps-android.sh #ついでに
popd
PATH=`pwd`/depot_tools:$PATH gclient runhooks
と再度ためしたら、通りました。ここまでが前準備。
ビルド
READMEに書いてあるのを参考に
cd src
build/gyp_chromium -DOS=android -Dtarget_arch=arm -Drelease_unwind_tables=0 -Dbuildtype=Official -Dchrome_build_id='2e7c7a0f-c733-4b9a-9c8e-d3cf0938369b'
PATH=`pwd`/../depot_tools:$PATH ninja -C out/Release system_webview_apk
を実行。
out/Release/SystemWebView.apk
というAPKが出来上がります。
$ adb root
$ adb remount
$ adb shell rm -r /system/app/webview/*
$ adb shell mkdir -p /system/app/webview/lib/arm/
$ adb push SystemWebView.apk /system/app/webview/
$ 7z x SystemWebView.apk lib/armeabi-v7a/libwebviewchromium.so
$ adb push lib/armeabi-v7a/libwebviewchromium.so /system/app/webview/lib/arm/
$ adb reboot
で、ブラウザを起動すると・・・
何の変哲もないブラウザですね。
#いちおうAndroid 6.0のFloating ActionModeアピールw
気になる点
version_codeが未指定
10-21 19:11:56.375 807 881 W PackageManager: Downgrade detected: Update version code 1 is older than current 246011900
ってかんじで「おぉ?」となることがあります。
APKをバラして見てみると、
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.webview" platformBuildVersionCode="23" platformBuildVersionName="6.0-2166767">
version_codeの定義がありませんね…
android_webview/apk/java/AndroidManifest.xml
あたりが使われているんじゃないかなーと予想。(未検証)
おまけ
Android SDKについて
24.0.1やりました。
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
tar xzvf android-sdk_r24.4.1-linux.tgz
export ANDROID_HOME=$HOME/android-sdk-linux
export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH
ビルド環境について
AOSPのときはDebianでもビルドできてたのに、Chromiumプロジェクトのやつをビルドしようとすると、
Ubuntu 12.04/14.04/14.10/15.04 じゃないとビルドができない という最大の罠があります。
(私はDebian大好き人間なので、このためだけにUbuntuの環境を用意するはめになったw)
なんとなくこのへんをみて、apt-getで以下のパッケージは入れました。
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
Author And Source
この問題について(Android 6.0でChromium WebViewがソースビルドされなくなったので、自前でChromiumをビルドをする), 我々は、より多くの情報をここで見つけました https://qiita.com/YusukeIwaki/items/017cb2fe4f28bd55de4f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .