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

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 关注 分享

要回复文章请先登录注册

DCloud_App_Array

DCloud_App_Array (作者)

回复 1***@qq.com :
js引擎不会对dom进行解析的。
2020-07-02 18:23
1***@qq.com

1***@qq.com

不同的js引擎对dom解析效率会不会有提升
2020-07-01 22:05