Android 13 為開發人員推出了強大的新功能和 API。以下各節可協助您瞭解應用程式功能,並開始使用相關的 API。
如需新增、修改及移除 API 的詳細清單,請參閱 API 差異比較表。如要進一步瞭解新的 API,請參閱 Android API 參考資料 - 新的 API 會醒目顯示,以利於查看。此外,如要瞭解平台變更可能對應用程式造成的影響,請務必查看指定 Android 13 的應用程式和所有應用程式的 Android 13 行為變更。
開發人員工作效率和工具
主題化應用程式圖示

從 Android 13 開始,您可以選擇啟用主題式應用程式圖示。這項功能可讓支援的 Android 啟動器沿用使用者所選桌布和其他主題的顏色,調整應用程式圖示的色調。
如要支援這項功能,應用程式必須提供動態圖示和單色應用程式圖示,並從資訊清單的 <adaptive-icon>
元素指向單色應用程式圖示。如果使用者已啟用主題化應用程式圖示 (也就是在系統設定中開啟「主題化圖示」切換鈕),且啟動器支援這項功能,系統就會根據使用者所選桌布和主題的配色,調整單色應用程式圖示的色調。
在下列任一情況下,主畫面「不會」顯示主題式應用程式圖示,而是顯示自適應或標準應用程式圖示:
- 如果使用者未啟用主題化應用程式圖示
- 如果應用程式未提供單色應用程式圖示
- 如果啟動器不支援主題化應用程式圖示
如需更多詳細資料和操作說明,請參閱「自動調整圖示」。
個別應用程式語言偏好

在許多情況下,多語言使用者會將系統語言設為某種語言 (例如英文),卻想在特定應用程式中選擇使用其他語言,例如荷蘭文、中文或北印度文。為了讓這類使用者在應用程式中享有更優質的體驗,Android 13 針對支援多種語言的應用程式推出下列功能:
系統設定:提供集中管理各項設定的頁面,使用者可在此為各應用程式選取偏好的語言。
應用程式必須在應用程式資訊清單中宣告
android:localeConfig
屬性,讓系統瞭解應用程式支援多種語言。詳情請參閱這份操作說明,瞭解如何建立資源檔案,並在應用程式的資訊清單檔案中進行宣告。其他 API:利用這類公用 API (例如
LocaleManager
中的setApplicationLocales()
和getApplicationLocales()
方法),應用程式可在執行階段設定與系統語言不同的語言。這些 API 會自動與系統設定保持同步;因此,使用這些 API 建立自訂應用程式內語言選單的應用程式,無論使用者選擇的語言偏好設定為何,都能為使用者提供一致的使用者體驗。此外,公用 API 也有助於減少樣板程式碼的數量,可支援分割 APK,並支援應用程式自動備份功能來儲存應用程式層級的使用者語言設定。
為了提供與 Android 舊版本的回溯相容性,AndroidX 中也提供同等的 API。建議使用 Appcompat 1.6.0-beta01 以上版本新增的 API。
不支援多種語言的應用程式不會受到這些異動影響。
提升文字和語言支援
Android 13 包含多項文字和語言改善功能,可協助您提供更優質的體驗,詳情請參閱下列各節:
更快速的連字
連字可讓換行的文字更容易閱讀,並協助 UI 更具適應性。從 Android 13 開始,連字效能最多可提升 200%,因此您可以在 TextView
中啟用連字功能,幾乎不會影響算繪效能。如要啟用更快速的連字功能,請使用
fullFast
或
normalFast
頻率 (位於
setHyphenationFrequency()
)。
文字轉換 API
日文和中文等語言的使用者會用拼音輸入法,這通常會降低搜尋和自動完成等功能的執行速度。在 Android 13 中,應用程式可以呼叫新的文字轉換 API,讓使用者更輕鬆快速地搜尋內容。舉例來說,過去日本使用者必須執行下列步驟才能搜尋:
- 輸入搜尋字詞的發音 (例如地點或應用程式名稱)
- 使用鍵盤將平假名轉換為漢字
- 使用漢字重新搜尋
- 最後取得搜尋結果
有了新的文字轉換 API,日文使用者只要輸入平假名,就能立即看到漢字的搜尋結果,不必再進行步驟 2 和步驟 3。
改善非拉丁語系文字的行高
Android 13 會配合每個語言調整行高,以改善非拉丁語系文字的呈現方式,例如泰米爾文、緬甸文、泰盧固文和藏文。新的行高設定不僅可避免字元遭裁切,還能改善字元的排版位置。 只要應用程式指定 Android 13,就能使用這些改善功能。這些變更可能會影響非拉丁語言的使用者介面,因此如果你使用新的行距設定,請務必測試應用程式。

