行為變更:所有應用程式

Android 15 平台包含可能對應用程式造成影響的行為變更。無論 targetSdkVersion 為何,當應用程式在 Android 15 上執行時,下列行為變更將會套用至所有應用程式。您應測試應用程式,並視需要修改,以便在適當情況下支援新版本功能。

另請務必查看只會影響指定 Android 15 版本應用程式的行為變更清單。

核心功能

Android 15 會修改或擴充 Android 系統的各種核心功能。

套件已停止狀態變更

一律使用套件 FLAG_STOPPED 狀態 (使用者可以長按應用程式圖示並選取「強制停止」) 以此方式,讓應用程式保持處於這個狀態,直到使用者直接啟動應用程式,或間接與應用程式互動 (透過 Sharesheet 或小工具選取應用程式做為動態桌布等) 為止。在 Android 15 中,我們更新了系統行為,以配合此預期行為。請務必讓使用者直接或間接操作,讓應用程式從停止狀態中移除。

為支援預期行為,除了現有的限制外,當應用程式在 Android 15 進入停止狀態時,系統也會取消所有待處理意圖。使用者的動作將應用程式從已停止狀態中移除時,應用程式會將 ACTION_BOOT_COMPLETED 廣播訊息傳送給應用程式,讓您有機會重新註冊任何待處理的意圖。

您可以呼叫新的 ApplicationStartInfo.wasForceStopped() 方法,確認應用程式是否已進入停止狀態。

支援 16 KB 頁面大小

過去,Android 僅支援 4 KB 的記憶體頁面大小,可根據 Android 裝置的平均記憶體總量,最佳化系統記憶體效能。自 Android 15 起,Android 支援將頁面大小設為 16 KB (16 KB 裝置) 的裝置。

由於裝置製造商持續建構配備大量實體記憶體 (RAM) 的裝置,為提升裝置效能,許多這類裝置可能會以 16 KB (甚至更大) 頁面大小進行設定。新增對 16 KB 裝置的支援可讓應用程式在這類裝置上執行,讓應用程式從相關效能改善處獲得優勢。為協助您解決這個問題,我們提供瞭如何檢查應用程式是否受到影響、如何重新建構應用程式 (如適用) 的方法,以及如何使用模擬器和實體裝置在 16 KB 環境中測試應用程式的指引。

優點和成效提升

設定為 16 KB 頁面大小的裝置平均使用的記憶體平均會略高一些,但同時也能提升系統和應用程式的效能:

  • 系統處於記憶體壓力時,縮短應用程式啟動時間:平均降低 3.16%,針對部分我們測試的應用程式效能更顯著提升 (最高 30%),
  • 應用程式啟動時的耗電量降低:平均降低 4.56%
  • 相機啟動速度更快:熱啟動速度平均加快 4.48%,冷啟動速度平均加快 6.60%
  • 改善系統開機時間:平均可提高 1.5% (約 0.8 秒)

這些改善項目是以我們的初始測試結果為依據,因此實際裝置的結果可能會有所不同。我們會在持續測試的過程中,提供有關應用程式潛在收益的其他分析。

確認應用程式是否受到影響

如果您的應用程式使用任何原生程式碼,則應重建應用程式並支援 16 KB 裝置。如果您不確定應用程式是否使用原生程式碼,可以使用 APK 分析工具判斷是否有任何原生程式碼

如果應用程式只使用以 Java 程式設計語言或 Kotlin 編寫的程式碼 (包括所有程式庫或 SDK),則應用程式已支援 16 KB 裝置。不過,建議您在 16 KB 環境中測試應用程式,確認應用程式行為並未發生非預期的迴歸問題。

必須變更部分應用程式才能支援私人空間

「私人空間」是 Android 15 的新功能,可讓使用者在裝置上建立獨立空間,並額外進行驗證,防止敏感應用程式遭到窺探。由於私人空間中的應用程式的瀏覽權限受到限制,因此某些類型的應用程式必須採取額外步驟,才能查看使用者私人空間中的應用程式並與之互動。

所有應用程式

由於私人空間中的應用程式會保存在獨立的使用者設定檔中 (與工作資料夾類似),應用程式不應假設應用程式不在主要資料夾中安裝的任何應用程式副本位於工作資料夾中。如果應用程式設有與工作資料夾應用程式相關的邏輯,而此應用程式屬於此假設,您需要調整這個邏輯。

啟動器應用程式

