ฟีเจอร์และ 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,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。

Android 16 还添加了 finishAndRemoveTaskCallback()moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。

การโต้ตอบการสัมผัสที่ละเอียดยิ่งขึ้น

自诞生之日起,Android 就提供了对触感反馈致动器的控制。

Android 11 添加了对更复杂的触感反馈效果的支持,更高级的致动器可以通过设备定义的语义基元 VibrationEffect.Compositions 支持这些效果。

Android 16 添加了触感反馈 API,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。

ประสิทธิภาพการทำงานและเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์

แม้ว่างานส่วนใหญ่ของเราในการปรับปรุงประสิทธิภาพการทำงานของคุณจะมุ่งเน้นไปที่เครื่องมือต่างๆ เช่น Android Studio, Jetpack Compose และไลบรารี Android Jetpack แต่เราก็มองหาวิธีต่างๆ ในแพลตฟอร์มเพื่อช่วยให้คุณตระหนักถึงวิสัยทัศน์ของคุณอยู่เสมอ

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

在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescriptionWallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。

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

Android 16 เปิดตัว API ที่ช่วยรวบรวมข้อมูลเชิงลึกเกี่ยวกับแอปของคุณ

การทำโปรไฟล์ที่ทริกเกอร์โดยระบบ

ProfilingManager 在 Android 15 中添加,让应用能够在现场使用 Perfetto 请求收集性能数据。不过,由于此性能分析必须从应用启动,因此应用很难或根本无法捕获启动或 ANR 等关键流程。

