JavascriptEngine

  
启用您的 Android 应用以评估 JavaScript。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2023 年 11 月 1 日 - - 1.0.0-beta01 -

声明依赖项

如需添加 JavascriptEngine 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 制品库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    implementation "androidx.javascriptengine:javascriptengine:1.0.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.javascriptengine:javascriptengine:1.0.0-beta01")
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

版本 1.0

版本 1.0.0-beta01

2023 年 11 月 1 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-beta01版本 1.0.0-beta01 中包含这些提交内容

  • 1.0.0-alpha07以来没有任何变化

版本 1.0.0-alpha07

2023 年 10 月 18 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha07版本 1.0.0-alpha07 中包含这些提交内容

新功能

  • 引入了新 API,以允许应用注册回调以处理隔离的崩溃。

API 变更

  • 已将 DEFAULT_MAX_HEAP_SIZE 重命名为 AUTOMATIC_MAX_HEAP_SIZE。(I6d303
  • 已将 FileDescriptorIoException 重命名为 DataInputException。(Iba4eb)
  • 已将 DEFAULT_ISOLATE_HEAP_SIZE 重命名为 DEFAULT_MAX_HEAP_SIZE。(Iaa16f
  • 移除了无效的控制台 getSourcegetTrace 方法。(I4b7a2
  • 取消隐藏 FileDescriptorIoException (Ic44e6)
  • 允许应用注册回调以处理隔离的崩溃。(Iad25f

版本 1.0.0-alpha06

2023 年 10 月 4 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha06版本 1.0.0-alpha06 中包含这些提交内容

新功能

  • 引入了新 API,用于评估 ParcelFileDescriptor/AssetFileDescriptor 中的 JavaScript,而无需将源转换为字符串。JavaScriptIsolate 类已变为线程安全类。

API 变更

  • 更改 provideNamedData 以抛出异常,而不是返回 false。(I8909a
  • 添加了用于通过 Afd 和 Pfd 评估 JavaScript 的 API (I03e3a)
  • MemoryLimitExceededExceptionSandboxDeadException 子类设为 IsolateTerminatedException (Icf359)
  • 移除了面向公众的 API evaluateJavaScriptAsync(@NonNull byte[] code) (I4b3ac)

bug 修复

  • 使 JavaScriptIsolate 线程安全。(Ib28e0

版本 1.0.0-alpha05

2023 年 4 月 5 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha05版本 1.0.0-alpha05 中包含这些提交内容。

API 变更

  • 评估和结果不再受 Binder 限制的约束 (I13b1d)
  • 添加了用于处理隔离控制台消息的回调(I11725Ic1c11

版本 1.0.0-alpha04

2023 年 2 月 22 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha04版本 1.0.0-alpha04 中包含这些提交内容

bug 修复

  • 修复了沙盒化进程终止时导致的极少数 NullPointerException 问题。

版本 1.0.0-alpha03

2022 年 12 月 7 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

新功能

  • 内存不足所导致的崩溃包含在负责任的隔离中,而不是使整个沙盒崩溃。隔离一旦耗尽内存,便无法用于进一步的评估。
  • 目前,在沙盒关闭前,系统不会释放隔离所占用的资源。此资源释放行为可能会在更高版本的库中发生变化。

API 变更

  • 当评估导致隔离内存不足时抛出 MemoryLimitExceededException。(I336ca)

版本 1.0.0-alpha02

2022 年 10 月 5 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

新功能

  • 添加了 JavaScriptSandbox#isSupported,用于检查系统是否支持 JavaScript 沙盒。

API 变更

  • 由于缺少系统支持而无法创建 JavaScriptSandbox 时,会抛出 SandboxUnsupportedException。(I0dcd6)

版本 1.0.0-alpha01

2022 年 8 月 10 日

发布了 androidx.javascriptengine:javascriptengine:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • 我们添加了对 JavaScriptSandboxJavaScriptIsolate 的实验性支持,使客户端能够在安全且受限的环境中评估 JavaScript。该领域正处于积极开发中;这些 API 随时可能发生更改,恕不另行通知。

  • 请提交功能请求并报告 JavascriptEngine 组件 bug!