博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2V8 For Android
阅读量:5304 次
发布时间:2019-06-14

本文共 1845 字,大约阅读时间需要 6 分钟。

  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 }

 

  

转载于:https://www.cnblogs.com/huizhang212/p/j2v8.html

你可能感兴趣的文章
css背景样式
查看>>
JavaScript介绍
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
Chapter 3 Phenomenon——12
查看>>
C语言中求最大最小值的库函数
查看>>
和小哥哥一起刷洛谷(1)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
SqlBulkCopy大批量导入数据
查看>>
pandas 修改指定列中所有内容
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>