歡迎來到 Now in Android,這個持續更新的指南會介紹 Android 開發領域的最新消息和重要資訊。
請繼續閱讀,瞭解 Android 16 QPR2 Beta 1、Android Studio Narwhal 功能發布、Jetpack Compose 1.9、Media 3 1.8、形狀變形和 Compose 中的自動填入等內容。
你可以觀看影片摘要:
我們也有 Podcast。
但這篇文章提供最深入的資訊,請繼續閱讀!
Android 16 QPR2 Beta 版 1 隆重登場 ✨
Android 16 QPR2 的第一個 Beta 版現已推出,這是首個搭載 Android 次要 SDK 版本的 Android 版本。次要 SDK 版本可能包含擴充平台功能的新 API,但不會造成targetSdkVersion受限的行為變更,因此您只需要針對這些版本測試應用程式,即可將測試量降到最低。
您可以針對 VERSION_CODES_FULL 列舉檢查 SDK_INT_FULL,藉此呼叫新 API:
if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { // Call new APIs from the Android 16 QPR2 release }
VERSION_CODES_FULL 無法用於 uses-sdk 資訊清單屬性。
以下列舉 QPR2 Beta 1 的幾項重大更新。
使用者介面、系統體驗和無障礙功能:
- 擴展深色主題選項會智慧反轉淺色應用程式,適合偏好深色外觀的使用者。
- 如果應用程式未提供單色圖層,系統可以自動生成套用主題色的應用程式圖示。
- 互動式選擇器工作階段會在分享畫面開啟時,使用
ChooserManager和ChooserSession保持應用程式 UI 處於啟用狀態。 - 新的 Data Transfer API 可讓 Android 和 iOS 之間的資料移轉作業更可靠安全,因此您必須更新應用程式的資料擷取規則 XML 和
BackupAgent實作項目。 android.graphics.pdf套件已擴充,支援透過PdfRenderer.Page註解及編輯 PDF 文件。ViewConfiguration值現在會根據個別虛擬裝置調整;如要使用多螢幕,請遷移至ViewConfiguration.get(context)。- 您可以指定
VibrationAttributes,進一步控制觸覺回饋View.performHapticFeedback(HapticFeedbackRequest) - 現在可以將快速設定圖塊指派給
AndroidManifest.xml檔案中的預先定義類別。
媒體與音訊:
- 軟體解碼沉浸式音訊模型和格式 (IAMF),這是一種開放式空間音訊格式。
- 藍牙 LE Audio 裝置的個人音訊分享功能直接整合到系統的輸出端切換器。
- 使用者可以透過 HDR/SDR 亮度滑桿控制 HDR 亮度
- 相片挑選器外掛程式可以醒目顯示特定相簿或搜尋查詢。
連線:
- 透過 Companion Device Management (CDM) 強化功能,您可以提供自訂裝置圖示、監聽
EVENT_ASSOCIATION_REMOVED回呼,以及使用 DeviceId 啟用跨應用程式驗證。 - 藍牙更新包括支援
BluetoothLeScanner的被動掃描 (ScanSettings.SCAN_TYPE_PASSIVE)、配對遺失原因 (BluetoothDevice.EXTRA_BOND_LOSS_REASON),以及直接擷取服務 UUID (BluetoothDevice.EXTRA_UUID_LE)。 - Wi-Fi RTT 測距更新 (
RttStationRangingParams) 支援對電台測距。 - 現在可以使用新的
PhoneNumberManager,從 IMS P-Associated-URI 標頭剖析及驗證電話號碼。 - MediaRouter 網路隱私權改善功能可透過藍牙和 UWB 等新媒體投放內容;您應使用系統輸出切換器,或要求
NEARBY_DEVICES權限,以便使用自訂應用程式內選取器。
隱私權與安全性:
- 新的系統層級安全狀態「安全鎖定裝置」會鎖定裝置,且必須通過主要驗證才能解鎖。
- 新增「手機失竊防護」的使用者切換鈕,可啟用/停用「驗證失敗鎖定」。
開發人員生產力:
- 新的
AppWidgetManagerAPI 可讓您查詢小工具參與度指標。 - 透過 ADB 安裝的可偵錯應用程式,現在會收到 16 KB 分頁大小相容性的早期警告。
ProfilingManager新增對系統啟動的剖析觸發條件和requestRunningSystemTrace的支援,可擷取背景追蹤記錄。- 「開發人員選項」中的「詳細列印記錄」切換鈕,可提供 Android 列印架構的額外偵錯資訊。
- 透過新的
UiAutomationAPI,您可以在非預設螢幕上截圖,並使用公開AccessibilityWindowInfo.refresh,更全面地測試電腦版和多螢幕體驗。 - 新增對新版
androidx.core:core-backported-fixes程式庫的 API 支援。 - Linux 終端機現在支援 GUI 應用程式
WindowInspector.addGlobalWindowViewsListener支援即時根檢視區塊變更通知。
您可以註冊任何支援的 Pixel 裝置,透過無線更新接收 Beta 版更新,或在 Android Studio 中使用 Android Emulator 搭配 64 位元系統映像檔。平台穩定性預計於 2025 年 10 月推出。
Android Studio Narwhal 功能推送穩定版現已推出,歡迎開始使用「代理程式模式」🐳
Android Studio Narwhal 功能推送現已穩定,新功能和強化項目包括:
- Android Studio 內建 Gemini:Agent Mode 可用於多階段程式設計工作
- 提示庫 規則:根據專案需求自訂 Gemini 的 AI 輸出內容。
- 使用 Gemini 轉換 UI:使用自然語言 UI 疊代 Compose UI。
- 沉浸式開發支援:內建 Android Emulator for XR、全新 XR 範本,以及內建 XR 版面配置檢查器
- 透過 Android 裝置串流,擴大裝置存取範圍 (Android 合作夥伴裝置實驗室)。
- 更優質的 Compose 預覽:改善程式碼導覽功能,並推出新的 Compose 預覽選擇器
- 預設啟用 K2 Kotlin 編譯器,提升建構效能
- 16 KB 頁面大小工具,提供 Lint 警告、分析和模擬器,協助您為即將推出的 16 KB 頁面大小裝置做好準備。
Android 裝置串流 (由 Firebase 提供技術支援)
Android 裝置串流 (由 Firebase 提供技術支援) 穩定支援 Android 合作夥伴裝置實驗室,讓您遠端連線至 OEM 合作夥伴 (包括 Samsung、小米、OPPO、OnePlus 和 vivo) 託管的實體 Android 裝置。
每月發布 Android Studio 版本,加速開發作業,發布頻率是先前的 2 倍
Android Studio 將改為每月發布穩定版,以便更快提供新功能和重大錯誤修正。Android Studio IDE 每月都會更新,IntelliJ 平台新版本則每隔幾個月推出一次,功能推送則會填補這段期間的穩定版本。Android Emulator 和 Android Gradle 外掛程式仍會每兩個月分開更新。我們長期投入測試基礎架構,因此能加快發布時程。
Jetpack Compose 2025 年 8 月發布版本的新功能 🚀
Jetpack Compose 2025 年 8 月版 (1.9 版) 現已穩定發布。這個版本推出 Modifier.dropShadow 和 Modifier.innerShadow,可算繪陰影效果。新的 onVisibilityChanged 和 onFirstVisible 修飾符可讓您追蹤元素顯示狀態,以進行 UI 更新或記錄曝光次數。您可以使用 TextFieldBuffer.addStyle 進行文字轉換,在 OutputTransformation 中套用豐富的樣式。
LazyLayout 建構區塊現在已穩定,您可以定義 LazyLayoutCacheWindow,透過強化預先擷取功能提升 Lazy List 和 Grid 效能。Scrollable2D 支援二維捲動,包括快速捲動和巢狀捲動,並改善捲動和巢狀捲動與檢視區塊的互通性。選擇加入的 API (Composer.setDiagnosticStackTraceEnabled) 會在堆疊追蹤中提供更豐富的當機位置詳細資料,建議僅用於偵錯版本。新的 @RememberInComposition 和 @FrequentlyChangingValue 註解,以及相關聯的 Lint 檢查,都可在新的執行階段註解程式庫中使用。您可以使用 Modifier.appendTextContextMenuComponents 和 Modifier.filterTextContextMenuComponents 自訂內容選單。現在必須使用 Android Gradle 外掛程式 (AGP) / Lint 8.8.2 以上版本。
Media3 1.8.0 - 新功能 🚀
Media3 1.8.0 版現已推出,提供多項新功能和改善項目。ExoPlayer 新增了適用於使用者頻繁搜尋的快轉模式,您可透過 ExoPlayer.setScrubbingModeEnabled 啟用這項模式。HlsInterstitialsAdsLoader 現在支援伺服器導向的廣告插播直播。
MetadataRetriever 已更新,現在可讓您在不播放媒體項目的情況下擷取媒體項目長度。在 Transformer 中,本次發布內容引進了更快速的修剪作業,可透過 MP4 編輯清單搭配 experimentalSetMp4EditListTrimEnabled,以及透過 CodecDbLite 啟用晶片組專屬的編碼器最佳化功能,方法是在 DefaultEncoderFactory.Builder 上呼叫 setEnableCodecDbLite。
其他更新包括 Downloader 中的部分下載支援 (使用 PreCacheHelper)、ExoPlayer 中的自動 XR 音訊路徑,以及更有效率的 MediaCodec 互動。MediaSession 模組現在預設會延長通知顯示時間,媒體工作階段試用版應用程式則會展示播放續播功能。我們以 Kotlin 和 Compose 建構了全新的 Composition 試用版應用程式,展示進階的多素材資源影片編輯功能。
文章 📚
#WeArePlay:認識為永續發展世界編碼的人們
#WeArePlay 計畫旨在表揚有助於解決環境問題的 Android 應用程式和遊戲。Mayla、Flávia、Andréia 和 Ariane 開發的遊戲 BoRa - Iguaçu National Park,在遊客參觀公園時提供遊戲化且容易上手的互動式體驗,寓教於樂。Louis 和 Justin 開發的 CyberTracker 應用程式提供以圖示為主的介面,讓不識字的當地追蹤員也能記錄生物多樣性資料,協助保育工作。最後,由 Bharati 和 Saurabh 共同創立的 Earth5R 提供環境教育,並為使用者提供實習和專案機會,培養綠色經濟相關技能。
什麼是 HDR? 🌟
高動態範圍 (HDR)可讓 Android 開發人員將峰值亮度調高至超出標準動態範圍 (SDR),進而提升影像保真度。Android 支援影片和圖片的 HDR,包括可回溯相容的 UltraHDR 等技術。
瞭解色彩包含三個元件:
- 位元深度:定義色彩呈現的精確度,深度越高,色彩轉換越平滑。
- 轉換函式:將數值像素值對應至顯示的亮度或顏色,並根據非線性的人類視覺反應進行調整。例如 sRGB、HLG 和 PQ。
- 色域:代表裝置可重現的顏色範圍。
關於 HDR 的常見誤解:
- 鮮豔色彩:在 HDR 推出前,Display P3 和 Adobe RGB 等更廣泛的色域就已存在,即使是 BT.2020 內容,大多數螢幕仍會剪輯至 P3。
- 對比度更高/黑色細節更豐富:在同一部螢幕上,HDR 本身不會比 SDR 呈現更深沉的黑色。OLED 螢幕可提供無限對比度,雖然 PQ 會為暗部區域分配更多位元,但這並非通用 HDR 功能。
- 位元深度較高:部分 HDR 影片設定檔 (例如 HDR10) 使用 10 位元或 12 位元串流,但這是這些設定檔的特點,並非 HDR 本身所具備;其他影像格式也常見位元深度較高的情況。
HDR 主要代表 更高的峰值亮度。這個「HDR 預留空間」定義為相對於 SDR 的浮動區域。傳統 HDR 影片通常會編碼固定動態範圍,但現代螢幕使用動態範圍,因此可能導致品質差異。Ultra HDR 和增益對映等技術可有效運用位元,提供替代方案。Android 的 UI 工具包會使用 extendedRangeBrightness API 提供 HDR 體驗,即使是 RGBA_8888 也是如此。
影片 📹
使用形狀變形效果的進階共用元素 | Jetpack Compose 提示
Jetpack Compose 現在支援進階共用元素轉換、精細的形狀變形和顯示動畫。開發人員可以在應用程式的頂層設定 SharedTransitionLayout,並使用 Modifier.sharedBounds 連結元素。
形狀變形是主要的新功能,可運用 Material 3 的 AndroidX 圖形形狀程式庫達成。這包括建立具有定義開始/結束形狀的 Morph 物件、使用 animateFloat (來自 AnimatedVisibilityScope) 驅動其進度,以及透過自訂 OverlayClip 將其套用為剪輯片段。顯示效果會使用 skipToLookaheadSize 和 skipToLookaheadPosition。所有這些進階動畫也與預測返回手勢相容。
Android Studio 內建多模態 Gemini:AI 輔助 UI 開發
Android Studio 中的 Gemini AI 可從設計稿生成程式碼 (包括圖片轉程式碼),使用合成資料建立 Compose 預覽畫面,以及透過直接指令調整現有 UI,協助您開發 UI。
使用支援執行階段的 SDK
Android 14 推出 SDK 執行階段,這項新技術可將第三方 SDK 隔離在安全的獨立程序沙箱中,進一步提升隱私權和安全性。
開發人員:
- 支援執行階段 (RE) 的 SDK 會在這個獨立程序中執行。
- 支援執行階段 (RA) 的 SDK 會在應用程式中擔任中介角色。
- 使用
SdkSandboxManagerCompat載入 RE SDK,並遵守限制 (例如前景、單一載入)。 - 墊片工具可簡化低階的程序間通訊。
- 使用
SandboxedSdkView和SandboxedUiAdapter,從 RE SDK 算繪 UI。 - 使用
SdkActivityLauncher從 SDK 執行階段啟動活動。
WearOS Material Design 3 形狀變形 | Jetpack Compose 提示
Compose 適用的 Wear OS Material 3 現在可簡化形狀變形作業。開發人員可以輕鬆使用 IconButtonDefaults.animatedShapes,在圓形按鈕中加入形狀變化的動畫效果;使用 ButtonGroup 元件和 Modifier.animateWidth() 建立按鈕群組,讓寬度變化產生動畫效果;以及建構垂直捲動清單 (TransformingLazyColumn),讓項目在接近螢幕邊緣時使用 TransformationSpec 縮放及變形。
AndroidX 版本發布 🚀
以下摘要說明 AndroidX 的異動內容,並優先列出與 Android 應用程式開發人員最相關的項目:
Compose 程式庫的整體影響變化:
- 預設
minSdk提升至 API 23:對於androidx.compose、animation、foundation、material、runtime和ui,預設最低 SDK 版本已從 API 21 移至 API 23。也就是說,如果您使用這些 Compose 程式庫的最新 Alpha 版,應用程式會隱含要求 Android 6.0 (Marshmallow) 以上版本。
Compose 開發人員的主要異動:
- 新保留 API (Compose 執行階段):推出類似
rememberSaveable的保留 API,但適用於離開組合階層且未序列化的值。與儲存的值相比,它具有較短的生命週期,且行為與ViewModel類似,可為可能進入和退出組合項的可組合函式提供新的狀態管理方式。 - 強化共用元素轉換 (Compose 動畫和 UI):新增 API,可動態啟用/停用共用元素、考量進行中的轉換,以及在共用元素遭到處置時設定替代目標界線。此外,還提供新的
Modifier.skipToLookaheadPosition,可錨定版面配置。 - 改善分頁器預先擷取功能 (Compose Foundation):分頁器的預先擷取策略現在會使用「快取視窗」(1 個可視區域大小),而非單一項目,且預設會啟用初始預先擷取功能。系統也會保留項目較長時間,讓捲動更順暢。
- 滑鼠/觸控板的焦點處理機制經過改良 (Compose Foundation 和 UI):現在,當指標向下事件 (來自滑鼠或觸控板) 發生在焦點節點外部時,
ComposeViews會自動清除焦點。你可以選擇停用這項功能。 - 可自訂的焦點矩形 (Compose Foundation):
FocusProperties現在可讓您定義自訂焦點區域,而非預設為定界框,改善可捲動容器中的焦點周遊和「保持在檢視畫面中」邏輯。 - LifecycleOwner 可組合函式 (生命週期):這個新可組合函式可直接在 UI 樹狀結構中建立範圍內的
LifecycleOwner執行個體。這項功能特別適合獨立管理元件生命週期,以及用於 Navigation 等程式庫。 - 支援
SavedStateHandle中的可為空值型別 (Lifecycle和SavedState):在SavedStateHandle和SavedStateRegistryOwner中提供原生支援,簡化可為空值屬性的儲存和還原作業。 - 新
LineHeightStyle.Mode.Tight(Compose 基礎和 UI):即使可能截斷較高的字形,新的「緊密」模式仍會強制縮小行高,提供更精確的文字版面配置控制項。 - 輕觸兩下即可選取字詞 (Compose Foundation):新增支援在
SelectionContainer和BasicTextField中輕觸兩下選取字詞。 - WindowInsets 行為變更 (Compose UI 和基礎):
◦ 新增WindowInsets.cutoutPathAPI,可取得螢幕凹口的路徑。
◦ 移除isWindowInsetsDefaultPassThroughEnabled標記,預設為不消耗WindowInsets,允許子項 View 接收。 AndroidViewrequestRectangleOnScreen修正 (Compose Foundation):AndroidView 發出的要求 (例如EditText嘗試留在畫面上) 現在會正確傳播至 Compose。- 改良 2D 滑鼠滾輪捲動功能 (Compose Foundation 和 UI):更完善地支援 2D 滑鼠滾輪捲動事件,並提供新的測試 API 和控制行為的標記。
新程式庫與公用程式:
androidx.core:core-backported-fixes(新程式庫):開發人員可透過這個新程式庫,檢查裝置是否已套用重大錯誤修正 (例如特定攝影機錯誤等平台層級問題)。這樣一來,您就能根據已知錯誤是否已修正,提供不同的使用者體驗。
其他重大異動:
- 遊戲活動和輸入:新增 16 KB 分頁大小的預設支援,以及
GameActivity的滑鼠支援。 - Material3 工具提示位置:工具提示提供更多位置供應器,可放置在錨點上方、下方、左側或右側。
- Material3
DatePicker修正:確保 DatePicker 會根據自己的語言代碼設定數字格式,並修正 RTL 顯示問題。 - 支援 TWA display_override (瀏覽器):新增支援
display_overrideTWA 資訊清單屬性,可進一步控管 TWA 顯示畫面。 - 在外部應用程式 (瀏覽器) 中啟動初始網址:新增 Intent,允許在外部瀏覽器中啟動 TWA 的初始網址。
Android Developers Backstage
Android Developers Backstage 推出新一集節目。
Compose 中的自動填入功能
Jetpack Compose 1.8 運用 Compose 的語意系統,大幅改善自動填入功能。開發人員現在只要使用相關內容類型語意 (例如使用者名稱、密碼) 標記文字欄位,即可輕鬆整合系統層級的自動填入功能,不必手動管理自動填入樹狀結構,還能提升效能。
那麼… 👋
本期內容就到此為止,涵蓋 Android 16 QPR2 Beta 版 1、Android Studio Narwhal 功能發布、Jetpack Compose 1.9、Media 3 1.8、形狀變形和 Compose 中的自動填入等主題。
請稍後回來查看 Android 開發人員宇宙的最新消息!
繼續閱讀
-
社群
Android 最近宣布推出開發人員驗證功能,這項額外的安全措施可防堵惡意行為人,讓他們難以造成危害。
Matthew Forsythe • 閱讀時間:2 分鐘
-
社群
不用再繼續等候!我們非常高興能在此公布 2026 年 Google Play 應用程式加速器計畫的參與者。
Robbie McLachlan • 1 分鐘小故事
-
社群
在最新的 #WeArePlay 影片中,我們認識了 Adriano、Wagner 和 Grazyelle。這三位創辦人開發的 Matraquinha 應用程式,已協助 80 多個國家/地區的數千名無口語能力兒童與人溝通。
Robbie McLachlan • 閱讀時間:2 分鐘
隨時掌握最新消息
每週透過電子郵件接收最新的 Android 開發洞察資訊。