亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android 下的 QuickJS Binding 庫特性使用詳解

 更新時間:2022年09月07日 16:24:12   作者:汪海游龍  
這篇文章主要介紹了Android 下的 QuickJS Binding 庫特性使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

GitHub 地址:quickjs-android-wrapper

特性

  • 支持 Java 和 JavaScript 類型互轉
  • 支持 Promise 異步執(zhí)行
  • 支持字節(jié)碼編譯和執(zhí)行
  • 支持模塊加載執(zhí)行
  • 內置 console.log 實現
  • 統(tǒng)一的 JavaScript 異常處理

依賴

repositories {
  mavenCentral()
}
dependencies {
  implementation 'wang.harlon.quickjs:wrapper:0.0.18'
}

使用

創(chuàng)建 JSContext

QuickJSContext context = QuickJSContext.create();

執(zhí)行 JavaScript

QuickJSContext context = QuickJSContext.create();
context.evaluate("var a = 1 + 2;");

支持的 Java 類型

以下的 Java 類型可以直接轉換到 JavaScript 中使用:

boolean

int

double

String

null

JSObject 代表一個 JavaScript 對象

JSFunction 代表一個 JavaScript 方法

JSArray 代表一個 JavaScript 數組

屬性設置

Java

JSObject globalObj = context.getGlobalObject();
JSObject obj1 = context.createNewJSObject();
obj1.setProperty("stringProperty", "hello");
obj1.setProperty("intProperty", 1);
obj1.setProperty("doubleProperty", 0.1);
obj1.setProperty("booleanProperty", true);
obj1.setProperty("functionProperty", (JSCallFunction) args -> {
    return args[0] + "Wang";
});
globalObj.setProperty("obj1", obj1);

JavaScript

obj1.stringProperty; // hello string
obj1.intProperty; // 1
obj1.doubleProperty; // 0.1
obj1.booleanProperty; // true
obj1.functionProperty('Harlon'); // HarlonWang

屬性獲取

JavaScript

var obj1 = {
	stringProperty: 'hello string',
	intProperety: 1,
	doubleProperty: 0.1,
	booleanProperty: true,
	functionProperty: (name) => { return name + 'Wang'; }
}

Java

JSObject globalObject = context.getGlobalObject();
JSObject obj1 = globalObject.getJSObjectProperty("obj1");
obj1.getProperty("stringProperty"); // hello
obj1.getProperty("intProperty"); // 1
obj1.getProperty("doubleProperty"); // 0.1
obj1.getProperty("booleanProperty"); // true
obj1.getJSFunctionProperty("functionProperty").call("Harlon"); // HarlonWang

編譯和執(zhí)行字節(jié)碼

byte[] code = context.compile("'hello, world!'.toUpperCase();");
context.execute(code);

ESModule 模塊加載和執(zhí)行

Java

JSModule.setModuleLoader(new JSModule.Loader() {
    @Override
    public String getModuleScript(String moduleName) {
        return "export var name = 'Hello world';\n" +
                "export var age = 18;";
    }
});

JavaScript

import {name, age} from './a.js';
console.log('name:' + name); // Jack
console.log('age:' + age); // 18

同步

所有的 JavaScript 代碼執(zhí)行都是單線程,基于創(chuàng)建時的線程決定,不支持多線程執(zhí)行。

參考

quickjs-java

quack

quickjs-android

以上就是Android 下的 QuickJS Binding 庫特性使用詳解的詳細內容,更多關于Android QuickJS Binding 庫的資料請關注腳本之家其它相關文章!

相關文章

  • Android自定義View實現五子棋游戲

    Android自定義View實現五子棋游戲

    這篇文章主要為大家詳細介紹了Android自定義View實現五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • android上的一個網絡接口和圖片緩存框架enif簡析

    android上的一個網絡接口和圖片緩存框架enif簡析

    android上的一個網絡接口和圖片緩存框架enif詳細介紹:底層網絡接口采用apache的httpclient連接池框架、圖片緩存采用基于LRU的算法等等,需要了解的朋友可以詳細參考下
    2012-12-12
  • Android使用ViewPager實現屏幕滑動效果

    Android使用ViewPager實現屏幕滑動效果

    這篇文章主要為大家詳細介紹了Android使用ViewPager實現屏幕滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 輕松實現Android3D效果通俗易懂

    輕松實現Android3D效果通俗易懂

    前幾天有粉絲要求計蒙寫一個3d效果的簡單教程,其實這個在Android官方demo中是有的,可能對于新手而言看不太明白,于是根據本人自己的理解來寫一個教程,并改成粉絲要求的樣子
    2021-08-08
  • Android線程間通信Handler源碼詳解

    Android線程間通信Handler源碼詳解

    這篇文章主要為大家介紹了Android線程間通信Handler源碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Android開發(fā)時盡管已root但是ddms還是沒有data路徑怎么辦

    Android開發(fā)時盡管已root但是ddms還是沒有data路徑怎么辦

    這篇文章主要介紹了Android開發(fā)時盡管已root但是ddms還是沒有data路徑怎么辦的相關資料,需要的朋友可以參考下
    2015-12-12
  • Android入門之利用Spinner實現彈出選擇對話框

    Android入門之利用Spinner實現彈出選擇對話框

    這篇文章主要為大家詳細介紹了Android里如何巧用Spinner做彈出選擇對話框,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2022-11-11
  • Android Studio自動排版的兩種實現方式

    Android Studio自動排版的兩種實現方式

    這篇文章主要介紹了Android Studio自動排版的兩種實現方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android實現360手機助手底部的動畫菜單

    Android實現360手機助手底部的動畫菜單

    這篇文章給大家分享了利用Android實現360手機助手底部的動畫菜單效果,文中給出了實例代碼,這樣對大家的學習或者理解更有幫助,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • Android中ProgressBar用法簡單實例

    Android中ProgressBar用法簡單實例

    這篇文章主要介紹了Android中ProgressBar用法,以簡單實例形式分析了Android中ProgressBar進度條控件的功能與布局相關技巧,需要的朋友可以參考下
    2016-01-01

最新評論