ubuntu编译weex_js_engine

weex早期在Android上使用的是V8,但经过测试,JavaScriptCore的性能比V8的性能更好,所以便用JavaScriptCore全面替代了V8

主分支默认使用由 UC 提供的 V8 引擎,默认只提供 armeabi-v7ax86 两个版本的引擎。

系统只能是ubuntu 16.04,因为编译的时候需要gcc-4.7的头文件。

$ cd ~

$ mkdir Android

$ cd Android

# 只能使用r11c编译,其他版本编译不通过
$ wget https://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip

$ unzip android-ndk-r11c-linux-x86_64.zip

$ sudo apt-get install gperf bison flex perl

# 如遇到缺少 bits/c++config.h 的情况,输入以下命令安装gcc编译相关库
$ sudo apt-get install gcc-4.7 g++-4.7 gcc-4.7-multilib g++-4.7-multilib

# 默认 GCC 切换到 gcc-4.7
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 20 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7

$ cd ~

$ export PATH=~/Android/android-ndk-r11c/:"$PATH"

# git clone https://github.com/alibaba/weex_js_engine.git

$ git clone https://github.com/wangqiang1588/weex_js_engine.git

$ cd weex_js_engine

$ ndk-build

集成 V8 引擎的话,需要使用

implementation 'org.apache.weex:sdk_legacy:0.28.0@aar'

 

编译 bridge_branch_mergeTimer 分支,该分支使用了 JavaScriptCore 取代了默认的 V8 引擎。默认提供 armeabi-v7ax86arm64-v8a 三个版本的引擎。

系统建议使用 ubuntu 20.04

$ cd ~

$ mkdir Android

$ cd Android

# 只能使用r18b编译,其他版本编译不通过
$ wget https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip

$ unzip android-ndk-r18b-linux-x86_64.zip

$ sudo apt-get install cmake 

$ sudo apt-get install ruby ruby-dev

$ sudo apt-get install ninja-build

$ cd ~

$ export PATH=~/Android/android-ndk-r18b/:"$PATH"

# git clone https://github.com/alibaba/weex_js_engine.git
$ git clone https://github.com/wangqiang1588/weex_js_engine.git

$ cd weex_js_engine

$ git checkout bridge_branch_mergeTimer

# 编译armeabi-v7a
$ bash build.jsc.sh

# 编译 arm-64
$ bash build.jsc.sh -t arm64

参考链接


发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注