JavaScriptEngine:沙箱执行 JavaScript · AndroidX 源码指南
AAndroidX 源码指南
基础工具
基础工具 · androidx.collection

JavaScriptEngine:沙箱执行 JavaScriptCollection 1.7.0-alpha01

创建 JavaScriptSandbox 与 Isolate,执行脚本并接收结果。

最后更新 2026-08-01

复制即用

import androidx.javascriptengine.JavaScriptSandbox;
import androidx.javascriptengine.JavaScriptIsolate;

JavaScriptSandbox sandbox = JavaScriptSandbox.createConnectedInstanceAsync(context).get();
JavaScriptIsolate isolate = sandbox.createIsolate();

// 执行脚本,返回结果字符串
ListenableFuture<String> result =
    isolate.evaluateJavaScriptAsync("1 + 2");

// 结束后释放
isolate.close();
sandbox.close();

要点

  • JavaScriptSandbox 是进程级沙箱,createIsolate() 创建独立执行环境(隔离脚本上下文)。
  • evaluateJavaScriptAsync 异步执行,返回 ListenableFuture<String>
  • 必须显式 close:Isolate 和 Sandbox 都持有原生资源,不关闭会泄漏。
  • 脚本异常会抛 JavaScriptException 子类(语法错误、超时、内存超限等)。
  • 适合执行不可信代码(模板、规则引擎);不需要像 WebView 那样加载整个页面。

On this page