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 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
The SystemHealthManager
introduces the
getCpuHeadroom
and
getGpuHeadroom
APIs, designed to provide games and
resource-intensive apps with estimates of available CPU and GPU resources. These
methods offer a way for you to gauge how your app or game can best improve
system health, particularly when used in conjunction with other Android Dynamic
Performance Framework (ADPF) APIs that detect thermal
throttling.
By using CpuHeadroomParams
and
GpuHeadroomParams
on supported devices, you can
customize the time window used to compute the headroom and select between
average or minimum resource availability. This can help you reduce your CPU or
GPU resource usage accordingly, leading to better user experiences and improved
battery life.
การช่วยเหลือพิเศษ
Android 16 เพิ่ม API และฟีเจอร์การช่วยเหลือพิเศษใหม่ๆ ที่ช่วยให้คุณนำเสนอแอปแก่ผู้ใช้ทุกคนได้
API การช่วยเหลือพิเศษที่ปรับปรุงแล้ว
Android 16 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as TalkBack.
Duration added to TtsSpan
Android 16 extends TtsSpan
with a TYPE_DURATION
,
consisting of ARG_HOURS
, ARG_MINUTES
,
and ARG_SECONDS
. This lets you directly annotate time
duration, ensuring accurate and consistent text-to-speech output with services
like TalkBack.
Support elements with multiple labels
Android currently allows UI elements to derive their accessibility label from
another, and now offers the ability for multiple labels to be associated, a
common scenario in web content. By introducing a list-based API within
AccessibilityNodeInfo
, Android can directly support these
multi-label relationships. As part of this change, we've deprecated
AccessibilityNodeInfo#setLabeledBy
and
#getLabeledBy
in favor of
#addLabeledBy
, #removeLabeledBy
, and
#getLabeledByList
.
Improved support for expandable elements
Android 16 adds accessibility APIs that allow you to convey the expanded or
collapsed state of interactive elements, such as menus and expandable lists. By
setting the expanded state using setExpandedState
and
dispatching TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents
with a CONTENT_CHANGE_TYPE_EXPANDED
content change type,
you can ensure that screen readers like TalkBack announce
state changes, providing a more intuitive and inclusive user experience.
Indeterminate ProgressBars
Android 16 adds RANGE_TYPE_INDETERMINATE
, giving a way for
you to expose RangeInfo
for both determinate and
indeterminate ProgressBar
widgets, allowing services like
TalkBack to more consistently provide feedback for progress
indicators.
Tri-state CheckBox
The new AccessibilityNodeInfo
getChecked
and setChecked(int)
methods in Android 16 now support a "partially checked" state in addition to
"checked" and "unchecked." This replaces the deprecated boolean
isChecked
and setChecked(boolean)
.
Supplemental descriptions
When an accessibility service describes a ViewGroup
, it
combines content labels from its child views. If you provide a
contentDescription
for the ViewGroup
, accessibility services assume you are
also overriding the description of non-focusable child views. This can be
problematic if you want to label things like a drop-down (for example, "Font
Family") while preserving the current selection for accessibility (for example,
"Roboto"). Android 16 adds setSupplementalDescription
so
you can provide text that provides information about a ViewGroup
without
overriding information from its children.
Required form fields
Android 16 adds setFieldRequired
to
AccessibilityNodeInfo
so apps can tell an accessibility
service that input to a form field is required. This is an important scenario
for users filling out many types of forms, even things as simple as a required
terms and conditions checkbox, helping users to consistently identify and
quickly navigate between required fields.
ใช้โทรศัพท์เป็นอินพุตไมโครโฟนสำหรับการโทรด้วยเสียงด้วยเครื่องช่วยฟัง 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();
...
}
ตัวอย่างต่อไปนี้แสดงลักษณะของรูปภาพหลังจากปรับอุณหภูมิสีและการปรับสีต่างๆ





การตรวจจับฉากในโหมดกลางคืนของกล้อง
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

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