说到J2V8之前,需要首先说说由Google开发的V8 JavaScript 引擎 , JavaScript引擎的作用就是对JavaScript代码进行解析并且运行。V8是一个比较独立的模块,它可以嵌入到我们自己的应用中,这样就可以在我们的应用中运行JavaScript代码了,V8 JavaScript 引擎 使用C++编写的,如果我们需要在Java中使用V8引擎,就需要首先使用JNI对其进行封装,J2V8就是对V8 JavaScript 引擎 的 Java 封装,所以在Java中如果引入了J2V8,我们就可以在Java中运行JavaScript代码。
源码地址:https://github.com/eclipsesource/J2V8
J2V8的优势
1、J2V8使得使用JavaScrpit开发Android/IOS程序成为了可能
具体可以看看Tabris.js这个框架,它就是基于J2V8编写的,官网地址为:https://tabrisjs.com/
2、V8是一个使用C++编写的高性能的JS运行环境,相对于其他的框架具有明显的性能优势
J2V8的特点
1、每个V8对象都可以被一个Handle所引用
2、每个对象都存放在一个V8的永久对象存储区
3、对象必须被显式的释放
4、可以直接访问原始类型对象,不需要转换为包装类的实例
5、单线程
J2V8库的下载和配置
下面我们以Android为例,来看看它的基本配置方法。
我们可以根据上面的下载源码按照说明自行编译。也可直接使用官方编译好的aar格式的类库直接集成,类库下载地址:
http://central.maven.org/maven2/com/eclipsesource/j2v8/j2v8/
选择对应的版本进行下载,然后直接引入到我们Android项目的lib目录下。
基本用法
1、运行JS脚本
2、资源的创建和释放
3、V8Objects 和 V8Arrays
4、创建V8Objects 和 V8Arrays
5、Lists 和 Maps
6、Java中调用JS方法
7、Java回调
8、Java异常
9、JS异常
10、支持调试
结尾
ECMAScript定义了语言的标准,JavaScript引擎根据这个标准来对解析并且运行JavaScript代码,也就是说我们的JavaScript代码就是运行在JavaScript引擎之上,如果需要运行JavaScript代码就必须有JavaScript引擎。后期会对JavaScript引擎基本的原理和使用进行讲解。