Android 16 เปิดตัวฟีเจอร์และ API ใหม่ๆ ที่ยอดเยี่ยมสำหรับนักพัฒนาแอป ส่วนต่อไปนี้จะสรุปฟีเจอร์เหล่านี้เพื่อช่วยให้คุณเริ่มต้นใช้งาน API ที่เกี่ยวข้องได้
ดูรายการ API ใหม่ แก้ไข และนําออกอย่างละเอียดได้ที่รายงานความแตกต่างของ API ดูรายละเอียดเกี่ยวกับ API ใหม่ได้ที่เอกสารอ้างอิง Android API โดย API ใหม่จะได้รับการไฮไลต์ไว้ให้มองเห็นนอกจากนี้ คุณควรตรวจสอบส่วนต่างๆ ที่การเปลี่ยนแปลงแพลตฟอร์มอาจส่งผลต่อแอปของคุณด้วย ดูข้อมูลเพิ่มเติมได้ที่หน้าต่อไปนี้
- การเปลี่ยนแปลงลักษณะการทำงานที่ส่งผลต่อแอปเมื่อกำหนดเป้าหมายเป็น Android 16
- การเปลี่ยนแปลงลักษณะการทำงานที่ส่งผลต่อแอปทั้งหมดโดยไม่คำนึงถึง
targetSdkVersion
ฟังก์ชันหลัก
Android มี API ใหม่ที่ขยายความสามารถหลักของระบบ Android
Android API 2 รุ่นในปี 2025
- ตัวอย่างนี้เป็นเวอร์ชันหลักรุ่นถัดไปของ Android ซึ่งมีกำหนดเปิดตัวในไตรมาสที่ 2 ของปี 2025 เวอร์ชันนี้คล้ายกับ API ทั้งหมดของเราในอดีต ซึ่งเราอาจมีการเปลี่ยนแปลงลักษณะการทำงานตามแผนที่วางไว้ซึ่งมักเชื่อมโยงกับ targetSdkVersion
- เราวางแผนที่จะเปิดตัวรุ่นหลักเร็วขึ้น 1 ไตรมาส (ไตรมาสที่ 2 แทนที่จะเป็นไตรมาสที่ 3 ของปีก่อนๆ) เพื่อให้สอดคล้องกับกำหนดการเปิดตัวอุปกรณ์ในระบบนิเวศของเรามากขึ้น เพื่อให้อุปกรณ์จำนวนมากขึ้นได้รับ Android เวอร์ชันหลักได้เร็วขึ้น เนื่องจากจะมีการเปิดตัวรุ่นหลักในไตรมาสที่ 2 คุณจะต้องทำการทดสอบความเข้ากันได้ประจำปีก่อนเวลาปกติ 2-3 เดือนเพื่อให้แน่ใจว่าแอปของคุณพร้อมใช้งาน
- เราวางแผนที่จะเปิดตัวอีกรุ่นในไตรมาสที่ 4 ของปี 2025 ซึ่งจะมี API ใหม่สำหรับนักพัฒนาแอปด้วย เวอร์ชันหลักในไตรมาสที่ 2 จะเป็นเวอร์ชันเดียวในปี 2025 ที่มีการเปลี่ยนแปลงลักษณะการทำงานตามแผนที่อาจส่งผลต่อแอป
นอกจาก API ใหม่สำหรับนักพัฒนาแอปแล้ว รุ่นย่อยในไตรมาสที่ 4 จะรวมการอัปเดตฟีเจอร์ การเพิ่มประสิทธิภาพ และการแก้ไขข้อบกพร่อง แต่จะไม่มีการเปลี่ยนแปลงลักษณะการทำงานที่ส่งผลต่อแอป
เราจะยังเผยแพร่ Android แบบรายไตรมาสต่อไป การอัปเดตในไตรมาสที่ 1 และ 3 ระหว่างการเปิดตัว API ต่างๆ จะเป็นการเพิ่มการอัปเดตเพื่อช่วยให้มั่นใจถึงคุณภาพอย่างต่อเนื่อง เรากำลังทำงานร่วมกับพาร์ทเนอร์อุปกรณ์ของเราอย่างจริงจังเพื่อทำให้รุ่น Q2 พร้อมให้บริการในอุปกรณ์จำนวนมากที่สุด
การใช้ API ใหม่กับรุ่นหลักและรุ่นย่อย
การป้องกันบล็อกโค้ดด้วยการตรวจสอบระดับ API ทำได้โดยใช้ค่าคงที่ SDK_INT
กับ VERSION_CODES
เราจะยังคงรองรับฟีเจอร์นี้ใน Android ทุกรุ่นหลักต่อไป
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
คุณสามารถใช้สแตติก SDK_INT_FULL
ใหม่ในการตรวจสอบ API กับทั้งเวอร์ชันหลักและรองได้โดยใช้การแจกแจง VERSION_CODES_FULL
ใหม่
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
นอกจากนี้ คุณยังใช้วิธีนี้เพื่อดูเฉพาะเวอร์ชันย่อยของ SDK ได้ด้วย
Build.getMinorSdkVersion()
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
API เหล่านี้ยังไม่เสร็จสมบูรณ์และอาจมีการเปลี่ยนแปลง ดังนั้นโปรดส่งความคิดเห็นถึงเราหากมีข้อกังวล
ประสบการณ์ของผู้ใช้และ UI ของระบบ
Android 16 ช่วยให้นักพัฒนาแอปและผู้ใช้มีการควบคุมและความยืดหยุ่นมากขึ้นในการกำหนดค่าอุปกรณ์ให้เหมาะกับความต้องการ
การแจ้งเตือนที่เน้นความคืบหน้า
Android 16 เปิดตัวการแจ้งเตือนที่เน้นความคืบหน้าเพื่อช่วยผู้ใช้ติดตามเส้นทางตั้งแต่ต้นจนจบที่ผู้ใช้เป็นผู้เริ่มได้อย่างราบรื่น
Notification.ProgressStyle
เป็นการแจ้งเตือนรูปแบบใหม่ที่ให้คุณสร้างการแจ้งเตือนที่เน้นความคืบหน้า กรณีการใช้งานหลัก ได้แก่ บริการร่วมเดินทาง การนำส่ง และการนำทาง ภายในNotification.ProgressStyle
คลาส คุณสามารถระบุสถานะและเหตุการณ์สำคัญในเส้นทางของผู้ใช้โดยใช้จุดและกลุ่ม
ดูข้อมูลเพิ่มเติมได้ที่หน้าเอกสารประกอบเกี่ยวกับการแจ้งเตือนที่เน้นความคืบหน้า
การอัปเดตการย้อนกลับที่คาดการณ์ได้
Android 16 เพิ่ม API ใหม่เพื่อช่วยให้คุณเปิดใช้การเคลื่อนไหวของระบบแบบคาดเดาสำหรับการนําทางด้วยท่าทางสัมผัส เช่น การเคลื่อนไหวกลับไปยังหน้าแรก การลงทะเบียน onBackInvokedCallback
ด้วย PRIORITY_SYSTEM_NAVIGATION_OBSERVER
ใหม่จะช่วยให้แอปของคุณได้รับการเรียก onBackInvoked
ปกติทุกครั้งที่ระบบจัดการการนําทางกลับโดยไม่ส่งผลกระทบต่อขั้นตอนการนำทางกลับปกติ
Android 16 เพิ่ม finishAndRemoveTaskCallback()
และ moveTaskToBackCallback
เข้ามาด้วย การลงทะเบียนการเรียกกลับเหล่านี้กับ OnBackInvokedDispatcher
จะช่วยให้ระบบทริกเกอร์ลักษณะการทำงานที่เฉพาะเจาะจงและเล่นภาพเคลื่อนไหวที่เกี่ยวข้องล่วงหน้าได้เมื่อมีการเรียกใช้ท่าทางสัมผัสกลับ
การโต้ตอบการสัมผัสที่ละเอียดยิ่งขึ้น
Android ได้เปิดการควบคุมตัวกระตุ้นการสัมผัสมาตั้งแต่เริ่มแรก
Android 11 เพิ่มการรองรับเอฟเฟกต์การสัมผัสที่ซับซ้อนมากขึ้นซึ่งตัวกระตุ้นขั้นสูงรองรับได้ผ่าน VibrationEffect.Compositions
ของพรอมต์เชิงความหมายที่อุปกรณ์กำหนด
Android 16 เพิ่ม Haptic API ที่ช่วยแอปกำหนดความกว้างและความถี่ของเส้นโค้งของผลลัพธ์การสัมผัสได้ขณะที่แยกความแตกต่างระหว่างความสามารถของอุปกรณ์
ประสิทธิภาพและแบตเตอรี่
Android 16 เปิดตัว API ที่ช่วยรวบรวมข้อมูลเชิงลึกเกี่ยวกับแอป
โปรไฟล์ที่ระบบทริกเกอร์
ProfilingManager
เพิ่มเข้ามาใน Android 15 ซึ่งช่วยให้แอปสามารถส่งคําขอรวบรวมข้อมูลการจัดทำโปรไฟล์โดยใช้ Perfetto ในอุปกรณ์สาธารณะในสนามได้
อย่างไรก็ตาม เนื่องจากต้องเริ่มการโปรไฟล์นี้จากแอป แอปจึงอาจจับภาพขั้นตอนสําคัญ เช่น การเริ่มต้นหรือ ANR ได้ยากหรือเป็นไปไม่ได้
Android 16 เปิดตัวการโปรไฟล์ที่ระบบทริกเกอร์เพื่อแก้ปัญหานี้ใน ProfilingManager
แอปสามารถลงทะเบียนความสนใจในการรับการติดตามสำหรับทริกเกอร์บางอย่าง เช่น Cold Start reportFullyDrawn
หรือ ANR จากนั้นระบบจะเริ่มและหยุดการติดตามในนามของแอป หลังจากการติดตามเสร็จสมบูรณ์แล้ว ระบบจะส่งผลลัพธ์ไปยังไดเรกทอรีข้อมูลของแอป
เริ่มต้นคอมโพเนนต์ใน ApplicationStartInfo
ApplicationStartInfo
เพิ่มใน Android 15 ซึ่งช่วยให้แอปเห็นสาเหตุของการเริ่มกระบวนการ ประเภทการเริ่ม เวลาเริ่มต้น การจำกัด และข้อมูลการวินิจฉัยอื่นๆ ที่มีประโยชน์ Android 16 เพิ่ม getStartComponent()
เพื่อแยกแยะประเภทคอมโพเนนต์ที่ทริกเกอร์การเริ่มต้น ซึ่งจะเป็นประโยชน์ในการเพิ่มประสิทธิภาพขั้นตอนการเริ่มต้นของแอป
การตรวจสอบงานที่ดียิ่งขึ้น
JobScheduler#getPendingJobReason()
API จะแสดงเหตุผลที่งานอาจรอดำเนินการ อย่างไรก็ตาม งานอาจรอดำเนินการเนื่องจากหลายสาเหตุ
ใน Android 16 เราจะเปิดตัว API ใหม่ JobScheduler#getPendingJobReasons(int jobId)
ซึ่งจะแสดงเหตุผลหลายประการที่งานรอดำเนินการอยู่ ทั้งข้อจำกัดที่นักพัฒนาแอปกำหนดไว้อย่างชัดเจนและข้อจำกัดโดยนัยที่ระบบกำหนดไว้
นอกจากนี้ เรายังเปิดตัว JobScheduler#getPendingJobReasonsHistory(int jobId)
ซึ่งจะแสดงรายการการเปลี่ยนแปลงข้อจำกัดล่าสุด
เราขอแนะนำให้ใช้ API เพื่อช่วยแก้ไขข้อบกพร่องเกี่ยวกับสาเหตุที่งานอาจไม่ทํางาน โดยเฉพาะในกรณีที่อัตราความสําเร็จของงานบางอย่างลดลงหรือมีข้อบกพร่องเกี่ยวกับเวลาในการตอบสนองของงานที่เสร็จสมบูรณ์ เช่น การอัปเดตวิดเจ็ตในเบื้องหลังไม่สำเร็จ หรือเรียกใช้งานการเรียกข้อมูลล่วงหน้าก่อนการเริ่มแอปไม่สำเร็จ
นอกจากนี้ ยังช่วยให้คุณเข้าใจได้ดีขึ้นหากงานบางอย่างไม่เสร็จสมบูรณ์เนื่องจากข้อจำกัดที่ระบบกําหนดไว้เมื่อเทียบกับข้อจำกัดที่ตั้งไว้อย่างชัดเจน
อัตราการรีเฟรชแบบปรับอัตโนมัติ
Android 15 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 VSync 步长来适应内容帧速率。这不仅降低了功耗,还无需进行可能导致卡顿的模式切换。
Android 16 引入了 hasArrSupport()
和 getSuggestedFrameRate(int)
,同时恢复了 getSupportedRefreshRates()
,以便您的应用更轻松地利用 ARR。RecyclerView 1.4 在从快速滑动或平滑滚动中稳定下来时会在内部支持 ARR,我们将继续努力,将 ARR 支持添加到更多 Jetpack 库中。这篇帧速率文章介绍了许多可用于设置帧速率的 API,以便您的应用可以直接使用 ARR。
การช่วยเหลือพิเศษ
Android 16 เพิ่ม API การช่วยเหลือพิเศษใหม่เพื่อช่วยให้คุณนำแอปมาให้บริการแก่ผู้ใช้ทุกคนได้
คำอธิบายเพิ่มเติม
如果无障碍服务提供关于 ViewGroup
的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup
提供 contentDescription
,无障碍服务会假定您还要替换不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的选择(例如“Roboto”)以便于无障碍使用,这可能会造成问题。Android 16 添加了 setSupplementalDescription
,以便您提供用于提供 ViewGroup
相关信息的文本,而不会覆盖其子项中的信息。
ช่องในแบบฟอร์มที่ต้องกรอก
Android 16 向 AccessibilityNodeInfo
添加了 setFieldRequired
,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户来说,这是一个重要的场景,即使是简单的必填条款和条件复选框,也能帮助用户始终如一地识别必填字段并在这些字段之间快速导航。
ใช้โทรศัพท์เป็นอินพุตไมโครโฟนสำหรับการโทรด้วยเสียงด้วยเครื่องช่วยฟัง LEA
Android 16 เพิ่มความสามารถในการสลับระหว่างไมโครโฟนในตัวของเครื่องช่วยฟัง LE Audio กับไมโครโฟนในโทรศัพท์สำหรับใช้โทรด้วยเสียงให้แก่ผู้ใช้ ซึ่งจะมีประโยชน์ในสภาพแวดล้อมที่มีเสียงดังหรือสถานการณ์อื่นๆ ที่ไมโครโฟนของเครื่องช่วยฟังอาจทำงานได้ไม่ดี
การควบคุมระดับเสียงรอบข้างสำหรับเครื่องช่วยฟัง LEA
Android 16 เพิ่มความสามารถในการปรับระดับเสียงของเสียงรอบข้างที่ไมโครโฟนของเครื่องช่วยฟังตรวจพบให้แก่ผู้ใช้เครื่องช่วยฟัง LE Audio ซึ่งจะมีประโยชน์ในสถานการณ์ที่มีเสียงรบกวนรอบข้างดังหรือเบาเกินไป
กล้อง
Android 16 มีฟีเจอร์ที่ช่วยปรับปรุงประสบการณ์การใช้งานกล้อง
การตรวจจับฉากในโหมดกลางคืนของกล้อง
为了帮助应用了解何时切换到夜间模式相机会话以及何时从夜间模式相机会话切换出,Android 16 添加了 EXTENSION_NIGHT_MODE_INDICATOR
。如果受支持,则可在 Camera2 内的 CaptureResult
中使用。
这是我们在Instagram 如何让用户拍出令人惊艳的低光照片博文中提到的即将推出的 API。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。
การเชื่อมต่อ
Android 16 อัปเดตแพลตฟอร์มเพื่อให้แอปของคุณเข้าถึงเทคโนโลยีการสื่อสารและไร้สายที่ทันสมัยที่สุด
การกำหนดช่วงที่มีประสิทธิภาพมากขึ้น
Android 16 เพิ่มการรองรับฟีเจอร์ด้านความปลอดภัยที่มีประสิทธิภาพในตำแหน่ง Wi-Fi บนอุปกรณ์ที่รองรับ 802.11az ของ Wi-Fi 6 ซึ่งช่วยให้แอปสามารถรวมความแม่นยำที่สูงขึ้น ความสามารถในการปรับขนาดที่มากขึ้น และการกําหนดเวลาแบบไดนามิกของโปรโตคอลเข้ากับการปรับปรุงด้านความปลอดภัย ซึ่งรวมถึงการเข้ารหัสตาม AES-256 และการป้องกันการโจมตี MITM ซึ่งช่วยให้ใช้งานได้อย่างปลอดภัยมากขึ้นใน Use Case ต่างๆ ในระยะใกล้ เช่น ปลดล็อกแล็ปท็อปหรือประตูรถยนต์ 802.11az ผสานรวมกับมาตรฐาน Wi-Fi 6 เพื่อใช้ประโยชน์จากโครงสร้างพื้นฐานและความสามารถของมาตรฐานนี้เพื่อการใช้งานในวงกว้างขึ้นและการติดตั้งใช้งานได้ง่ายขึ้น
API การจัดประเภททั่วไป
Android 16 มี RangingManager
ใหม่ ซึ่งระบุวิธีหาระยะทางและมุมในฮาร์ดแวร์ที่รองรับระหว่างอุปกรณ์ในเครื่องกับอุปกรณ์ระยะไกล RangingManager
รองรับการใช้เทคโนโลยีการระบุตำแหน่งแบบต่างๆ เช่น การตรวจหาช่อง BLE, การระบุตำแหน่งตาม RSSI ของ BLE, Ultra Wideband และเวลาในการรับส่งข้อมูล Wi-Fi
สื่อ
Android 16 มีฟีเจอร์มากมายที่ช่วยปรับปรุงประสบการณ์การใช้งานสื่อ
การปรับปรุงเครื่องมือเลือกรูปภาพ
照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新和 Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。
Android 16 对照片选择器进行了以下改进:
- 嵌入式照片选择器:新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
- 照片选择器中的云搜索:新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。
วิดีโอระดับมืออาชีพขั้นสูง
Android 16 引入了对高级专业视频 (APV) 编解码器的支持,该编解码器专为专业级高品质视频录制和后期制作而设计。
APV 编解码器标准具有以下特点:
- 感知上无损的视频画质(接近原始视频画质)
- 复杂度低且吞吐量高的仅帧内编码(无像素域预测),以更好地支持编辑工作流
- 支持高比特率范围(最高几十 Gbps),适用于 2K、4K 和 8K 分辨率内容,由轻量级熵编码方案实现
- 帧平铺,用于沉浸式内容和启用并行编码和解码
- 支持各种色度采样格式和位深
- 支持多次解码和重新编码,且不会严重降低视觉质量
- 支持多视图视频和辅助视频,例如深度、Alpha 和预览
- 支持 HDR10/10+ 和用户定义的元数据
OpenAPV 项目提供了 APV 的参考实现。Android 16 将实现对 APV 422-10 配置文件的支持,该配置文件提供 YUV 422 色彩采样以及 10 位编码,并且目标比特率最高可达 2 Gbps。
ความเป็นส่วนตัว
Android 16 มีฟีเจอร์มากมายที่ช่วยให้นักพัฒนาแอปปกป้องความเป็นส่วนตัวของผู้ใช้
การอัปเดต Health Connect
开发者预览版中的 Health Connect 新增了 ACTIVITY_INTENSITY
,这是一种根据世界卫生组织关于中等强度和剧烈强度活动的指南定义的新数据类型。每个记录都需要提供开始时间、结束时间以及活动强度(中等或剧烈)。
Health Connect 还包含支持健康记录的更新版 API。这样一来,应用便可以在征得用户明确同意的情况下,以 FHIR 格式读取和写入医疗记录。此 API 目前处于抢先体验计划阶段。如果您想参与,请报名参加抢先体验计划。
Privacy Sandbox ใน Android
Android 16 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。
การทำให้เป็นสากล
Android 16 เพิ่มฟีเจอร์และความสามารถที่เสริมประสบการณ์ของผู้ใช้เมื่อใช้อุปกรณ์ในภาษาต่างๆ
ข้อความแนวตั้ง
Android 16 เพิ่มการรองรับระดับล่างสำหรับการแสดงผลและการวัดข้อความในแนวตั้งเพื่อให้บริการรองรับการเขียนแนวตั้งพื้นฐานสำหรับนักพัฒนาไลบรารี ซึ่งมีประโยชน์อย่างยิ่งสำหรับภาษาอย่างภาษาญี่ปุ่นที่ใช้ระบบการเขียนแนวตั้งโดยทั่วไป มีการเพิ่ม Flag ใหม่ VERTICAL_TEXT_FLAG
ลงในคลาส Paint
เมื่อตั้งค่า Flag นี้โดยใช้ Paint.setFlags
API การวัดข้อความของ Paint จะรายงานการเลื่อนแนวตั้งแทนการเลื่อนแนวนอน และ Canvas
จะวาดข้อความในแนวตั้ง
val text = "「春は、曙。」"
Box(
Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
drawIntoCanvas { canvas ->
val paint = Paint().apply { textSize = 64.sp.toPx() }
// Draw text vertically
paint.flags = paint.flags or VERTICAL_TEXT_FLAG
val height = paint.measureText(text)
canvas.nativeCanvas.drawText(
text,
0,
text.length,
size.width / 2,
(size.height - height) / 2,
paint
)
}
}
) {}