博客 RSS 订阅

Cordova Android 9.0.0 发布!
作者:Bryan Ellis
2020年6月29日

我们很高兴地宣布,我们刚刚发布了 Cordova Android 9.0.0!这是 Cordova 支持的用于构建 Android 移动应用程序的平台之一。

升级

cordova platform remove android
cordova platform add [email protected]

版本亮点

  • 添加了 Kotlin 支持

    Kotlin 是最新的用于开发 Android 应用程序的静态类型语言之一。它被设计为与现有语言 Java 完全兼容。

    默认情况下,Cordova 禁用了 Kotlin,但可以通过在 config.xml 中使用 GradlePluginKotlinEnabled 配置项 来启用它。

    此外,Kotlin 的编码风格和版本是可配置的。默认情况下,Cordova 将编码风格设置为 official,并使用 1.3.50 版本。

    以下是启用和配置 Kotlin 的 config.xml 示例。

      <preference name="GradlePluginKotlinEnabled" value="true" />
      <preference name="GradlePluginKotlinCodeStyle" value="official" />
      <preference name="GradlePluginKotlinVersion" value="1.3.50" />
    

    对于插件开发人员,建议确保将 Kotlin 文件放置到平台 src/main/kotlin 目录中。

  • 添加了 AndroidX 支持

    AndroidX 是 Android 支持库的新的、改进的命名空间。原始的支持库不再维护。

    建议使用 AndroidX,以便您的应用程序运行最新的支持库,但是默认情况下,Cordova 禁用了 AndroidX 支持,以兼容现有的插件。

    许多 Android 支持的插件仍然使用旧的支持库,当使用 AndroidX 支持库时,这些插件无法构建。建议您在启用此功能之前,先研究每个插件是否支持 AndroidX。

    建议插件开发人员开始迁移以支持 AndroidX。应用程序开发人员也可以使用 Jetifier 自动迁移其现有的第三方库以使用 AndroidX。

    您可以通过在 config.xml 中将 AndroidXEnabled 配置项 设置为 true 来启用此功能。

      <preference name="AndroidXEnabled" value="true" />
    

    如果您之前使用 cordova-plugin-androidx 插件来启用 AndroidX 支持,那么此配置项不再需要此插件。

    cordova-plugin-androidx-adapter 插件可用于将旧的引用迁移到新的 AndroidX 引用。

  • 添加了 Google 服务支持

    要使用 Google API 或 Firebase 服务,在构建 Android 应用程序时,需要启用 Gradle 插件 Google Services

    对于插件开发人员,可以通过将 GradlePluginGoogleServicesEnabled preference 配置项设置到应用程序的 config.xml 中来启用此功能。从 plugin.xml 文件中,可以通过添加以下行来完成此操作

      <config-file target="config.xml" parent="/*">
          <preference name="GradlePluginGoogleServicesEnabled" value="true" />
          <preference name="GradlePluginGoogleServicesVersion" value="4.2.0" />
      </config-file>
    
  • Android 版本支持更新

    • 默认的目标 SDK 版本设置为 29。
    • 最低 SDK 版本设置为 22。
    • 最低支持的 Android 版本是 5.1。

    注意:由于 Cordova 已将最低 SDK 版本提高到 22,因此我们不再支持或测试 Android 5.0 或更低版本。

  • Gradle 和 Gradle 插件版本支持更新

    • Cordova 已将默认 Gradle 版本提高到 6.5。
    • Cordova 已将 Gradle 插件版本提高到 4.0.0

请在 issues.cordova.io 上报告您发现的任何问题!

