ADVERTISEMENT
長期以來,Android 系統使用 Android Runtime 來執行應用程式碼,而在安裝新應用程式時,Android 使用名為 dex2oat 的工具來取得 APK 的 .dex 檔案。這個檔案包含應用程式的編譯位元組碼,dex2oat 會使用該檔案產生一個或多個應用程式工件。
通常這些工件可以幫助作業系統更快和更有效率地載入大多數應用程式,使其成為 Android 系統的重要組成部分。具體來說,工件可以採用多種形式:vdex 檔案包含額外的元數據以加速 Runtime 的位元組碼驗證,odex 檔案包含應用程式中的預編譯程式碼,art 檔案則包含某些字串或類別的 Runtime 內部資訊,用於加快應用程式啟動速度。
ADVERTISEMENT
硬體過時?雲端來幫忙
對大多數 Android 裝置來說,安裝新應用程式和遊戲都不是難事,但如果處理器效能比較弱或者儲存速度比較慢的話,低階裝置仍然難以安裝大型應用程式,所以 Google 希望透過另一種方式對應用程式安裝進行最佳化,方便在更低階硬體上更好地執行。
根據 Android Authority 發布的消息,Google 計劃在 Android 16 中增加名為雲端編譯的新功能。該功能允許從 Google Play 商店下載的檔案中載入應用程式元件,而不是在裝置本機透過 dex2oat 產生應用程式工件。
ADVERTISEMENT
透過將應用程式編譯轉移到雲端,Android 16 可以加速低階裝置上的應用程式安裝過程,特別是對於那些需要編譯大量程式碼的應用程式來說可以加快安裝速度。Google 的作法是從 Google Play 下載的 SDM 檔案中提取編譯好的工件。
SDM 是 Android 16 中引入的新檔案格式,其中包含雲端編譯工件,代表安全的 Dex 雲端資料,使用與簽署 APK 相同的金鑰進行簽署。不過這類功能暫時還在測試並未投入使用,因為 Google 還需要在 Google Play 上進行配置,讓 dex2oat 可以產生這些應用程式工件。
這個功能對開發者來說可能是個好事,因為即使是大型應用程式也可以提高在低階硬體上的安裝速度。只不過這個功能可能會配置為可選,因為實際使用時這會增加資料下載量,對於數據流量價格較高的地區可能會花費更多費用。
ADVERTISEMENT
ADVERTISEMENT