歡迎收看「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 處於啟用狀態。 - 新的資料移轉 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 功能推送現已穩定,新功能和強化項目包括:
- Gemini 版 Android Studio:Agent Mode 可用於多階段程式設計工作
- 提示庫 規則:根據專案需求自訂 Gemini 的 AI 輸出內容。
- 使用 Gemini 轉換 UI:使用自然語言 UI 疊代 Compose UI。
- 沉浸式開發支援:內建 Android Emulator、全新 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 更新或記錄曝光次數。您可以在 OutputTransformation 中使用 TextFieldBuffer.addStyle 進行文字轉換,套用豐富的樣式。
LazyLayout 建構區塊現在已穩定,您可以定義 LazyLayoutCacheWindow,透過強化預先擷取功能提升 Lazy List 和 Grid 效能。Scrollable2D 支援二維捲動,包括快速捲動和巢狀捲動,並改善捲動和巢狀捲動與 Views 的互通性。選擇加入的 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 開發洞察資訊。