为此,Android 16 向 ProfilingManager 引入了系统触发的性能分析。应用可以注册接收特定触发器(例如冷启动 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。

Headroom API ใน ADPF

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

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

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

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

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

Android 16 เพิ่ม API เพิ่มเติมเพื่อปรับปรุงความหมายของ UI ซึ่งจะช่วยเพิ่มความสอดคล้องสำหรับผู้ใช้ที่อาศัยบริการช่วยเหลือพิเศษ เช่น TalkBack

ขีดเส้นขอบข้อความเพื่อให้ข้อความมีความคมชัดสูงสุด

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

Android 16 มี API AccessibilityManager ใหม่เพื่อให้แอปตรวจสอบหรือลงทะเบียนโปรแกรมฟังเพื่อดูว่าเปิดใช้โหมดนี้หรือไม่ การดำเนินการนี้มีไว้สำหรับชุดเครื่องมือ UI เช่น Compose เป็นหลัก เพื่อมอบประสบการณ์การรับชมที่คล้ายกัน หากคุณดูแลรักษาไลบรารี UI Toolkit หรือแอปของคุณแสดงผลข้อความที่กำหนดเองซึ่งข้ามคลาส android.text.Layout คุณสามารถใช้แอตทริบิวต์นี้เพื่อดูว่าเปิดใช้ข้อความขอบหรือไม่

ข้อความที่มีคอนทราสต์สูงก่อนและหลังใช้ฟีเจอร์การช่วยเหลือพิเศษใหม่ของ Android 16 ที่มีข้อความขอบ

เพิ่มระยะเวลาลงใน TtsSpan

Android 16 ขยาย TtsSpan ด้วย TYPE_DURATION ซึ่งประกอบด้วย ARG_HOURS, ARG_MINUTES และ ARG_SECONDS ซึ่งจะช่วยให้คุณกำกับเวลาได้โดยตรง เพื่อให้เอาต์พุตการอ่านออกเสียงข้อความมีความแม่นยำและสอดคล้องกันกับบริการต่างๆ เช่น TalkBack

รองรับองค์ประกอบที่มีป้ายกำกับหลายรายการ

ปัจจุบัน Android อนุญาตให้องค์ประกอบ UI ดึงข้อมูลป้ายกำกับการช่วยเหลือพิเศษจากองค์ประกอบอื่น และตอนนี้สามารถเชื่อมโยงป้ายกำกับหลายรายการเข้าด้วยกันได้แล้ว ซึ่งเป็นสถานการณ์ที่พบได้ทั่วไปในเนื้อหาเว็บ การใช้ API ตามรายการภายใน AccessibilityNodeInfo จะช่วยให้ Android รองรับความสัมพันธ์แบบหลายป้ายกำกับเหล่านี้ได้โดยตรง การเปลี่ยนแปลงนี้ทำให้เราเลิกใช้งาน AccessibilityNodeInfo#setLabeledBy และ #getLabeledBy แล้วหันมาใช้ #addLabeledBy, #removeLabeledBy และ #getLabeledByList แทน

ปรับปรุงการรองรับองค์ประกอบแบบขยายได้

Android 16 เพิ่ม API การช่วยเหลือพิเศษที่ช่วยให้คุณสื่อสถานะแบบขยายหรือยุบขององค์ประกอบแบบอินเทอร์แอกทีฟ เช่น เมนูและรายการแบบขยายได้ การตั้งค่าสถานะแบบขยายโดยใช้ setExpandedState และการส่ง TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents ด้วยประเภทการเปลี่ยนแปลงเนื้อหา CONTENT_CHANGE_TYPE_EXPANDED จะช่วยให้มั่นใจได้ว่าโปรแกรมอ่านหน้าจออย่าง TalkBack จะประกาศการเปลี่ยนแปลงสถานะ ซึ่งมอบประสบการณ์การใช้งานที่ใช้งานง่ายและครอบคลุมมากขึ้นแก่ผู้ใช้

แถบความคืบหน้าที่ระบุสถานะไม่ได้

Android 16 เพิ่ม RANGE_TYPE_INDETERMINATE ซึ่งช่วยให้คุณแสดง RangeInfo สำหรับวิดเจ็ต ProgressBar ทั้งแบบกำหนดได้และแบบกำหนดไม่ได้ ซึ่งช่วยให้บริการอย่าง TalkBack แสดงความคิดเห็นสำหรับตัวบ่งชี้ความคืบหน้าได้อย่างสม่ำเสมอมากขึ้น

ช่องทำเครื่องหมายแบบ 3 สถานะ

ตอนนี้เมธอด AccessibilityNodeInfo getChecked และ setChecked(int) แบบใหม่ใน Android 16 รองรับสถานะ "เลือกบางส่วน" นอกเหนือจาก "เลือก" และ "ยกเลิกการเลือก" แล้ว ซึ่งมาแทนที่บูลีน isChecked และ setChecked(boolean) ที่เลิกใช้งานแล้ว

คำอธิบายเพิ่มเติม

เมื่อบริการการช่วยเหลือพิเศษอธิบาย ViewGroup บริการจะรวมป้ายกำกับเนื้อหาจากมุมมองย่อย หากคุณระบุ contentDescription สำหรับ ViewGroup บริการการช่วยเหลือพิเศษจะถือว่าคุณลบล้างคำอธิบายของมุมมองย่อยที่โฟกัสไม่ได้ด้วย ซึ่งอาจทำให้เกิดปัญหาหากคุณต้องการติดป้ายกำกับรายการต่างๆ เช่น เมนูแบบเลื่อนลง (เช่น "ตระกูลแบบอักษร") ขณะเก็บค่าที่เลือกไว้ในปัจจุบันไว้สำหรับการช่วยเหลือพิเศษ (เช่น "Roboto") Android 16 เพิ่ม setSupplementalDescription เพื่อให้คุณระบุข้อความที่ให้ข้อมูลเกี่ยวกับ ViewGroup ได้โดยไม่ต้องลบล้างข้อมูลจากรายการย่อย

ฟิลด์ในแบบฟอร์มที่ต้องกรอก

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

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

fun setISOPriority() {
    // ... (Your existing code before the snippet) ...

    val availablePriorityModes = mStaticInfo.characteristics.get(
        CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
    )

    // ... (Your existing code between the snippets) ...

    // 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_PRIORITY
    )
    reqBuilder.set(
        CaptureRequest.SENSOR_SENSITIVITY,
        TEST_SENSITIVITY_VALUE
    )
    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after the snippet) ...
}

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

Android 16 增加了对相机的精细色温和色调调整的支持,以更好地支持专业视频录制应用。在较低版本的 Android 中,您可以通过 CONTROL_AWB_MODE 控制白平衡设置,其中包含仅限于预设列表的选项,例如白炽灯多云黄昏COLOR_CORRECTION_MODE_CCT 可让您使用 COLOR_CORRECTION_COLOR_TEMPERATURECOLOR_CORRECTION_COLOR_TINT 根据相关色温精确调整白平衡。

