ฟีเจอร์และ API

Android 16 เปิดตัวฟีเจอร์และ API ใหม่ๆ ที่ยอดเยี่ยมสำหรับนักพัฒนาแอป ส่วนต่อไปนี้จะสรุปฟีเจอร์เหล่านี้เพื่อช่วยให้คุณเริ่มต้นใช้งาน API ที่เกี่ยวข้องได้

ดูรายการ API ใหม่ แก้ไข และนําออกอย่างละเอียดได้ที่รายงานความแตกต่างของ API ดูรายละเอียดเกี่ยวกับ API ใหม่ได้ที่เอกสารอ้างอิง Android API โดย API ใหม่จะได้รับการไฮไลต์ไว้ให้มองเห็น

นอกจากนี้ คุณควรตรวจสอบส่วนต่างๆ ที่การเปลี่ยนแปลงแพลตฟอร์มอาจส่งผลต่อแอปของคุณด้วย ดูข้อมูลเพิ่มเติมได้ที่หน้าต่อไปนี้

ฟังก์ชันหลัก

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 ในปี 2025 โดยสังเกตว่ารุ่นในไตรมาสที่ 2 ของปี 2568 เป็นรุ่นหลัก และรุ่นในไตรมาสที่ 4 ของปี 2568 เป็นรุ่นย่อย

เราจะยังเผยแพร่ 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 Studio, Jetpack Compose และไลบรารี Android Jetpack แต่เราก็มองหาวิธีต่างๆ ในแพลตฟอร์มเพื่อช่วยให้คุณสามารถบรรลุเป้าหมายได้เสมอ

การจัดการเนื้อหาสำหรับวอลเปเปอร์เคลื่อนไหว

ใน Android 16 เฟรมเวิร์กวอลเปเปอร์เคลื่อนไหวจะได้รับ Content API ใหม่เพื่อรับมือกับความท้าทายของวอลเปเปอร์แบบไดนามิกที่ขับเคลื่อนโดยผู้ใช้ ปัจจุบันวอลเปเปอร์แบบสดที่รวมเนื้อหาที่ได้จากผู้ใช้ต้องใช้การติดตั้งใช้งานที่ซับซ้อนและเจาะจงบริการ Android 16 เปิดตัว WallpaperDescription และ WallpaperInstance WallpaperDescription ช่วยให้คุณระบุอินสแตนซ์ที่แตกต่างกันของวอลเปเปอร์เคลื่อนไหวจากบริการเดียวกันได้ ตัวอย่างเช่น วอลเปเปอร์ที่มีอินสแตนซ์ทั้งในหน้าจอหลักและหน้าจอล็อกอาจมีเนื้อหาที่ไม่ซ้ำกันทั้ง 2 ตำแหน่ง เครื่องมือเลือกวอลเปเปอร์และ WallpaperManager จะใช้ข้อมูลเมตานี้เพื่อนำเสนอวอลเปเปอร์แก่ผู้ใช้ได้ดียิ่งขึ้น ซึ่งจะช่วยคุณประหยัดเวลาในการสร้างประสบการณ์การใช้งานวอลเปเปอร์สดที่หลากหลายและปรับเปลี่ยนในแบบของคุณ

ประสิทธิภาพและแบตเตอรี่

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 เพื่อช่วยแก้ไขข้อบกพร่องเกี่ยวกับสาเหตุที่งานอาจไม่ทํางาน โดยเฉพาะในกรณีที่อัตราความสําเร็จของงานบางอย่างลดลงหรือมีข้อบกพร่องเกี่ยวกับเวลาในการตอบสนองของงานที่เสร็จสมบูรณ์ เช่น การอัปเดตวิดเจ็ตในเบื้องหลังไม่สำเร็จ หรือเรียกใช้งานการเรียกข้อมูลล่วงหน้าก่อนการเริ่มแอปไม่สำเร็จ

นอกจากนี้ ยังช่วยให้คุณเข้าใจได้ดีขึ้นหากงานบางอย่างไม่เสร็จสมบูรณ์เนื่องจากข้อจำกัดที่ระบบกําหนดไว้เมื่อเทียบกับข้อจำกัดที่ตั้งไว้อย่างชัดเจน

อัตราการรีเฟรชแบบปรับอัตโนมัติ

