部落格 RSS Feed

Cordova Android 9.0.0 版本發佈!
作者:Bryan Ellis
2020 年 6 月 29 日

我們很高興宣布,我們剛剛發佈了 Cordova Android 9.0.0!這是 Cordova 用於建置 Android 行動應用程式的其中一個支援平台。

升級方式

cordova platform remove android
cordova platform add android@9.0.0

版本重點

  • 新增 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 服務

    對於外掛開發人員,可以透過將 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 並刪除 pre-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 服務 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