基础工具
基础工具 · 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 那样加载整个页面。