อัตราการรีเฟรชแบบปรับได้ (ARR) ซึ่งเปิดตัวใน Android 15 จะช่วยให้อัตราการรีเฟรชของจอแสดงผลในฮาร์ดแวร์ที่รองรับปรับตามอัตราเฟรมของเนื้อหาได้โดยใช้ขั้นตอน VSync แบบแยก ซึ่งจะช่วยลดการใช้พลังงานและไม่จำเป็นต้องสลับโหมดที่อาจทำให้เกิดอาการกระตุก

Android 16 เปิดตัว hasArrSupport() และ getSuggestedFrameRate(int) ขณะกู้คืน getSupportedRefreshRates() เพื่อให้แอปของคุณใช้ประโยชน์จาก ARR ได้ง่ายขึ้น RecyclerView 1.4 รองรับ ARR ภายในเมื่อกำลังหยุดจากการปัดหรือเลื่อนอย่างราบรื่น และเรายังคงดำเนินการเพื่อเพิ่มการรองรับ ARR ลงในไลบรารี Jetpack เพิ่มเติม บทความเกี่ยวกับอัตราเฟรมนี้ครอบคลุม API หลายรายการที่คุณสามารถใช้เพื่อตั้งค่าอัตราเฟรมเพื่อให้แอปใช้ ARR ได้โดยตรง

Headroom API ใน ADPF

SystemHealthManager 引入了 getCpuHeadroomgetGpuHeadroom API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。

在受支持的设备上使用 CpuHeadroomParamsGpuHeadroomParams,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。

การช่วยเหลือพิเศษ

Android 16 เพิ่ม API และฟีเจอร์การช่วยเหลือพิเศษใหม่ๆ ที่ช่วยให้คุณนำเสนอแอปแก่ผู้ใช้ทุกคนได้

API การช่วยเหลือพิเศษที่ปรับปรุงแล้ว

Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。

向 TtsSpan 添加了时长

Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURSARG_MINUTESARG_SECONDS。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。

支持具有多个标签的元素

Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo 中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy#getLabeledBy,改用 #addLabeledBy#removeLabeledBy#getLabeledByList

改进了对可展开元素的支持

Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState 设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED 内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。

不确定进度条

Android 16 添加了 RANGE_TYPE_INDETERMINATE,让您可以为确定性和不确定性 ProgressBar 微件公开 RangeInfo,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。

三态复选框

Android 16 中的新 AccessibilityNodeInfo getCheckedsetChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isCheckedsetChecked(boolean)

补充说明

如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单(例如“字体系列”)添加标签,同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。

必填表单字段

Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户来说,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。

ใช้โทรศัพท์เป็นอินพุตไมโครโฟนสำหรับการโทรด้วยเสียงด้วยเครื่องช่วยฟัง LEA

Android 16 เพิ่มความสามารถในการสลับระหว่างไมโครโฟนในตัวของเครื่องช่วยฟัง LE Audio กับไมโครโฟนในโทรศัพท์สำหรับใช้โทรด้วยเสียงให้แก่ผู้ใช้ ซึ่งจะมีประโยชน์ในสภาพแวดล้อมที่มีเสียงดังหรือสถานการณ์อื่นๆ ที่ไมโครโฟนของเครื่องช่วยฟังอาจทำงานได้ไม่ดี

การควบคุมระดับเสียงรอบข้างสำหรับเครื่องช่วยฟัง LEA

Android 16 เพิ่มความสามารถในการปรับระดับเสียงของเสียงรอบข้างที่ไมโครโฟนของเครื่องช่วยฟังตรวจพบให้แก่ผู้ใช้เครื่องช่วยฟัง LE Audio ซึ่งจะมีประโยชน์ในสถานการณ์ที่มีเสียงรบกวนรอบข้างดังหรือเบาเกินไป

กล้อง

Android 16 เพิ่มการรองรับผู้ใช้กล้องมืออาชีพ ซึ่งช่วยให้ใช้การเปิดรับแสงอัตโนมัติแบบผสมผสานได้ พร้อมกับการปรับอุณหภูมิสีและการปรับสีที่แม่นยำ ตัวบ่งชี้โหมดกลางคืนแบบใหม่ช่วยให้แอปทราบว่าควรเปลี่ยนจากเซสชันกล้องโหมดกลางคืนเป็นโหมดปกติหรือจากโหมดปกติเป็นโหมดกลางคืน การดำเนินการ Intent ใหม่ช่วยให้คุณจับภาพเคลื่อนไหวได้ง่ายขึ้น และเราจะปรับปรุงรูปภาพ UltraHDR อย่างต่อเนื่องด้วยการรองรับการเข้ารหัส HEIC และพารามิเตอร์ใหม่จากมาตรฐานฉบับร่าง ISO 21496-1