改善日文文字換行
從 Android 13 開始,TextViews 可以根據文節 (最小的文字組成單位,讀起來自然而且有意義) 或片語換行,而不是根據字元換行,讓你改善日文應用程式的閱讀體驗。如要運用這個換行功能,只要在 TextView 中使用
android:lineBreakWordStyle="phrase"
即可。

Unicode 程式庫更新
Android 13 新增了 Unicode ICU 70、Unicode CLDR 40 和 Unicode 14.0 的最新改善項目、修正內容和變更。
以下列出幾項重大變更:
- 如果沒有英文 (英國)
en‑GB
的翻譯資源,英文 (加拿大)en‑CA
和英文 (菲律賓共和國)en‑PH
都會改用英文 (美國)en
的翻譯資源。 - 我們為西班牙文
many
、義大利文es
、葡萄牙文it
和葡萄牙文 (葡萄牙)pt
pt‑PT
導入了複數類別。與 CLDR v38 中導入的法文類似,這項功能適用於大數字。
彩色向量字型

從 Android 13 開始,系統支援算繪 COLR 第 1 版 (COLRv1) 字型,並將系統表情符號更新為 COLRv1 格式。COLRv1 是一種極為簡易的字型格式,任何大小都能讓系統輕鬆快速地進行算繪。
系統會自行處理一切,因此大多數的應用程式都能使用 COLRv1。不過,如果應用程式採用自己的文字算繪功能並使用系統字型,建議你測試表情符號算繪。
如要進一步瞭解 COLRv1,請參閱下列資源:
快速設定位置資訊 API
使用者可透過通知面板中的「快速設定」輕鬆變更設定或執行快速動作,不必離開應用程式。對於提供自訂動態磚的應用程式,我們將讓使用者更容易探索及新增動態磚至「快速設定」。現在應用程式可以使用新的動態磚放置 API,提示使用者直接將自訂動態磚新增至一組有效的快速設定動態磚。使用者現在只要透過新的系統對話方塊,就能在不離開應用程式的情況下,一步完成新增動態磚的操作,不必再前往「快速設定」新增動態磚。
剪貼簿預覽
從 Android 13 開始,系統會在內容新增至剪貼簿時,以視覺形式顯示標準的確認內容。新的確認功能會執行以下作業:
- 確認已成功複製內容。
- 提供複製內容的預覽畫面。
這項功能可標準化應用程式複製後顯示的各種通知,讓使用者能進一步控管自己的剪貼簿。如需其他資訊,請參閱「複製及貼上」功能頁面。

