# Introduction
本文档主要介绍 Weex 的重大变更,对于详细变更日志,请参考 Weex GitHub page.
# 版本
# 0.28
TIP
下述在 0.28 中的重大变更只影响 Android 用户。
# Android
# Java 包名
由于 Weex 在捐献给 ASF(Apache Software Foundation) 前隶属于阿里巴巴集团(淘宝的母公司),因此在 0.28.0
之前,Android 代码中的 Java 包名是 com.taobao.weex
从 0.28.0
之后,Android 代码中的 Java 包名被修改为 org.apache.weex
。考虑到这个升级会给现有用户来不兼容,weex 提供了 org.apache.weex:sdk_legacy
作为兼容性方案。这个兼容性方案后续可能不再维护,请尽可能的依 org.apache.weex:sdk
并将现有代码的包名升级为 org.apache.weex
。
# GroupId and artifactId in JCenter
由于 Weex 在捐献给 ASF(Apache Software Foundation) 前隶属于阿里巴巴集团(淘宝的母公司),因此在 0.28.0
之前,Android 代码中的 Java 包名是 com.taobao.weex
,因此在 0.28.0
之前,Weex 在JCenter 上的发布产物为 com.taobao.android:weex_sdk
从 0.28.0
之后,Weex 在 JCenter 上的发布变更为如下形式:
org.apache.weex:sdk
是稳定且持续维护的 aar 包,在这个包中所有的 Java 类在org.apache.weex
包名下。org.apache.weex:sdk_legacy
是兼容性 aar 包,在这包中所有的 Java 类在com.taobao.weex
包名下。兼容性包后续可能不再维护,请尽量升级到org.apache.weex:sdk
上。
# JavaScript Interpreter
在 0.28.0
之前, Weex Android 依赖并且将JavaScriptCore 作为 Weex 在 JCenter 上的发布产物的一部分,这种方式有如下缺陷:
- JavaScriptCore 属于双重授权项目,一部分以 BSD 形式授权,另一部分以 LGPL 形式授权,而这与 ASF 的 License 授权政策相违背。
- 如果将 JavaScriptCore 包含在 Weex 的 JCenter 发布产物中,会剥夺用户选择 JavaScript 解析引擎的自由。
- Weex 内置的 JavaScriptCore 是基于 JavaScriptCore 2016版 进行了裁剪,已经数年未更新。
基于上述原因,从 Weex 0.28.0 开始,JavaScript 引擎将不再内置于 Weex 在 JCenter 上的发布产物中,用户可以自由选择它们喜欢的 JavaScript 引擎,只要这个引擎遵循了指定接口。
这意味着用户需要在它们的 App 中内置 JavaScript 引擎,否则 Weex 将无法运行。对于不知道如何选择 JavaScript 引擎的用户,可以在 App 的 build.gradle 中引入下述脚本:
apply from: 'https://raw.githubusercontent.com/alibaba/weex/release/0.28/android/sdk/buildSrc/download_jsc.gradle'
这个脚本将会下载并内置jsc-android到你的 App 中。上述脚本仅为演示时使用,用户依然有权利在 App 中选择其符合其诉求的 JavaScript 引擎。
TIP
- 上述脚本中引入的 JavaScriptCore Interpreter 只支持 armeabi-v7a, arm64-v8a, x86 三种架构。
- 上述脚本将尝试把 JavaScriptCore Interpreter 拷贝至
project.android.sourceSets.main.jniLibs
文件夹。
若你的工程无法在上述条件下运行起来,请自行调整脚本。