ฟีเจอร์และ 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 คลาส คุณสามารถระบุสถานะและเหตุการณ์สำคัญในเส้นทางของผู้ใช้โดยใช้จุดและกลุ่ม

To learn more, see the Progress-centric notifications documentation page.

การแจ้งเตือนที่เน้นความคืบหน้าซึ่งแสดงบนหน้าจอล็อก
การแจ้งเตือนที่เน้นความคืบหน้าซึ่งแสดงในหน้าต่างแจ้งเตือน

การอัปเดตการย้อนกลับที่คาดการณ์ได้

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

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

Android has exposed control over the haptic actuator ever since its inception.

Android 11 added support for more complex haptic effects that more advanced actuators could support through VibrationEffect.Compositions of device-defined semantic primitives.

Android 16 adds haptic APIs that let apps define the amplitude and frequency curves of a haptic effect while abstracting away differences between device capabilities.

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

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

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

In Android 16, the live wallpaper framework is gaining a new content API to address the challenges of dynamic, user-driven wallpapers. Currently, live wallpapers incorporating user-provided content require complex, service-specific implementations. Android 16 introduces WallpaperDescription and WallpaperInstance. WallpaperDescription lets you identify distinct instances of a live wallpaper from the same service. For example, a wallpaper that has instances on both the home screen and on the lock screen may have unique content in both places. The wallpaper picker and WallpaperManager use this metadata to better present wallpapers to users, streamlining the process for you to create diverse and personalized live wallpaper experiences.

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

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

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

ProfilingManager was added in Android 15, giving apps the ability to request profiling data collection using Perfetto on public devices in the field. However, since this profiling must be started from the app, critical flows such as startups or ANRs would be difficult or impossible for apps to capture.

To help with this, Android 16 introduces system-triggered profiling to ProfilingManager. Apps can register interest in receiving traces for certain triggers such as cold start reportFullyDrawn or ANRs, and then the system starts and stops a trace on the app's behalf. After the trace completes, the results are delivered to the app's data directory.

เริ่มคอมโพเนนต์ใน ApplicationStartInfo

ApplicationStartInfo เพิ่มใน Android 15 ซึ่งช่วยให้แอปเห็นสาเหตุของการเริ่มกระบวนการ ประเภทการเริ่ม เวลาเริ่มต้น การจำกัด และข้อมูลการวินิจฉัยอื่นๆ ที่มีประโยชน์ Android 16 เพิ่ม getStartComponent() เพื่อแยกแยะประเภทคอมโพเนนต์ที่ทริกเกอร์การเริ่มต้น ซึ่งจะเป็นประโยชน์ในการเพิ่มประสิทธิภาพขั้นตอนการเริ่มต้นของแอป

การตรวจสอบงานที่ดีขึ้น

The JobScheduler#getPendingJobReason() API returns a reason why a job might be pending. However, a job might be pending for multiple reasons.

In Android 16, we are introducing a new API JobScheduler#getPendingJobReasons(int jobId), which returns multiple reasons why a job is pending, due to both explicit constraints set by the developer and implicit constraints set by the system.

We're also introducing JobScheduler#getPendingJobReasonsHistory(int jobId), which returns a list of the most recent constraint changes.

We recommend using the API to help you debug why your jobs may not be executing, especially if you're seeing reduced success rates of certain tasks or have bugs around latency of certain job completion. For example, updating widgets in the background failed to occur or prefetch job failed to be called prior to app start.

This can also better help you understand if certain jobs are not completing due to system defined constraints versus explicitly set constraints.

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

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

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

Headroom API ใน ADPF

SystemHealthManager เปิดตัว API getCpuHeadroom และ getGpuHeadroom ซึ่งออกแบบมาเพื่อให้เกมและแอปที่ใช้ทรัพยากรมากทราบทรัพยากร CPU และ GPU ที่พร้อมใช้งานโดยประมาณ วิธีเหล่านี้เป็นวิธีให้คุณประเมินวิธีที่แอปหรือเกมจะปรับปรุงประสิทธิภาพของระบบได้ดีที่สุด โดยเฉพาะเมื่อใช้ร่วมกับ API อื่นๆ ของ Android Dynamic Performance Framework (ADPF) ที่ตรวจหาการจำกัดความร้อน

