編輯:關於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 }
深度理解Android InstantRun原理以及源碼分析
Instant Run官方介紹簡單介紹一下Instant Run,它是Android Studio2.0以後新增的一個運行機制,能夠顯著減少你第二次及以後的構建和部署時間
使用Chrome浏覽器調試Android App詳解
個人一直對Chrome情有獨鐘,Chrome除了更快之外,對開發者的支持更友好。內置強大的Developer Tools,相信Web開發簡直愛不釋手!而且Chrome S
Android AutoLayout全新的適配方式 堪稱適配終結者
一、概述相信Android的開發者對於設配問題都比較苦惱,Google官方雖然給出了一系列的建議,但是想要單純使用這些建議將設備很輕松的做好,還是相當困難的
Android 多線程之HandlerThread 完全詳解
之前對線程也寫過幾篇文章,不過倒是沒有針對android,因為java與android在線程方面大部分還是相同,不過本篇我們要介紹的是android的專屬類Handler