完整更新日志

  • GH-1005 chore: 默认关闭 AndroidX
  • GH-971 fix: 接受文件输入中的多种 MIME 类型
  • GH-1001 fix: 同时支持自适应图标和标准图标
  • GH-985 fix: 安装预览版 SDK 时插件安装失败
  • GH-994 chore: 清理 yaml 文件
  • GH-999 chore: 从 Java 源代码中删除尾随空格
  • GH-992 chore: 更新一些依赖项
  • GH-998 chore: 从框架构建文件中删除尾随空格
  • GH-997 chore: 从项目模板中删除尾随空格
  • GH-996 chore: 从 bat 文件中删除尾随空格
  • GH-995 从 markdown 文件中删除尾随空格
  • GH-993 chore: 更新 devDependencies
  • GH-987 breaking: 将组合响应的截止值减少到 16 MB
  • GH-988 major: Gradle 6.5 & Android Gradle 插件 4.0.0 更新
  • GH-990 chore: 从 app/build.gradle 中删除尾随空格
  • GH-989 breaking: 从模板中删除 legacy/build.gradle
  • GH-978 fix: wait_for_boot 永远等待
  • GH-965 fix: 增加了 detectArchitecture() 超时时间
  • GH-962 breaking: 将 Android gradle 插件升级到 3.6.0
  • GH-948 feature: JVM Args 标志
  • GH-951 fix: ANDROID_SDK_ROOT 变量
  • GH-959 test: 将 AndroidX gradle 版本与 Android 测试的版本同步
  • GH-960 feat: com.android.tools.build:gradle:3.5.3
  • GH-956 chore(npm): 添加 package-lock.json
  • GH-958 chore(npm): 添加忽略列表
  • GH-957 chore: 各种清理
  • GH-955 chore(eslint): 更新包并应用 eslint 修复
  • GH-954 breaking(npm): 更新包
  • GH-953 chore(npm): 在 package.json 中使用简短表示法
  • GH-823 fix: 防止退出全屏模式关闭应用程序
  • GH-950 fix: 删除了冗余的 logcat 输出
  • GH-915 breaking: 将 minSdkVersion 提升至 22 并删除 Lollipop 之前的特定代码
  • GH-941 fix: GH-873 应用包构建遵守命令行参数
  • GH-940 ci: 删除 travis 并将 codecov 移动到 gh-actions
  • GH-929 chore: 更新 README 以更准确地反映 Android 的要求,即 Java 8,而不是更低或更高的版本。需要 Java 1.8.x。
  • GH-937 fix: GH-935 用原生排序方法替换 compare-func
  • GH-939 fix: rewired 文件中带有 shebang 解释器的测试失败
  • GH-911 refactor: 使用 es6 类
  • GH-910 refactor (eslint): 使用 cordova-eslint
  • GH-909 chore: 删除 appveyor 残留
  • GH-895 feat: 添加 github actions
  • GH-842 refactor: 删除 shelljs 依赖项
  • GH-896 feat: 添加 Kotlin 支持
  • GH-901 feat: 添加 AndroidX 支持
  • GH-849 fix: cordova requirements 考虑 android-targetSdkVersion
  • GH-904 fix (adb): shell 返回预期的 stdout
  • GH-792 feat: 将 gradle 升级到 6.1 & gradle 构建工具升级到 3.5.3
  • GH-902 chore: 删除 .project 文件 & 将 .settings 添加到 gitignore
  • GH-900 refactor: 简化 doFindLatestInstalledBuildTools
  • GH-751 feat: 使用 Java 包名加载 BuildConfig
  • GH-898 chore: 重命名 gradle 插件 google services preference 选项
  • GH-893 feat: 添加 Google 服务支持
  • GH-709 feat: 添加 version-compare 库以正确比较 build-tools 版本。
  • GH-831 chore: 忽略自动生成的 eclipse buildship 文件
  • GH-848 breaking: 将默认目标 sdk 提高到 29
  • GH-859 breaking: 删除不必要的项目名称限制
  • GH-833 chore: 删除 q 模块
  • GH-862 chore: 使用 execa 替换 superspawn & child_process
  • GH-860 feat: 不再过滤 gradle 的 stderr
  • GH-832 chore: 删除 node 6 和 8 的支持
  • GH-890 chore: 将版本提升至 9.0.0-dev
  • GH-697 chore: 代码优化
  • GH-863 chore: 删除无意义的注释
  • GH-861 chore: 将 jasmine 更新到 3.5.0
  • GH-858 chore: 使我们的一个 E2E 测试现代化
  • GH-854 chore: 确保尽可能多地 lint 文件