預測返回手勢
Android 13 在手機、大螢幕裝置和折疊式裝置等 Android 裝置上推出了預測返回手勢,如要支援這項功能,請更新應用程式。
如需詳細說明文件,請參閱「更新應用程式,支援預測返回手勢」。您也可以試試我們的程式碼研究室。
藍牙 LE Audio
低功耗 (LE) 音訊技術是無線音訊技術,開發目的在於取代傳統藍牙技術及開發特定用途和連線拓撲。透過這項技術,使用者可以與親朋好友分享音訊內容及播放音訊給他們聽,也可以訂閱資訊、娛樂或無障礙用途的公共廣播內容。這項新技術不必耗費大量電力,就可以讓使用者接收高傳真音訊,同時也能在不同用途間流暢切換,這是傳統藍牙技術無法辦到的事。從 Android 13 開始,系統內建支援 LE Audio,因此開發人員可在相容裝置上免費取得這些功能。
MIDI 2.0
從 Android 13 開始,系統支援 MIDI 2.0 標準,包括能夠透過 USB 連接 MIDI 2.0 硬體。這項標準有多項特點,例如提升控制器精度、改善非西方地區的音調支援程度,以及提高使用單一音符控制器時的表現力。
提升啟動畫面效率
Android 13 改善了 Splash Screen API 中動畫啟動畫面的效率:
系統會直接從
AnimatedVectorDrawable
推斷動畫時間長度。在 Android 13 之前,必須直接設定windowSplashScreenAnimationDuration
。使用新的
windowSplashScreenBehavior
屬性,進一步控管應用程式是否一律在 Android 13 以上版本的啟動畫面上顯示圖示。
如要查看詳細說明文件,請參閱「啟動畫面」。
ART 最佳化
在 Android 13 (API 級別 33) 以上版本中,ART 可大幅加快切換至原生程式碼和從原生程式碼切換的速度,JNI 呼叫速度現在最多可提升 2.5 倍。此外,我們也重新設計了執行階段參照處理程序,使其大部分為非封鎖作業,進一步減少卡頓情形。此外,您可以使用 Reference.refersTo()
公開 API 更快回收無法存取的物件,而且由於類別和方法查詢經過最佳化,您會發現解譯器現在速度更快。ART 也會在安裝時執行更多位元碼驗證,避免在執行階段進行驗證,並維持快速的應用程式啟動時間。
隱私權與安全性
為已註冊使用情境的接收端提供更安全的匯出服務
為確保執行階段接收器安全無虞,Android 13 推出新功能,可讓應用程式指定是否要匯出已註冊的廣播接收器,並向裝置上的其他應用程式顯示。在舊版 Android 中,裝置上的任何應用程式都可以將未受保護的廣播傳送至動態註冊的接收器,除非該接收器受到簽章權限保護。
如果應用程式符合下列至少一項條件,即可使用這項匯出設定:
- 使用 AndroidX Core 程式庫 1.9.0 以上版本的
ContextCompat
類別。 - 指定 Android 13 以上版本為目標。
相片挑選工具
Android 13 (API 級別 33) 以上版本提供相片挑選工具體驗。應用程式啟動相片挑選工具時,使用者可以選取要與應用程式分享的特定圖片和影片 (例如個人資料相片),不必授予應用程式整個媒體庫的存取權。建議您採用這種方式存取使用者的相片和影片。
相片挑選工具可為使用者提供更完善的隱私權保護,因為您的應用程式不需要宣告任何執行階段權限。此外,相片挑選工具還為應用程式提供內建的標準化 UI,打造更一致的使用者體驗。
鄰近 Wi-Fi 裝置的新執行階段權限
Android 13 (API 級別 33) 在 NEARBY_DEVICES
權限群組中導入新的執行階段權限,適用於管理裝置與附近存取點 Wi-Fi 連線的應用程式。這些應用程式必須在呼叫多個不同的 Wi-Fi API 時,宣告新的權限 NEARBY_WIFI_DEVICES
。此外,只要應用程式不從 Wi-Fi API 衍生實際位置,指定 Android 13 以上版本時,就不需要聲明 ACCESS_FINE_LOCATION
權限。
進一步瞭解鄰近 Wi-Fi 裝置權限。
新權限:使用精確鬧鐘
如果應用程式指定 Android 13 以上版本,可以使用 USE_EXACT_ALARM
權限,系統會自動授予這項權限。不過,應用程式必須符合下列至少一項條件,才能使用這項權限:
- 應用程式是鬧鐘或計時器應用程式。
- 應用程式是日曆應用程式,而且會顯示近期活動的通知。
如果應用程式會設定精確鬧鐘,但不符合上一節清單中的任一情況,請繼續聲明 SCHEDULE_EXACT_ALARM
權限,並做好使用者拒絕存取應用程式的準備。
開發人員可降級權限
從 Android 13 開始,應用程式可以撤銷對未使用執行階段權限的存取權。這項 API 可讓應用程式執行下列隱私權強化工作:
- 移除未使用的權限。
- 遵循權限最佳做法,提升使用者信任度。建議您向使用者顯示對話方塊,說明您主動撤銷的權限。
APK 簽署配置 v3.1
Android 13 新增對 APK 簽署配置 v3.1 的支援,可改善現有的 APK 簽署配置 v3。這個配置解決了 APK 簽署配置 v3 的部分已知問題,包括輪替問題。具體來說,v3.1 簽章配置支援 SDK 版本指定,因此輪替作業可以指定平台後續版本。
v3.1 簽章配置使用的區塊 ID 在 12L 以下版本無法辨識。因此,平台會套用下列簽署者行為:
- 搭載 Android 13 以上版本的裝置會使用 v3.1 區塊中的輪替簽署者。
- 搭載舊版 Android 的裝置會忽略輪替簽署者,改為使用 v3.0 區塊中的原始簽署者。
如果應用程式尚未輪替簽署金鑰,則不需要採取任何額外行動。這些應用程式選擇輪替時,系統預設會套用 v3.1 簽章配置。
如果應用程式已輪替,且想繼續在 3.0 版簽署區塊中使用輪替後的簽署金鑰,則必須更新 apksigner
呼叫:
apksigner sign --ks keystore.jks | --key key.pk8 --cert cert.x509.pem --rotation-min-sdk-version API_LEVEL [signer_options] app-name.apk
...其中 API_LEVEL
為 32 以下。
改善 Keystore 和 KeyMint 中的錯誤報告
對於會產生金鑰的應用程式,KeyStore 和 KeyMint 現在會提供更詳細且準確的錯誤指標。我們在 java.security.ProviderException
下方新增了例外狀況類別階層,其中包含 Android 專屬例外狀況,例如 Keystore/KeyMint 錯誤代碼,以及錯誤是否可重試。您也可以修改金鑰產生和使用 (簽署、加密) 的方法,以擲回新的例外狀況。改良後的錯誤回報功能不只適用於金鑰產生作業,現在應該能提供您重試金鑰產生作業所需資訊。
支援平板電腦和大螢幕
Android 13 延續了 Android 12 和 12L 功能推送中推出的平板電腦最佳化功能,包括系統 UI 最佳化、更完善的多工處理功能,以及改良的相容模式。測試時,請務必確認應用程式在平板電腦和其他大螢幕裝置上呈現最佳狀態。
如要進一步瞭解新功能和測試項目,請參閱「支援平板電腦和大螢幕」頁面。
圖形
可程式化著色器