การปรับการรับแสงอัตโนมัติแบบผสม

Android 16 เพิ่มโหมดการเปิดรับแสงอัตโนมัติแบบผสมใหม่ลงใน Camera2 ซึ่งช่วยให้คุณควบคุมแง่มุมต่างๆ ของการเปิดรับแสงด้วยตนเองได้ขณะที่อัลกอริทึมการเปิดรับแสงอัตโนมัติ (AE) จัดการส่วนที่เหลือ คุณสามารถควบคุมISO + AE และเวลาเปิดรับแสง + AE ซึ่งให้ความยืดหยุ่นมากกว่าแนวทางปัจจุบันที่คุณต้องควบคุมด้วยตนเองทั้งหมดหรือใช้การเปิดรับแสงอัตโนมัติทั้งหมด

public void setISOPriority() {
  ...
  int[] availablePriorityModes =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_AE_AVAILABLE_PRIORITY_MODES);
  ...
  // Turn on AE mode to set priority mode
  reqBuilder.set(CaptureRequest.CONTROL_AE_MODE,
      CameraMetadata.CONTROL_AE_MODE_ON);
  reqBuilder.set(CaptureRequest.CONTROL_AE_PRIORITY_MODE,
      CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY);
  reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
      TEST_SENSITIVITY_VALUE);
  CaptureRequest request = reqBuilder.build();
  ...
}

การปรับอุณหภูมิสีและการปรับสีที่แม่นยำ

Android 16 เพิ่มการรองรับกล้องสำหรับการปรับอุณหภูมิสีและการปรับสีเล็กน้อยเพื่อรองรับแอปพลิเคชันการบันทึกวิดีโอระดับมืออาชีพได้ดียิ่งขึ้น ใน Android เวอร์ชันก่อนหน้า คุณสามารถควบคุมการตั้งค่าสมดุลแสงสีขาวผ่าน CONTROL_AWB_MODE ซึ่งมีตัวเลือกที่จํากัดอยู่ในรายการที่กำหนดล่วงหน้า เช่น หลอดไส้ เมฆมาก และช่วงพลบค่ำ COLOR_CORRECTION_MODE_CCT ช่วยให้สามารถใช้ COLOR_CORRECTION_COLOR_TEMPERATURE และ COLOR_CORRECTION_COLOR_TINT เพื่อปรับสมดุลสีขาวได้อย่างแม่นยำตามอุณหภูมิสีที่เกี่ยวข้อง

public void setCCT() {
  ...
  Range<Integer> colorTemperatureRange =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE);
  // Set to manual mode to enable CCT mode
  reqBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE,
      CameraMetadata.COLOR_CORRECTION_MODE_CCT);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE, 5000);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TINT, 30);
  CaptureRequest request = reqBuilder.build();
  ...
}

ตัวอย่างต่อไปนี้แสดงลักษณะของรูปภาพหลังจากปรับอุณหภูมิสีและการปรับสีต่างๆ

รูปภาพต้นฉบับที่ไม่มีการปรับอุณหภูมิสีหรือการปรับสี
รูปภาพที่ปรับอุณหภูมิสีเป็น 3000
รูปภาพที่ปรับอุณหภูมิสีเป็น 7000


รูปภาพที่มีระดับสีลดลง 50
รูปภาพที่มีระดับสีเพิ่มขึ้น 50

การตรวจจับฉากในโหมดกลางคืนของกล้อง

Android 16 เพิ่ม EXTENSION_NIGHT_MODE_INDICATOR เพื่อช่วยแอปในการระบุเวลาสลับจากและไปยังเซสชันกล้องโหมดกลางคืน หากรองรับ ฟีเจอร์นี้จะอยู่ใน CaptureResult ภายใน Camera2

นี่คือ API ที่เราได้พูดถึงสั้นๆ ว่ากำลังจะเปิดตัวในบล็อกโพสต์วิธีที่ Instagram ช่วยผู้ใช้ให้ถ่ายภาพในที่แสงน้อยได้อย่างน่าทึ่ง โพสต์ดังกล่าวเป็นคำแนะนำที่เป็นประโยชน์เกี่ยวกับวิธีใช้โหมดกลางคืน พร้อมกรณีศึกษาที่เชื่อมโยงรูปภาพในโหมดกลางคืนในแอปที่มีคุณภาพสูงขึ้นกับจำนวนรูปภาพที่แชร์จากกล้องในแอปที่เพิ่มขึ้น

