J2V8 For Android
J2V8是基于Google的JavaScript引擎V8的Java开源项目,实现Java和JavaScript的相互调用。并对Android平台提供支持,最新版本提供了aar格式的类库包方便Android Studio集成。
一、下载并为Android Studio配置j2v8库
J2V8开源项目在github的地址为:https://github.com/eclipsesource/J2V8,下载源码可以按照说明自行编译。也可直接使用官方编译好的aar格式的类库直接集成,下载地址:http://central.maven.org/maven2/com/eclipsesource/j2v8/j2v8/4.2.0/。这里是最新版本的下载地址,版本号为:4.2.0,其对应的V8引擎的版本号为:4.10.253。
1.下载后解压可得到一个aar格式的文件,修改名称为:j2v8.aar,并放到工程目录下的lib文件夹中,如下图:
2.修改app下build.gradle文件,添加如下内容:
repositories {
flatDir {
dirs 'libs'
}
}
dependencies下添加如下一行内容:
compile(name:'j2v8', ext:'aar')
修改后的build.gradle文件如下,其中标识部分为添加内容:
3.完成后,重新编译工程,在app/build/intermediates/exploded-aar目录下就可以看见我们引用的aar,如下图所示:
二、J2V8使用
添加一个测试工具类,并将工具类方法桥接到Java的方法中,定义Java类的示例代码如下:
1 public class J2V8TestCase { 2 public void print(String str) { 3 System.out.println(str); 4 } 5 6 public int jia(int a, int b) { 7 return a + b; 8 } 9 }
编写J2V8桥接代码,如下:
1 //工具类添加处理 2 public void testStaticClass() { 3 V8 v8 = V8.createV8Runtime(); 4 5 String v = V8.getV8Version(); 6 System.out.println(v); 7 8 V8Object testUtil = new V8Object(v8); 9 v8.add("TestUtil", testUtil); 10 testUtil.add("name", "test1"); 11 12 testUtil.registerJavaMethod(new J2V8TestCase(), "jia", "native_jia",new Class[]{int.class, int.class}); 13 testUtil.registerJavaMethod(new J2V8TestCase(), "print", "native_print",new Class[]{String.class}); 14 StringBuilder sb = new StringBuilder(); 15 sb.append("var str= 'Hello' + TestUtil.native_jia(100, 111);"); 16 sb.append("TestUtil.native_print(str);"); 17 v8.executeVoidScript(sb.toString()); 18 19 testUtil.release(); 20 v8.release(); 21 }
作者:宇之乐
出处:http://www.cnblogs.com/huizhang212/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。