Android 16 มาพร้อมฟีเจอร์และ API ใหม่ๆ ที่ยอดเยี่ยมสำหรับนักพัฒนาแอป ส่วนต่อไปนี้ จะสรุปฟีเจอร์เหล่านี้เพื่อช่วยให้คุณเริ่มต้นใช้งาน API ที่เกี่ยวข้องได้
หากต้องการดูรายการ API ใหม่ที่มีการแก้ไขและถูกนำออกโดยละเอียด โปรดอ่านรายงานความแตกต่างของ API ดูรายละเอียดเกี่ยวกับ API ใหม่ได้ที่เอกสารอ้างอิง Android API โดยเราจะไฮไลต์ API ใหม่เพื่อให้มองเห็นได้ชัดเจนนอกจากนี้ คุณควรตรวจสอบส่วนที่การเปลี่ยนแปลงของแพลตฟอร์มอาจส่งผลต่อแอปด้วย ดูข้อมูลเพิ่มเติมได้ที่หน้าต่อไปนี้
- การเปลี่ยนแปลงลักษณะการทำงานที่มีผลกับแอปเมื่อกำหนดเป้าหมายเป็น Android 16
- การเปลี่ยนแปลงลักษณะการทำงานที่มีผลกับแอปทั้งหมดโดยไม่คำนึงถึง
targetSdkVersion
ฟังก์ชันหลัก
Android มี API ใหม่ๆ ที่ขยายความสามารถหลักของระบบ Android
การเปิดตัว Android API 2 รายการในปี 2025
- This preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion.
- We're planning the major release a quarter earlier (Q2 rather than Q3 in prior years) to better align with the schedule of device launches across our ecosystem, so more devices can get the major release of Android sooner. With the major release coming in Q2, you'll need to do your annual compatibility testing a few months earlier than in previous years to make sure your apps are ready.
- We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps.
In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.
We'll continue to have quarterly Android releases. The Q1 and Q3 updates in-between the API releases will provide incremental updates to help ensure continuous quality. We're actively working with our device partners to bring the Q2 release to as many devices as possible.
Using new APIs with major and minor releases
Guarding a code block with a check for API level is done today using
the SDK_INT constant with
VERSION_CODES. This will continue
to be supported for major Android releases.
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
The new SDK_INT_FULL
constant can be used for API checks against both major and minor versions with
the new VERSION_CODES_FULL
enumeration.
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
You can also use the
Build.getMinorSdkVersion()
method to get just the minor SDK version.
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
These APIs have not yet been finalized and are subject to change, so please send us feedback if you have any concerns.
ประสบการณ์ของผู้ใช้และ UI ของระบบ
Android 16 ช่วยให้นักพัฒนาแอปและผู้ใช้ควบคุมและปรับแต่ง การกำหนดค่าอุปกรณ์ให้เหมาะกับความต้องการได้มากขึ้น
การแจ้งเตือนที่เน้นความคืบหน้า
Android 16 เปิดตัวการแจ้งเตือนที่เน้นความคืบหน้าเพื่อช่วยผู้ใช้ติดตามเส้นทางตั้งแต่ต้นจนจบที่ผู้ใช้เป็นผู้เริ่มได้อย่างราบรื่น
Notification.ProgressStyle เป็นการแจ้งเตือนรูปแบบใหม่ที่ให้คุณสร้างการแจ้งเตือนที่เน้นความคืบหน้า กรณีการใช้งานหลัก ได้แก่ บริการร่วมเดินทาง การนำส่ง และการนำทาง ภายในNotification.ProgressStyle
คลาส คุณสามารถระบุสถานะและเหตุการณ์สำคัญในเส้นทางของผู้ใช้โดยใช้จุดและกลุ่ม
ดูข้อมูลเพิ่มเติมได้ที่หน้าเอกสารประกอบเกี่ยวกับการแจ้งเตือนที่เน้นความคืบหน้า
การอัปเดตการย้อนกลับที่คาดการณ์ได้
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 แต่เราก็มองหาวิธีต่างๆ ในแพลตฟอร์มเพื่อช่วยให้คุณตระหนักถึงวิสัยทัศน์ของคุณอยู่เสมอ
การจัดการเนื้อหาสำหรับวอลเปเปอร์เคลื่อนไหว
ใน 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 จากนั้นระบบจะเริ่มและหยุดการติดตามในนามของแอป หลังจากการติดตามเสร็จสมบูรณ์แล้ว ระบบจะส่งผลลัพธ์ไปยังไดเรกทอรีข้อมูลของแอป
Start component ใน ApplicationStartInfo
ApplicationStartInfo was added in Android
15, allowing an app to see reasons
for process start, start type, start times, throttling, and other useful
diagnostic data. Android 16 adds
getStartComponent()
to distinguish what component type triggered the start, which can be helpful for
optimizing the startup flow of your app.
การตรวจสอบงานที่ดีขึ้น
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 ได้โดยตรง
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 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as TalkBack.
Outline text for maximum text contrast
Users with low vision often have reduced contrast sensitivity, making it challenging to distinguish objects from their backgrounds. To help these users, Android 16 introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility.
Android 16 contains new AccessibilityManager APIs to let
your apps check or register a listener to
see if this mode is enabled. This is primarily for UI Toolkits like Compose to
offer a similar visual experience. If you maintain a UI Toolkit library or your
app performs custom text rendering that bypasses the
android.text.Layout class then you can use this to know
when outline text is enabled.
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 adds new hybrid auto-exposure modes to Camera2, allowing you to manually control specific aspects of exposure while letting the auto-exposure (AE) algorithm handle the rest. You can control ISO + AE, and exposure time + AE, providing greater flexibility compared to the current approach where you either have full manual control or rely entirely on auto-exposure.
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_TEMPERATURE และ COLOR_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) ...
}
ตัวอย่างต่อไปนี้แสดงลักษณะของรูปภาพหลังจากปรับอุณหภูมิสีและการปรับสีต่างๆ
การตรวจจับฉากในโหมดกลางคืนของกล้อง
To help your app know when to switch to and from a night mode camera session,
Android 16 adds EXTENSION_NIGHT_MODE_INDICATOR. If
supported, it's available in the CaptureResult within
Camera2.
This is the API we briefly mentioned as coming soon in the How Instagram enabled users to take stunning low light photos blog post. That post is a practical guide on how to implement night mode together with a case study that links higher-quality in-app night mode photos with an increase in the number of photos shared from the in-app camera.
การดำเนินการผ่าน Intent ในการจับภาพเคลื่อนไหว
Android 16 เพิ่มการดำเนินการของ Intent มาตรฐาน ACTION_MOTION_PHOTO_CAPTURE และ ACTION_MOTION_PHOTO_CAPTURE_SECURE ซึ่งจะส่งคําขอให้แอปพลิเคชันกล้องจับภาพเคลื่อนไหวและแสดงผล
คุณต้องส่ง EXTRA_OUTPUT เพิ่มเติมเพื่อควบคุมตำแหน่งที่จะเขียนรูปภาพ หรือส่ง Uri ผ่าน Intent.setClipData(ClipData) หากคุณไม่ได้ตั้งค่า
ClipData ระบบจะคัดลอกค่านั้นให้คุณเมื่อโทรไปที่ Context.startActivity(Intent)
การปรับปรุงรูปภาพ Ultra 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 adds support for robust security features in Wi-Fi location on supported devices with Wi-Fi 6's 802.11az, allowing apps to combine the higher accuracy, greater scalability, and dynamic scheduling of the protocol with security enhancements including AES-256-based encryption and protection against MITM attacks. This allows it to be used more safely in proximity use cases, such as unlocking a laptop or a vehicle door. 802.11az is integrated with the Wi-Fi 6 standard, leveraging its infrastructure and capabilities for wider adoption and easier deployment.
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.
การตรวจหาอุปกรณ์ที่ใช้ร่วมกัน
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 adds low-level support for rendering and measuring text vertically to
provide foundational vertical writing support for library developers. This is
particularly useful for languages like Japanese that commonly use vertical
writing systems. A new flag,
VERTICAL_TEXT_FLAG,
has been added to the Paint class. When
this flag is set using
Paint.setFlags, Paint's
text measurement APIs will report vertical advances instead of horizontal
advances, and Canvas will draw text
vertically.
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 มม." สำหรับผู้ใช้ที่ตั้งค่าโทรศัพท์เป็นภาษาอังกฤษ (เดนมาร์ก) หรือผู้ใช้ที่ใช้โทรศัพท์เป็นภาษาอังกฤษ (สหรัฐอเมริกา) โดยมีระบบเมตริกเป็นระบบการวัดที่ต้องการ
หากต้องการค้นหาการตั้งค่าเหล่านี้ ให้เปิดแอปการตั้งค่าแล้วไปที่ระบบ >ภาษาและภูมิภาค