การดำเนินการผ่าน Intent สำหรับการจับภาพเคลื่อนไหว

Android 16 เพิ่มการดำเนินการของ Intent มาตรฐาน ACTION_MOTION_PHOTO_CAPTURE และ ACTION_MOTION_PHOTO_CAPTURE_SECURE ซึ่งจะส่งคําขอให้แอปพลิเคชันกล้องจับภาพเคลื่อนไหวและแสดงผล

คุณต้องส่ง EXTRA_OUTPUT เพิ่มเติมเพื่อควบคุมตำแหน่งที่จะเขียนรูปภาพ หรือส่ง Uri ผ่าน Intent.setClipData(ClipData) หากคุณไม่ได้ตั้งค่า ClipData ระบบจะคัดลอกค่านั้นให้คุณเมื่อโทรไปที่ Context.startActivity(Intent)

ตัวอย่างรูปภาพเคลื่อนไหวที่แสดงภาพนิ่งตามด้วยการเล่นภาพเคลื่อนไหว

การปรับปรุงรูปภาพด้วย UltraHDR

ภาพคุณภาพของภาพแบบ Standard Dynamic Range (SDR) เทียบกับ High Dynamic Range (HDR)

Android 16 สานต่องานของเราในการมอบคุณภาพรูปภาพที่ยอดเยี่ยมด้วยรูปภาพ UltraHDR โดยเพิ่มการรองรับรูปภาพ UltraHDR ในไฟล์รูปแบบ HEIC รูปภาพเหล่านี้จะได้รับประเภท ImageFormat HEIC_ULTRAHDR และจะมีแผนที่การขยายสัญญาณที่ฝังอยู่คล้ายกับรูปแบบ UltraHDR JPEG ที่มีอยู่ เรากำลังดำเนินการเพื่อรองรับ AVIF สำหรับ UltraHDR ด้วย โปรดติดตามความคืบหน้าต่อไป

นอกจากนี้ Android 16 ยังใช้พารามิเตอร์เพิ่มเติมใน UltraHDR จากมาตรฐานฉบับร่าง ISO 21496-1 ซึ่งรวมถึงความสามารถในการรับและตั้งค่าพื้นที่สีที่ควรใช้คณิตศาสตร์ของตารางการขยายสัญญาณ รวมถึงการรองรับรูปภาพฐานที่เข้ารหัส HDR ที่มีตารางการขยายสัญญาณ SDR

กราฟิก

Android 16 มีการปรับปรุงกราฟิกล่าสุด เช่น เอฟเฟกต์กราฟิกที่กำหนดเองด้วย AGSL

เอฟเฟกต์กราฟิกที่กำหนดเองด้วย AGSL

Android 16 เพิ่ม RuntimeColorFilter และ RuntimeXfermode ซึ่งช่วยให้คุณสร้างเอฟเฟกต์ที่ซับซ้อนได้ เช่น เกณฑ์ สีซีเปีย และความอิ่มตัวของสี และนำไปใช้กับการโทรแบบวาดได้ ตั้งแต่ Android 13 เป็นต้นไป คุณสามารถใช้ AGSL เพื่อสร้าง RuntimeShaders ที่กําหนดเองซึ่งขยาย Shader API ใหม่นี้ทำงานแบบเดียวกัน โดยเพิ่ม RuntimeColorFilter ที่ทำงานด้วย AGSL ซึ่งขยาย ColorFilter และเอฟเฟกต์ Xfermode ที่ช่วยให้คุณใช้การคอมโพสและผสมผสานที่กำหนดเองตาม AGSL ระหว่างพิกเซลต้นทางและปลายทางได้

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

การเชื่อมต่อ

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 ใน Android เวอร์ชันล่าสุด ซึ่งเป็นส่วนหนึ่งของความพยายามอย่างต่อเนื่องของเราในการพัฒนาเทคโนโลยีที่ผู้ใช้รู้ว่าความเป็นส่วนตัวของตนได้รับการคุ้มครอง เว็บไซต์ของเรามีข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมเบต้าสำหรับนักพัฒนาแอป Android ของ Privacy Sandbox เพื่อช่วยให้คุณเริ่มต้นใช้งาน โปรดดูรันไทม์ของ SDK ซึ่งช่วยให้ SDK ทำงานในสภาพแวดล้อมรันไทม์เฉพาะที่แยกจากแอปที่ให้บริการ ซึ่งช่วยเสริมเกราะป้องกันที่มากขึ้นในการเก็บรวบรวมและแชร์ข้อมูลผู้ใช้