如要開發啟動器應用程式,您必須先完成下列步驟,才能顯示私人空間中的應用程式:

  1. 您必須將應用程式指派為裝置的預設啟動器應用程式,亦即具備 ROLE_HOME 角色。
  2. 應用程式必須在應用程式的資訊清單檔案中宣告 ACCESS_HIDDEN_PROFILES 一般權限。

宣告 ACCESS_HIDDEN_PROFILES 權限的啟動器應用程式必須處理下列私人空間用途:

  1. 您的應用程式必須具有獨立的啟動器容器,適用於安裝在私人空間中的應用程式。
  2. 使用者必須能隱藏及顯示私人空間容器。
  3. 使用者必須能鎖定及解鎖私人空間容器。
  4. 在鎖定時,不應透過搜尋等機制查看或探索私人空間容器中的應用程式。

應用程式商店應用程式

私人空間內含「安裝應用程式」按鈕,可啟動隱含意圖,將應用程式安裝至使用者的私人空間。為了讓應用程式接收此隱含意圖,請在應用程式的資訊清單檔案中,使用 CATEGORY_APP_MARKET<category> 宣告 <intent-filter>

目標 SDK 版本下限已從 23 提升為 24

Android 15 是以 Android 14 所做的變更為基礎,並進一步擴充這項安全性機制。在 Android 15 中,無法安裝 targetSdkVersion 低於 24 的應用程式。要求應用程式符合新型 API 級別,有助於確保安全性和隱私更有保障。

為了規避 Android 較新版本的安全性和隱私權保護措施,惡意軟體通常會鎖定較低的 API 級別。舉例來說,某些惡意軟體應用程式會使用 22 的 targetSdkVersion,以避免受到 Android 6.0 Marshmallow (API 級別 23) 在 2015 年推出的執行階段權限模型。這項 Android 15 變更會讓惡意軟體更難躲過更嚴謹的安全性和隱私權措施。如果嘗試安裝以較低 API 級別為目標的應用程式,將導致安裝失敗,Logcat 也會顯示以下訊息:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

在升級至 Android 15 的裝置上,targetSdkVersion 低於 24 的所有應用程式均不會遭到移除。

如果您需要測試以舊版 API 級別為目標的應用程式,請使用下列 ADB 指令:

adb install --bypass-low-target-sdk-block FILENAME.apk

相機與媒體

Android 15 會對所有應用程式的相機和媒體行為進行下列變更。

現在,在達到資源上限時,直接開啟及卸載音訊播放會使先前開啟的直接或卸載音軌失效

在 Android 15 之前,如果應用程式在其他應用程式播放音訊時要求直接或卸載音訊播放,且達到資源限制,應用程式將無法開啟新的 AudioTrack

自 Android 15 起,當應用程式要求直接或卸載播放,且達到資源限制時,系統會撤銷所有目前開啟的 AudioTrack 物件,使其無法執行新測試群組要求。

(直接和卸載的音軌通常會在壓縮音訊格式播放時開啟。直接播放音訊的常見用途包括透過 HDMI 將編碼音訊串流至電視。卸載軌通常用於在具有硬體 DSP 加速功能的行動裝置上播放壓縮音訊)。

使用者體驗和系統 UI

Android 15 包含一些變更,旨在打造更一致且直覺的使用者體驗。

應用程式已啟用預測返回動畫功能

從 Android 15 開始,我們移除了預測返回動畫的開發人員選項。如果應用程式已選擇啟用預測返回手勢,不論是完全或活動層級,系統現在都會顯示系統動畫,例如返回主畫面、跨工作和跨活動。如果您的應用程式受到影響,請採取下列行動:

  • 請確認應用程式已正確遷移,可使用預測返回手勢。
  • 請確保片段轉場能與預測返回導覽功能搭配運作。
  • 捨棄動畫和架構轉換,並改用動畫和 Androidx 轉場效果。
  • 捨棄 FragmentManager 不知道的返回堆疊。請改用由 FragmentManager 或 Navigation 元件管理的返回堆疊。

淘汰項目

每個版本都有可能過時的 Android API,或需要重構才能提供更優質的開發人員體驗或支援新的平台功能。在這種情況下,我們會正式淘汰過時的 API,並引導開發人員改用其他 API。

「淘汰」代表我們已停止支援 API,但開發人員仍可繼續使用。如要進一步瞭解這個版本的 Android 重要淘汰項目,請參閱淘汰項目頁面