Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Chromium for android 編譯

Chromium for android 編譯

編輯:關於Android編程

環境准備

Ubuntu 14.04 x64 穩定的翻牆工具,如Shadowsocks。翻牆是必須的,不翻牆下載的程序不靠譜。Ubuntu環境下配置好終端翻牆。關於終端翻牆我會在另一篇博客中寫出。

安裝配置depot_tools

~$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

添加 depots_tools 路徑到環境變量 PATH,假設當前 depots_tools 路徑為 /home/levono/depot_tools,則在~/.bashrc在添加:

export PATH=$PATH:/home/levono/depot_tools

使配置生效:

~$source ~/.bashrc

獲取chromium源碼

~$mkdir ~/chromium && cd ~/chromium
~/chromium$ fetch --nohooks --no-history android

如果中途下載中斷:

~/chromium$ gclient sync --nohooks

整個代碼下載下來大概16G

配置編譯環境

1.配置GYP
如果你選擇使用GYP,需要創建一個名為 chromium.gyp_env 的文件

~/chromium$ echo "{ 'GYP_DEFINES': 'OS=android target_arch=arm', }" > chromium.gyp_env
~/chromium$ gclient runhooks

以上參數中的target_arch表示構建的平台,可選”arm”, “ia32″(x86架構), “mipsel”(MIPS架構)

2.配置GN
如果你選擇使用GN,那麼需要創建一個編譯目錄:

~/chromium/src$ gn args out/Default

在彈出的編輯器中寫入:

target_os = "android"
target_cpu = "arm"  # (default)
is_debug = true  # (default)

# Other args you may want to set:
is_component_build = true
is_clang = true
symbol_level = 1  # Faster build with fewer symbols. -g1 rather than -g2
enable_incremental_javac = true  # Much faster; experimental

安裝編譯依耐環境

~/chromium/src$ build/install-build-deps-android.sh

確保 OpenJDK 1.7 為默認

sudo update-alternatives --config javac
sudo update-alternatives --config java
sudo update-alternatives --config javaws
sudo update-alternatives --config javap
sudo update-alternatives --config jar
sudo update-alternatives --config jarsigner

然後同步目錄文件

~/chromium/src$ gclient sync

編譯並安裝APK

如果下面的 adb_install_apk.py 腳本失敗,確保aapt在你的PATH中,如果沒有需要添加到環境變量中。

/path/to/src/third_party/android_tools/sdk/build-tools/{latest_version}/

將安卓手機通過USB線插入電腦,通過以下命令檢測一下能否連接成功

third_party/android_tools/sdk/platform-tools/adb devices

1.初始化環境

~/chromium/src$ . build/android/envsetup.sh

2.編譯完整浏覽器

GYP編譯

~/chromium/src$ ninja -C out/Release chrome_public_apk

GYP安裝

~/chromium/src$ build/android/adb_install_apk.py out/Release/apks/ChromePublic.apk 

GN編譯

~/chromium/src$ ninja -C out/Default chrome_public_apk

GN安裝

~/chromium/src$ build/android/adb_install_apk.py out/Default/apks/ChromePublic.apk   

編譯 Content shell

以GYP編譯為例,如果為GN編譯路徑改為GN的路徑即可

~/chromium/src$ ninja -C out/Release content_shell_apk
~/chromium/src$ build/android/adb_install_apk.py out/Release/apks/ContentShell.apk

提示: 這將會在 out/Release/apks/ContentShell.apk 構建並安裝一個安卓的apk安裝包。對於GYP來說,如果你想生成一個調試版本可以修改Release為Debug,如果是GN那麼就要修改為你自己設置的名稱。

構建WebView Shell

AndroidWebView 是一個系統的框架組件,Android KitKat基於chromium的 content模塊 實現的。 WebView的外殼是頂部一個 URL地址欄 加上一個在Android系統中獨立的WebView。

~/chromium/src$ ninja -C out/Release android_webview_apk
~/chromium/src$ build/android/adb_install_apk.py out/Release/apks/AndroidWebView.apk

快速編譯安裝(only GN)

GN’s “incremental install” uses reflection and side-loading to speed up the edit & deploy cycle (normally < 10 seconds).
Make sure to set is_component_build = true in your GN args
All apk targets have *_incremental targets defined (e.g. chrome_public_apk_incremental)
例如:

~/chromium/src$ ninja -C out/Default chrome_public_apk_incremental
~/chromium/src$ out/Default/bin/install_chrome_public_apk_incremental -v

For gunit tests (note that run_*_incremental automatically add –fast-local-dev when calling test_runner.py):

~/chromium/src$ ninja -C out/Default base_unittests_incremental
~/chromium/src$ out/Default/bin/run_base_unittests_incremental

For instrumentation tests:

~/chromium/src$ ninja -C out/Default chrome_public_test_apk_incremental
~/chromium/src$ out/Default/bin/run_chrome_public_test_apk_incremental

卸載:

~/chromium/src$ out/Default/bin/install_chrome_public_apk_incremental -v --uninstall
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved