為了加速Android應用程式升級至64位元,Google釋出升級時間表,從2019年8月1日開始,Google Play上所有新的應用程式與更新都需要提供64位元版本,在2021年,Google Play將不再為64位元裝置提供非64位元應用程式。

Google從Android 5.0 Lollipop就開始支援64位元CPU,在2017年就曾對外釋出應用程式原生程式碼需要提供64位元版本的訊息,而現在Google給出明確的時間表,最快在2021年將全面在64位元裝置上禁用非64位元應用程式。Google表示,對大多數開發人員來說,應用程式移植到64位元上很直覺,而且由於許多應用程式使用Java或Kotlin非原生程式碼撰寫,這些應用程式則不需要為此進行更改。

有三類應用程式需要注意,第一是使用C或C++撰寫的應用程式,第二種是使用第三方原生函式庫開發的應用程式,第三種則是使用原生函式庫的第三方應用程式建置器,所建置的應用程式。Google提到,最簡單檢查64位元函式庫的方法,就是查看APK檔案結構。

在建置時,APK會與應用程式需要用到的原生函式庫打包在一起,而原生函式庫會基於ABI被儲存在不同的資料夾。開發者要檢查APK或是App Bundle是否存在原生程式碼,可以使用APK Analyzer檢查.so檔案,確定這些檔案是由自己的程式碼建置產生,還是由使用的SDK或函式庫輸入,如果APK中不包含任合.so檔案,則該應用程式符合64位元標準。

當應用程式存在原生程式碼,則需要對其啟用64位元架構並且重新建置原生程式碼,開發者應該要升級所有的SDK與函式庫到64位元相容版本。而為了幫助開發者,Google正與頂級函式庫開發者合作,以實現64位元相容性。

而對於遊戲開發者來說,目前最流行的三種遊戲引擎包括2015年之後的Unreal和Cocos2d,以及2018年之後的Unity,都已經提供64位元相容性。Google提到,他們理解移植第三方遊戲引擎是一個費時的過程,而且因為Unity一直到2017.4和2018.2版本才開始支援64位元,因此Google將特別寬容使用Unity 5.6或更早版本的遊戲,自動擴展時間限制至2021年8月。

Google也提醒,SDK的開發者應該盡快更新到64位元,以方便應用程式開發者有時間能夠使用與測試新的SDK。另外,應用程式不需要支援每一種64位元架構,但是對於開發者支援的每一種原生32位元架構,開發者需要有相對應的64位元架構。

因此除了使用Unity 5.6或是更舊版本遊戲引擎開發的遊戲之外,從2018年8月1日開始,所有包含原生程式碼的新應用程式以及應用程式更新,在發布到Google Play上時,除了32位版本都需要額外提供64位元版本。而從2021年8月1日開始,Google Play將不再為64位元裝置,提供非64位元版本的應用程式,而這包括以Unity 5.6或是更舊版本遊戲引擎開發的遊戲。

不過,這個限制不包括那些明確針對Wear OS或Android TV開發的應用程式,而不支援Android 9 Pie或更新版本的APK或App Bundle也同樣不在此限。Google表示,對於支援32位元的政策並未改變,Google Play仍然會為32位元裝置提供32位元應用程式。


Advertisement

更多 iThome相關內容