我們很高興宣布,我們剛剛發佈了 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