crosswalk源码 的编译过程

2 篇文章 0 订阅
2 篇文章 0 订阅
本文详细介绍了在Ubuntu 16.04上编译Crosswalk源码的过程,包括设置XWALK_OS_ANDROID环境变量,安装depot_tools,获取源码,配置gclient,安装依赖,以及编译Android平台的Crosswalk核心库和运行时库,最后生成web应用APK。
摘要由CSDN通过智能技术生成

crosswalk 官方:https://github.com/crosswalk-project

编译环境 Ubuntu 16.04
crosswalk 支持的Ubuntu版本 12.04 、14.04、14.10、15.04、15.10、16.04。

编译Android平台上的Crosswalk,你首先应该设置 XWALK_OS_ANDROID环境变量:

export XWALK_OS_ANDROID=1

创建一个源码目录:

mkdir crosswalk
cd crosswalk

如果没有安装 depot_tools 先安装、已安装跳过该步骤

//安装depot_tools:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git              
//添加到环境变量里:
export PATH="$PATH:/xxx/xxx/depot_tools"

自动生成gclient的配置文件(.gclient):

gclient config --name src/xwalk https://github.com/crosswalk-project/crosswalk.git

在.gclient文件 下添加:

target_os = ['android']

在包含.gclient文件的目录下,获取源码:

gclient sync

gclient sync 如果报错(未找到解决办法):

//错误信息
    root@md:~/crosswalk# gclient sync
    Running depot tools as root is sad.
    Syncing projects: 100% (1/1), done.
    ________ running 'vpython src/xwalk/tools/fetch_deps.py -v' in '/home/ws/crosswalk'
    Traceback (most recent call last):
      File "src/xwalk/tools/fetch_deps.py", line 86, in <module>
        sys.exit(main())
      File "src/xwalk/tools/fetch_deps.py", line 81, in main
        deps_fetcher.DoGclientSyncForChromium()   
      File "src/xwalk/tools/fetch_deps.py", line 56, in DoGclientSyncForChromium
        gclient_utils.CheckCallAndFilterAndHeader(gclient_cmd,
    AttributeError: 'module' object has no attribute 'CheckCallAndFilterAndHeader'
    Error: Command 'vpython src/xwalk/tools/fetch_deps.py -v' returned non-zero exit status 1 in /home/ws/crosswalk
    Traceback (most recent call last):
       File "src/xwalk/tools/fetch_deps.py", line 86, in <module>
         sys.exit(main())
       File "src/xwalk/tools/fetch_deps.py", line 81, in main 
         deps_fetcher.DoGclientSyncForChromium()
       File "src/xwalk/tools/fetch_deps.py", line 56, in DoGclientSyncForChromium
         gclient_utils.CheckCallAndFilterAndHeader(gclient_cmd,
    AttributeError: 'module' object has no attribute 'CheckCallAndFilterAndHeader'

可以尝试下面这条命令:(非常的慢,还容易失败,失败了只能重新运行这个命令,看运气、网速)
记得给.gclient-xwalk添加:

target_os = ['android']

然后运行命令:

gclient sync --verbose --reset --force --with_branch_heads --delete_unversioned_trees --gclientfile=.gclient-xwalk

为Android平台的Crosswalk安装依赖关系:

cd src
./build/install-build-deps-android.sh

编译:

gn args out/Default

在弹出来的页面放入一下代码保存退出即可:

import("//xwalk/build/android.gni")
is_debug = false
target_os = "android"
ffmpeg_branding = "Chrome"
proprietary_codecs = true
rtc_initialize_ffmpeg = true
rtc_use_h264 = true
target_cpu = "arm"
enable_nacl = false
symbol_level = 0
remove_webcore_debug_symbols = true
use_aura = false
use_ozone = false
enable_plugins = false
disable_bundled_extensions = true
v8_use_snapshot = true
enable_webrtc = true
is_official_build = true
v8_enable_i18n_support = false
disable_ftp_support = true
disable_libfuzzer = true

如果报错:

../../third_party/android_tools/sdk/extras/google/google_play_services/libproject/google-play-services_lib/res does not exist

类似的文件找不到可以手动下载对应的文件然后放入对应的位置即可

wget https://dl-ssl.google.com/android/repository/google_play_services_8298000_r28.zip
//无报错则忽略。

通过工具和嵌入式库,编译Android版Crosswalk的主要部分,你可以运行:

ninja -C out/Default xwalk_core_library

这样将会在out/Default下创建一个名为xwalk_core_library的目录,目录中包含有特定平台(例如X86或者ARM版)的Crosswalk库,这些库可以将Crosswalk嵌入到项目中。

编译Crosswalk的运行时库(在Crosswalk共享模式下,一个可以作为应用的runtime的APK),运行:

ninja -C out/Default xwalk_runtime_lib_apk

这将会在out/Default/apks下生成一个名称为XWalkRuntimeLib.apk的APK。

为了构造一个简单的web应用APK(为了快速安装/目标测试),只要执行:

ninja -C out/Default xwalk_app_template_apk

这将会在out/Default/apks下生成一个名称为XWalkAppTemplate.apk的APK。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值