J2V8 For Android,j2v8forandroid
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檔案夾中,如:
repositories { flatDir { dirs 'libs' }}
dependencies下添加如下一行內容:
compile(name:'j2v8', ext:'aar')
修改後的build.gradle檔案如下,其中標識部分為新增內容:
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 }