เมื่อใช้ CpuHeadroomParams และ GpuHeadroomParams ในอุปกรณ์ที่รองรับ คุณจะปรับแต่งกรอบเวลาที่ใช้คำนวณ Headroom และเลือกระหว่างความพร้อมใช้งานทรัพยากรโดยเฉลี่ยหรือขั้นต่ำได้ ซึ่งจะช่วยคุณลดการใช้ทรัพยากร 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 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.

การควบคุมระดับเสียงของโหมดแอมเบียนท์สำหรับเครื่องช่วยฟัง 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 adds camera support for fine color temperature and tint adjustments to better support professional video recording applications. In previous Android versions, you could control white balance settings through CONTROL_AWB_MODE, which contains options limited to a preset list, such as Incandescent, Cloudy, and Twilight. The COLOR_CORRECTION_MODE_CCT enables the use of COLOR_CORRECTION_COLOR_TEMPERATURE and COLOR_CORRECTION_COLOR_TINT for precise adjustments of white balance based on the correlated color temperature.

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

The following examples show how a photo would look after applying different color temperature and tint adjustments:

The original image with no color temperature or tint adjustments applied.
The image with color temperature adjusted to 3000.
The image with color temperature adjusted to 7000.


The image with tint levels lowered by 50.
The image with tint levels raised by 50.

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

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

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

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

Android 16 adds standard Intent actions — ACTION_MOTION_PHOTO_CAPTURE, and ACTION_MOTION_PHOTO_CAPTURE_SECURE — which request that the camera application capture a motion photo and return it.

You must either pass an extra EXTRA_OUTPUT to control where the image will be written, or a Uri through Intent.setClipData(ClipData). If you don't set a ClipData, it will be copied there for you when calling Context.startActivity(Intent).

An example of a motion photo, showing the still image followed by the motion playback.

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

An illustration of Standard Dynamic Range (SDR) versus High Dynamic Range (HDR) image quality.

Android 16 continues our work to deliver dazzling image quality with UltraHDR images. It adds support for UltraHDR images in the HEIC file format. These images will get ImageFormat type HEIC_ULTRAHDR and will contain an embedded gainmap similar to the existing UltraHDR JPEG format. We're working on AVIF support for UltraHDR as well, so stay tuned.

In addition, Android 16 implements additional parameters in UltraHDR from the ISO 21496-1 draft standard, including the ability to get and set the colorspace that gainmap math should be applied in, as well as support for HDR encoded base images with SDR gainmaps.

กราฟิก

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

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

Android 16 adds RuntimeColorFilter and RuntimeXfermode, allowing you to author complex effects like Threshold, Sepia, and Hue Saturation and apply them to draw calls. Since Android 13, you've been able to use AGSL to create custom RuntimeShaders that extend Shader. The new API mirrors this, adding an AGSL-powered RuntimeColorFilter that extends ColorFilter, and a Xfermode effect that lets you implement AGSL-based custom compositing and blending between source and destination pixels.

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 includes the new RangingManager, which provides ways to determine the distance and angle on supported hardware between the local device and a remote device. RangingManager supports the usage of a variety of ranging technologies such as BLE channel sounding, BLE RSSI-based ranging, Ultra Wideband, and Wi-Fi round trip time.

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

In Android 16, new APIs are being introduced for binding your companion app service. Service will be bound when BLE is in range and Bluetooth is connected and service will be unbound when BLE is out of range or Bluetooth is disconnected. App will receives a new 'onDevicePresenceEvent()' callback based on various of DevicePresenceEvent. More details can be found in 'startObservingDevicePresence(ObservingDevicePresenceRequest)'.

สื่อ

Android 16 มีฟีเจอร์มากมายที่ช่วยปรับปรุงประสบการณ์การใช้งานสื่อ

การปรับปรุงเครื่องมือเลือกรูปภาพ

