尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
為了加速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位應用程序。