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")
}

有关依赖项的更多信息,请参阅 添加构建依赖项

反馈

您的反馈有助于改进 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)
  • 添加用于通过 Afds 和 Pfds 评估 JavaScript 的 API (I03e3a)
  • 使 MemoryLimitExceededExceptionSandboxDeadException 成为 IsolateTerminatedException 的子类 (Icf359)
  • 删除面向公众的 API evaluateJavaScriptAsync(@NonNull byte[] code) (I4b3ac)

错误修复

  • 使 JavaScriptIsolate 线程安全。 (Ib28e0)

版本 1.0.0-alpha05

2023 年 4 月 5 日

androidx.javascriptengine:javascriptengine:1.0.0-alpha05 已发布。 版本 1.0.0-alpha05 包含以下提交。

API 更改

  • 评估和结果不再受 Binder 限制 (I13b1d)
  • 添加回调以处理隔离控制台消息 (I11725, Ic1c11)

版本 1.0.0-alpha04

2023 年 2 月 22 日

androidx.javascriptengine:javascriptengine:1.0.0-alpha04 已发布。 版本 1.0.0-alpha04 包含以下提交。

错误修复

  • 修复了沙箱进程终止时发生的罕见 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 组件!