เครื่องมือเลือกรูปภาพเป็นวิธีที่มีอยู่แล้วในตัวที่ปลอดภัยสำหรับให้ผู้ใช้มอบสิทธิ์ให้แอปของคุณเข้าถึงรูปภาพและวิดีโอที่เลือกไว้จากทั้งพื้นที่เก็บข้อมูลในเครื่องและระบบคลาวด์ แทนที่จะเข้าถึงคลังสื่อทั้งหมด เมื่อใช้คอมโพเนนต์ของระบบโมดูลผ่านการอัปเดตระบบของ Google และบริการ Google Play เครื่องมือนี้จะรองรับการใช้งานย้อนกลับไปถึง Android 4.4 (API ระดับ 19) การผสานรวมต้องใช้โค้ดเพียงไม่กี่บรรทัดกับคลัง Android Jetpack ที่เกี่ยวข้อง

Android 16 มีการปรับปรุงเครื่องมือเลือกรูปภาพดังต่อไปนี้

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

วิดีโอระดับมืออาชีพขั้นสูง

Android 16 introduces support for the Advanced Professional Video (APV) codec which is designed to be used for professional level high quality video recording and post production.

The APV codec standard has the following features:

  • Perceptually lossless video quality (close to raw video quality)
  • Low complexity and high throughput intra-frame-only coding (without pixel domain prediction) to better support editing workflows
  • Support for high bit-rate range up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme
  • Frame tiling for immersive content and for enabling parallel encoding and decoding
  • Support for various chroma sampling formats and bit-depths
  • Support for multiple decoding and re-encoding without severe visual quality degradation
  • Support multi-view video and auxiliary video like depth, alpha, and preview
  • Support for HDR10/10+ and user-defined metadata

A reference implementation of APV is provided through the OpenAPV project. Android 16 will implement support for the APV 422-10 Profile that provides YUV 422 color sampling along with 10-bit encoding and for target bitrates of up to 2Gbps.

ความเป็นส่วนตัว

Android 16 มีฟีเจอร์มากมายที่จะช่วยนักพัฒนาแอปปกป้องความเป็นส่วนตัวของผู้ใช้

ข้อมูลอัปเดตเกี่ยวกับ Health Connect

Health Connect adds ACTIVITY_INTENSITY, a data type defined according to World Health Organization guidelines around moderate and vigorous activity. Each record requires the start time, the end time, and whether the activity intensity is moderate or vigorous.

Health Connect also contains updated APIs supporting medical records. This allows apps to read and write medical records in FHIR format with explicit user consent.

Privacy Sandbox ใน Android

Android 16 incorporates the latest version of the Privacy Sandbox on Android, part of our ongoing work to develop technologies where users know their privacy is protected. Our website has more about the Privacy Sandbox on Android developer beta program to help you get started. Check out the SDK Runtime which allows SDKs to run in a dedicated runtime environment separate from the app they are serving, providing stronger safeguards around user data collection and sharing.

ความปลอดภัย

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

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

Android 16 adds APIs that support sharing access to Android Keystore keys with other apps. The new KeyStoreManager class supports granting and revoking access to keys by app uid, and includes an API for apps to access shared keys.

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

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

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

The new MediaQuality package in Android 16 exposes a set of standardized APIs for access to audio and picture profiles and hardware-related settings. This allows streaming apps to query profiles and apply them to media dynamically:

  • Movies mastered with a wider dynamic range require greater color accuracy to see subtle details in shadows and adjust to ambient light, so a profile that prefers color accuracy over brightness may be appropriate.
  • Live sporting events are often mastered with a narrow dynamic range, but are often watched in daylight, so a profile that preferences brightness over color accuracy can give better results.
  • Fully interactive content wants minimal processing to reduce latency, and wants higher frame rates, which is why many TV's ship with a game profile.

The API allows apps to switch between profiles and users to enjoy tuning supported TVs to best suit their content.

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

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 มม." สำหรับผู้ใช้ที่ตั้งค่าโทรศัพท์เป็นภาษาอังกฤษ (เดนมาร์ก) หรือผู้ใช้ที่ใช้โทรศัพท์เป็นภาษาอังกฤษ (สหรัฐอเมริกา) โดยมีระบบเมตริกเป็นระบบการวัดที่ต้องการ

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