ความปลอดภัย

Android 16 มีฟีเจอร์ที่ช่วยเพิ่มความปลอดภัยของแอปและปกป้องข้อมูลของแอป

Key Sharing API

Android 16 เพิ่ม API ที่รองรับการแชร์สิทธิ์เข้าถึงคีย์ใน Android Keystore กับแอปอื่นๆ คลาส KeyStoreManager ใหม่รองรับการให้และเพิกถอนสิทธิ์เข้าถึงคีย์ตาม uid ของแอป และมี API สําหรับแอปในการเข้าถึงคีย์ที่แชร์

รูปแบบของอุปกรณ์

Android 16 รองรับแอปของคุณเพื่อให้ได้รับประโยชน์สูงสุดจากรูปแบบของ Android

กรอบคุณภาพของภาพและเสียงที่เป็นมาตรฐานสำหรับทีวี

MediaQualityแพ็กเกจใหม่ใน Android 16 จะแสดงชุด API มาตรฐานสำหรับการเข้าถึงโปรไฟล์เสียงและรูปภาพ รวมถึงการตั้งค่าที่เกี่ยวข้องกับฮาร์ดแวร์ ซึ่งช่วยให้แอปสตรีมมิงสามารถค้นหาโปรไฟล์และนำไปใช้กับสื่อแบบไดนามิกได้

  • ภาพยนตร์ที่ผ่านการปรับมาสเตอร์ด้วยช่วงไดนามิกที่กว้างขึ้นต้องใช้ความแม่นยำของสีที่มากขึ้นเพื่อดูรายละเอียดเล็กๆ น้อยๆ ในเงาและปรับให้เข้ากับแสงโดยรอบ ดังนั้นโปรไฟล์ที่ให้ความสำคัญกับความแม่นยำของสีมากกว่าความสว่างจึงอาจเหมาะกว่า
  • การแข่งขันกีฬาแบบสดมักจะมาสเตอร์ด้วยช่วงไดนามิกแคบ แต่มักรับชมในเวลากลางวัน ดังนั้นโปรไฟล์ที่ให้ความสำคัญกับความสว่างมากกว่าความถูกต้องของสีจะให้ผลลัพธ์ที่ดีกว่า
  • เนื้อหาแบบอินเทอร์แอกทีฟทั้งหมดต้องการการประมวลผลน้อยที่สุดเพื่อลดเวลาในการตอบสนอง และต้องการอัตราเฟรมที่สูงขึ้น ทีวีหลายรุ่นจึงมาพร้อมกับโปรไฟล์เกม

API นี้ช่วยให้แอปสลับระหว่างโปรไฟล์ได้ และผู้ใช้สามารถปรับแต่งทีวีที่รองรับให้เหมาะกับเนื้อหาของตนมากที่สุด

การทำให้เป็นสากล

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
            )
        }
    }
) {}

การปรับแต่งระบบการวัด

ตอนนี้ผู้ใช้ปรับแต่งระบบการวัดค่าในค่ากำหนดระดับภูมิภาคภายในการตั้งค่าได้แล้ว ค่ากําหนดของผู้ใช้จะรวมอยู่ในโค้ดภาษา คุณจึงลงทะเบียน BroadcastReceiver ใน ACTION_LOCALE_CHANGED ได้เพื่อจัดการการเปลี่ยนแปลงการกําหนดค่าภาษาเมื่อค่ากําหนดระดับภูมิภาคมีการเปลี่ยนแปลง

การใช้ตัวจัดรูปแบบจะช่วยให้ประสบการณ์การใช้งานในอุปกรณ์เคลื่อนที่ตรงกับประสบการณ์การใช้งานในอุปกรณ์เดสก์ท็อป เช่น "0.5 นิ้ว" ในภาษาอังกฤษ (สหรัฐอเมริกา) จะแสดงเป็น "12.7 มม." สำหรับผู้ใช้ที่ตั้งค่าโทรศัพท์เป็นภาษาอังกฤษ (เดนมาร์ก) หรือผู้ใช้ที่ใช้โทรศัพท์เป็นภาษาอังกฤษ (สหรัฐอเมริกา) โดยมีระบบเมตริกเป็นระบบการวัดที่ต้องการ

หากต้องการค้นหาการตั้งค่าเหล่านี้ ให้เปิดแอปการตั้งค่าแล้วไปที่ระบบ >ภาษาและภูมิภาค