DCloud_App_Array
DCloud_App_Array
  • 发布:2020-06-24 21:31
  • 更新:2021-02-03 10:11
  • 阅读:6175

Android平台uni-app使用JS引擎的配置方法

分类:uni-app

HBuilderX2.8.0 版本开始调整uni-app默认使用v8引擎

uni-app项目中的主要业务逻辑代码都是基于js代码控制,运行在独立的js引擎中,HBuilderX2.7.14及以下版本默认使用开源项目weex自带的JavaScriptCore引擎,JavaScriptCore 是基于 JavaScriptCore 2016版 进行了裁剪,已经数年未更新。

HBuilderX2.8.0中集成的V8引擎是基于2020年5月份的8.3版本。

JS引擎对比

为了对比测试JS引擎性能及内存占用情况,我们使用简单uni-app应用进行对比测试。
在华为mete30pro测试10次平均数据如下:

JS引擎 初始化时间 uni-app框架加载时间 简单App启动时间 亿次数组操作耗时 内存占用
v8 4.83ms 51.5ms 449.67ms 818.33ms 26M
JavaScriptCore 28ms 59.17ms 498.83ms 5261.67ms 29M

亿次数组操作代码

    var start = new Date().valueOf()  
    var arr = []  
    for (var i = 0; i < 100000; i++) {  
        var arrIn = []  
        for (var j = 0; j < 1000; j++) {  
            arrIn.push(j)  
        }  
        arr.push(arr)  
    }  
    var end = new Date().valueOf()  
    console.log("耗时:"+(end - start)+"ms");

性能
从测试数据看v8引擎相对于JavaScriptCore引擎有性能优势,特别是在大量数组操作方面,内存占用方面也有一些优势。

安装包大小
但使用V8引擎相对JSC引擎安装包会变大,仅包含armeabi-v7a类型cpu时约增加1.5M,同时包含armeabi-v7a和arm64类型cpu时约增加3M。

配置使用JSC引擎

云打包配置

如果对安装包大小比较在意,也可以配置继续使用JavaScriptCore引擎
打开项目的manifest.json文件,切换到“代码视图”

  • uni-app项目:
    在"app-plus" -> "distribute" -> "android"节点下添加jsEngine字段
  • 5+ App项目:
    不支持使用JS独立引起
    "jsEngine": "jsc"

注意:需提交云端打包才能生效

离线打包配置

JS引擎 aar库
v8 uniapp-v8-release.aar
JavaScriptCore uniapp-release.aar

离线SDK自2.8.1开始已将默认引擎切换到V8,用户可以根据自己的需求切换引擎。

注意:不同引擎的aar库不能同时使用!

0 关注 分享

要回复文章请先登录注册

1***@126.com

1***@126.com

uniapp 打包 ios 知道怎么配置引擎吗
2021-02-03 10:11
DCloud_App_Array

DCloud_App_Array (作者)

回复 4***@qq.com :
使用自定义基座
2020-09-27 11:52
4***@qq.com

4***@qq.com

请问各位大哥,怎么把手机调试时的引擎改成 uniapp-release.aar
2020-09-24 15:23
Web默默

Web默默

uniapp又变强了,支持
2020-07-29 09:27
风扬

风扬

那离线打包的APP呢?如何使用V8引擎?
2020-07-27 13:38
DCloud_App_Array

DCloud_App_Array (作者)

回复 luch :
是的,新版本默认调整使用v8引擎;要更新到v8引擎版本必须整包更新。
2020-07-27 12:09
潘毅康

潘毅康

回复 DCloud_heavensoft :
Hbuilder 2.7.14.20200618存在重大bug,map组件无法移动地图,切回去上一个版本正常
2020-07-27 10:25
luch

luch

1. 意思是之后的2.8+的引擎默认都是v8了,如果要继续使用之前的jsc引擎需要增加配置?
1. 这个操作对用户来说需要整包更新
2020-07-27 09:24
DCloud_heavensoft

DCloud_heavensoft

回复 chenzefeng09 :
看正文
2020-07-18 00:20
chenzefeng09

chenzefeng09

体积相差多少?
2020-07-17 19:01