從 Android 13 開始,系統支援可程式化的 RuntimeShader
物件,並使用 Android 圖形著色語言 (AGSL) 定義行為。AGSL 的語法大部分與 GLSL 相同,但 AGSL 是在 Android 算繪引擎中運作,可自訂 Android 畫布內的繪製方式,以及篩選 View 內容。Android 會在內部使用這些著色器,實作波紋效果、模糊和延展捲動溢位。Android 13 以上版本可讓您為應用程式建立類似的進階效果。
編舞家功能改善項目
Android 13 推出公開 API 方法,可為 Choreographer
和 ASurfaceControl
提供更多可能的影格時間軸資訊,並為 SurfaceFlinger
新增影格生命週期相關背景資訊。與先前類似,應用程式可以發布回呼至 Choreographer
,並接收影格時間軸資訊。在 Android 13 (API 級別 33) 中,Choreographer
會傳回多個可能的顯示時間,以及對應的影格期限。應用程式可以選擇顯示時間,並隨後通知 SurfaceFlinger
所選時間。SurfaceFlinger
就不會嘗試在所需呈現時間之前套用交易或閂鎖緩衝區。

相機
HDR 影片擷取
自 Android 13 起,Camera2 API 支援高動態範圍 (HDR) 影片拍攝功能,讓您使用相機預覽及錄製 HDR 影片內容。相較於標準動態範圍 (SDR),HDR 提供更廣泛的色彩範圍,並提高亮度元件的動態範圍 (從目前的 100 cd/m2 提高至 1000 cd/m2)。這項技術可呈現更豐富的色彩、更明亮的亮部和更深沉的陰影,讓影片畫質更貼近現實。
如要進一步瞭解 HDR 影片擷取功能,請參閱「HDR 影片擷取」說明文件。
媒體
空間音訊
空間音訊提供身歷其境的聽覺饗宴,讓使用者享受更逼真的媒體內容。如要瞭解如何整合這項功能,請參閱空間音訊說明文件。
預期性音訊路由
為協助媒體應用程式判斷音訊的轉送方式,Android 13 在 AudioManager
類別中導入音訊路徑 API。您可以使用 getAudioDevicesForAttributes()
API 擷取可用於播放指定音訊的裝置清單,並透過 getDirectProfilesForAttributes()
API 瞭解音訊串流是否可直接播放。使用這些 API 判斷最適合音軌的AudioFormat
。
無障礙設定
口述影像
Android 13 (API 級別 33) 推出全新的系統層級無障礙偏好設定,讓使用者在所有應用程式中啟用語音說明。口述影像是一段額外的旁白音軌,由旁白員在音訊自然暫停時,描述簡報內容和畫面上的情況。應用程式可以透過 isAudioDescriptionRequested()
查詢使用者偏好的語音導覽音軌,如下列程式碼片段所示:
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (accessibilityManager.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
應用程式可以將監聽器新增至 AccessbilityManager
,監控使用者的偏好設定變更:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }
核心功能
OpenJDK 11 更新
Android 13 開始更新 Android 核心程式庫,以便與 OpenJDK 11 LTS 版本保持一致,包括程式庫更新以及應用程式與平台開發人員的 Java 11 語言支援。Android 13 推出的核心程式庫變更,也會透過 Google Play 系統更新提供給 Android 12 裝置,更新 ART Mainline 模組。
Android 13 核心程式庫的異動如下:
- 支援本機變數的
var
關鍵字,以及 lambda 的參數。 String 類別中的新方法:
isBlank()
lines()
repeat()
strip()
stripLeading()
stripTrailing()
支援
Collection.toArray(IntFunction)
,方便您將集合調整為陣列。支援
java.util
類別Optional
、OptionalDouble
、OptionalInt
和OptionalLong
中的ifPresentOrElse()
、isEmpty()
、orElseThrow()
和stream()
。擴充
SocketOptions
的支援,包括重複使用通訊端。NullReader
、NullWriter
、InputStream
、OutputStream
和transferTo()
Reader
功能,可將讀取的字元轉移至Writer
。新增使用
Charsets
進行網址編碼和解碼的功能。Charset
功能,適用於FileReader
、FileWriter
、PrintStream
和PrintWriter
。適用於
ByteArrayInput
或OutputStream
和Input
或OutputStream
的新transferTo()
、readNBytes()
、readAllBytes()
和writeBytes()
函式。支援
java.lang.invoke.VarHandle
的執行階段和編譯器。使用
VarHandle
在內部將java.util.concurrent
更新至 OpenJDK 11 API。
Java 和 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。