zoukankan      html  css  js  c++  java
  • 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     }

      

  • 相关阅读:
    2019.1.5JavaScript
    SQL常用删改增语句
    PHP连接数据库
    PHP数组函数
    PHP字符串常用函数
    PHP 类型判断方法
    jQuery效果
    jQuery特性
    倒计时
    判断浏览器及其内核
  • 原文地址:https://www.cnblogs.com/huizhang212/p/j2v8.html
Copyright © 2011-2022 走看看