fun setCCT() {
    // ... (Your existing code before this point) ...

    val colorTemperatureRange: Range<Int> =
        mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]

    // Set to manual mode to enable CCT mode
    reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
    reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30

    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after this point) ...
}

以下示例展示了应用不同色温和色调调整后的照片效果:

未应用色温或色调调整的原始图片。
将色温调整为 3000 的图片。
将色温调整为 7000 的图片。


将色调级别降低 50 的图片。
色调级别提高了 50 的图片。

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

为了帮助应用了解何时切换到夜间模式相机会话以及何时从夜间模式相机会话切换出,Android 16 添加了 EXTENSION_NIGHT_MODE_INDICATOR。如果受支持,则可在 Camera2 内的 CaptureResult 中使用。

这是我们在Instagram 如何让用户拍出令人惊艳的低光照片博文中提到的即将推出的 API。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。

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

Android 16 添加了标准 intent 操作 ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。

您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。

动态照片示例,显示静态图片和动态播放画面。

การปรับปรุงรูปภาพ Ultra HDR

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量对比示意图。

Android 16 继续致力于通过 UltraHDR 图片提供出色的图片质量。它添加了对 HEIC 文件格式的 UltraHDR 图片的支持。这些图片将获得 ImageFormat 类型 HEIC_ULTRAHDR,并包含类似于现有 UltraHDR JPEG 格式的嵌入式增益图。我们还在努力为 UltraHDR 添加 AVIF 支持,敬请期待。

此外,Android 16 在 UltraHDR 中实现了 ISO 21496-1 草稿标准中的其他参数,包括能够获取和设置应应用增益图算法的色彩空间,以及支持使用 SDR 增益图的 HDR 编码基础图片。

กราฟิก

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 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。

API การจัดอันดับทั่วไป

Android 16 包含新的 RangingManager,它提供了在受支持的硬件上确定本地设备与远程设备之间的距离和角度的方法。RangingManager 支持使用各种测距技术,例如 BLE 信道声音探测、基于 BLE RSSI 的测距、超宽带和 Wi-Fi 往返时间。

การปรากฏของอุปกรณ์ในโปรแกรมจัดการอุปกรณ์ Companion

Android 16 中引入了用于绑定配套应用服务的新 API。当 BLE 在范围内且蓝牙处于连接状态时,系统会绑定服务;当 BLE 不在范围内或蓝牙处于断开连接状态时,系统会解除绑定服务。应用将根据各种 DevicePresenceEvent 收到新的 'onDevicePresenceEvent()' 回调。如需了解详情,请参阅 'startObservingDevicePresence(ObservingDevicePresenceRequest)'

สื่อ

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 ได้เมื่อได้รับความยินยอมจากผู้ใช้อย่างชัดเจน

Privacy Sandbox ใน Android

Android 16 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。

ความปลอดภัย

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

API การแชร์คีย์

Android 16 添加了一些 API,这些 API 支持与其他应用共享对 Android Keystore 密钥的访问权限。新的 KeyStoreManager 类支持按应用 uid 授予撤消对密钥的访问权限,并包含一个供应用访问共享密钥的 API。

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

Android 16 ช่วยให้แอปของคุณรองรับการใช้งานรูปแบบต่างๆ ของ Android ได้อย่างเต็มที่

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

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

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

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

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

Android 16 เพิ่มฟีเจอร์และความสามารถที่ช่วยเสริมประสบการณ์ของผู้ใช้ เมื่อใช้อุปกรณ์ในภาษาต่างๆ

ข้อความแนวตั้ง

Android 16 添加了对垂直渲染和测量文本的低级支持,以便为库开发者提供基本的垂直书写支持。这对于日语等通常使用竖向书写系统的语言特别有用。Paint 类中添加了一个新标志 VERTICAL_TEXT_FLAG。使用 Paint.setFlags 设置此标志后,Paint 的文本测量 API 将报告垂直进度,而不是水平进度,并且 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 มม." สำหรับผู้ใช้ที่ตั้งค่าโทรศัพท์เป็นภาษาอังกฤษ (เดนมาร์ก) หรือผู้ใช้ที่ใช้โทรศัพท์เป็นภาษาอังกฤษ (สหรัฐอเมริกา) โดยมีระบบเมตริกเป็นระบบการวัดที่ต้องการ

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