close

開場就是截圖震撼彈 !!!

遇到更新通常都是大災難

在修改的同時還要保證所有功能完整呈現

這一次 google 在 2019-08-01 的這一天

強制了兩項新政策

1、app 需支援 64 位元

2、 targetSdkVersion 需要 api 28 以上了

 

關於第一項我已經升級完了,歷程請看這邊

Android 簡介 arm64-v8a、armeabi-v7a、armeabi、x86、x86_64、mips、mips64,如何減少 apk 大小,so檔的相容 』Willy's Fish教學

 

第二項,要改的是 targetSdkVersion,那這個是什麼呢?

讓我們來看看 compileSdkVersion,minSdkVersion,targetSdkVersion 的差異吧

 

簡單來說 Android 就是用 compileSdkVersion,minSdkVersion,targetSdkVersion 來區分可以使用哪些API,要求的API級別是什麼,以及應用的兼容模式。

 

compileSdkVersion

作用是告訴 Gradle 用哪個 Android SDK 版本編譯

最好是用最新的SDK進行編譯,因為這樣編譯時就可以檢查到棄用的API

 

minSdkVersion

作用是 Google Play 商店用來判斷用戶設備是否可以安裝的因素之一

在開發時若我們使用了高於 minSdkVersion 的 API 時會警告你,幫助避免調用不存在的API的運行時問題。

 

targetSdkVersion

作用是 Android 向前兼容的主要依據

什麼意思呢? 舉個例

Android 4.4 API 19 及以下時使用 set() 和 setRepeating() 設置 alarm 的時間

alarm 會「精確」的在設定的時間點跳出

但在 API 19 以上使用的話

alarm 會在設定的時間點「之後」的一個時間跳出

這對於很要求精確的 APP 是個致命傷 ( 例如:鬧鐘app )

這個時候若 targetSdkVersion 不要更新,Android 就會自動用 19 以下的 api 運行

 

解釋完三個名詞之後

我們將 targetSdkVersion 改為 28

然後確認一下 app 運行正常即可

 

常遇問題應該是下面這些系列

implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
。。。等等

記得更新版本就可以了

但由於之後 adnroid support 只支援到 28

所以再來就是要挑戰更新到 AndroidX 了

 


arrow
arrow

    顏澤偉 發表在 痞客邦 留言(0) 人氣()