Android 14 มีฟีเจอร์และ API ที่ยอดเยี่ยมสำหรับนักพัฒนาแอป ความช่วยเหลือต่อไปนี้จะช่วย ให้คุณทราบเกี่ยวกับฟีเจอร์สำหรับแอปและเริ่มต้นใช้งาน API ที่เกี่ยวข้อง
ดูรายการ API ที่เพิ่ม แก้ไข และนำออกโดยละเอียดได้ในรายงานความแตกต่างของ API ดูรายละเอียดเกี่ยวกับ API ที่เพิ่มได้ที่ข้อมูลอ้างอิง Android API — สำหรับ Android 14 ให้มองหา API ที่เพิ่มใน API ระดับ 34 หากต้องการดูส่วนต่างๆ ที่การเปลี่ยนแปลงของแพลตฟอร์มอาจส่งผลต่อแอปของคุณ โปรดดูการเปลี่ยนแปลงลักษณะการทำงานของ Android 14 สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 และสำหรับแอปทั้งหมด
การทำให้เป็นสากล
ค่ากำหนดภาษาที่ใช้ในแอป
Android 14 expands on the per-app language features that were introduced in Android 13 (API level 33) with these additional capabilities:
Automatically generate an app's
localeConfig
: Starting with Android Studio Giraffe Canary 7 and AGP 8.1.0-alpha07, you can configure your app to support per-app language preferences automatically. Based on your project resources, the Android Gradle plugin generates theLocaleConfig
file and adds a reference to it in the final manifest file, so you no longer have to create or update the file manually. AGP uses the resources in theres
folders of your app modules and any library module dependencies to determine the locales to include in theLocaleConfig
file.Dynamic updates for an app's
localeConfig
: Use thesetOverrideLocaleConfig()
andgetOverrideLocaleConfig()
methods inLocaleManager
to dynamically update your app's list of supported languages in the device's system settings. Use this flexibility to customize the list of supported languages per region, run A/B experiments, or provide an updated list of locales if your app utilizes server-side pushes for localization.App language visibility for input method editors (IMEs): IMEs can utilize the
getApplicationLocales()
method to check the language of the current app and match the IME language to that language.
Grammatical Inflection API
ผู้คนกว่า 3 พันล้านคนพูดภาษาที่มีเพศ ซึ่งเป็นภาษาที่คำในหมวดหมู่ทางไวยากรณ์ เช่น คำนาม คำกริยา คำคุณศัพท์ และคำบุพบท จะผันตามเพศของบุคคลและวัตถุที่คุณพูดด้วยหรือพูดถึง โดยทั่วไปแล้ว ภาษาที่มีเพศหลายเพศหลายภาษาใช้เพศทางไวยากรณ์เพศชายเป็นเพศเริ่มต้นหรือเพศทั่วไป
การเรียกผู้ใช้ด้วยเพศทางไวยากรณ์ที่ไม่ถูกต้อง เช่น การเรียกผู้หญิงด้วยเพศทางไวยากรณ์ของผู้ชาย อาจส่งผลเสียต่อประสิทธิภาพและทัศนคติของผู้ใช้ ในทางตรงกันข้าม UI ที่มีภาษาที่แสดงเพศตามไวยากรณ์ของผู้ใช้อย่างถูกต้องจะช่วยเพิ่มการมีส่วนร่วมของผู้ใช้ และมอบประสบการณ์การใช้งานที่ปรับให้เหมาะกับผู้ใช้แต่ละคนและฟังดูเป็นธรรมชาติมากขึ้น
为帮助您针对区分性别的语言构建以用户为中心的界面,Android 14 引入了 Grammatical Inflection API,让您无需重构应用便能添加对语法性别的支持。
ค่ากำหนดตามพื้นที่
用户可通过地区偏好设置对温度单位、一周的第一天和编号系统进行个性化设置。居住在美国的欧洲用户可能更希望使用摄氏度,而不是华氏度,并且希望应用将星期一视为一周的开始,而不是像美国那样默认从星期日开始。
新 Android 设置菜单包含这些偏好设置,使用户能够在一个位置集中发现这些应用更改偏好设置。这些偏好设置在备份和恢复设备后也会保持不变。多个 API 和 intent(例如 getTemperatureUnit
和 getFirstDayOfWeek
)会为您的应用授予读取权限来访问用户偏好设置,因此您的应用可以调整其显示信息的方式。您还可以在 ACTION_LOCALE_CHANGED
上注册 BroadcastReceiver
,以便在地区偏好设置发生更改时处理语言区域配置更改。
如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和输入法 > 地区偏好设置。


การช่วยเหลือพิเศษ
การปรับขนาดแบบอักษรที่ไม่ใช่แบบเชิงเส้นเป็น 200%
ตั้งแต่ Android 14 เป็นต้นไป ระบบจะรองรับการปรับขนาดแบบอักษรได้สูงสุด 200% ซึ่งจะช่วยให้ผู้ใช้ที่มีสายตาเลือนรางมีตัวเลือกการช่วยเหลือพิเศษเพิ่มเติมที่สอดคล้องกับหลักเกณฑ์การช่วยเหลือพิเศษสำหรับเนื้อหาบนเว็บ (WCAG)
ระบบจะใช้เส้นโค้งการปรับขนาดที่ไม่ใช่เชิงเส้นเพื่อป้องกันไม่ให้องค์ประกอบข้อความขนาดใหญ่บนหน้าจอปรับขนาดใหญ่เกินไป กลยุทธ์การปรับขนาดนี้หมายความว่าข้อความขนาดใหญ่จะไม่ปรับขนาดในอัตราเดียวกับข้อความขนาดเล็ก การปรับขนาดแบบอักษรที่ไม่ใช่แบบเชิงเส้นมีประโยชน์ รักษาลำดับชั้นตามสัดส่วนระหว่างองค์ประกอบต่างๆ ที่มีขนาดต่างกัน ลดปัญหาการปรับขนาดข้อความเชิงเส้นในองศาสูง (เช่น ข้อความที่ถูก ถูกตัดออกหรือข้อความที่ทำให้อ่านยากขึ้นเนื่องจากจอแสดงผลขนาดใหญ่มาก ขนาดต่างๆ)
ทดสอบแอปด้วยการปรับขนาดแบบอักษรที่ไม่ใช่แบบเชิงเส้น

หากคุณใช้หน่วยพิกเซลที่ปรับขนาด (sp) เพื่อกำหนดขนาดข้อความอยู่แล้ว ให้ใช้หน่วยต่อไปนี้ ตัวเลือกเพิ่มเติมและการปรับปรุงการปรับขนาดจะถูกใช้โดยอัตโนมัติ ข้อความในแอปของคุณ อย่างไรก็ตาม คุณยังควรทำการทดสอบ UI ด้วย เปิดใช้ขนาดแบบอักษร (200%) เพื่อให้มั่นใจว่าแอปใช้ขนาดแบบอักษร อย่างถูกต้องและรองรับแบบอักษรขนาดใหญ่โดยไม่ส่งผลกระทบต่อความสามารถในการใช้งาน
หากต้องการเปิดใช้ขนาดแบบอักษร 200% ให้ทำตามขั้นตอนต่อไปนี้
- เปิดแอปการตั้งค่า แล้วไปที่การช่วยเหลือพิเศษ > ขนาดการแสดงผลและข้อความ
- สำหรับตัวเลือกขนาดแบบอักษร ให้แตะไอคอนเครื่องหมายบวก (+) จนกว่าจะเปิดใช้การตั้งค่าขนาดแบบอักษรสูงสุด ดังที่แสดงในรูปภาพประกอบส่วนนี้
ใช้หน่วยพิกเซลที่ปรับขนาด (sp) สำหรับขนาดข้อความ
อย่าลืมระบุขนาดข้อความในหน่วย sp เสมอ เมื่อแอปใช้หน่วย sp ทาง Android จะใช้ขนาดข้อความที่ผู้ใช้ต้องการและปรับขนาดตามความเหมาะสมได้
อย่าใช้หน่วย sp สำหรับระยะห่างจากขอบหรือกำหนดความสูงของมุมมองโดยสมมติว่ามีการเว้นระยะห่างจากขอบโดยนัย เนื่องจากการปรับขนาดแบบไม่เชิงเส้นของแบบอักษรอาจทำให้มิติข้อมูล sp ไม่ได้สัดส่วนกัน ดังนั้น 4sp + 20sp อาจไม่เท่ากับ 24sp
แปลงหน่วยพิกเซลที่ปรับขนาด (sp)
ใช้ TypedValue.applyDimension()
เพื่อแปลงจากหน่วย sp
เป็นพิกเซล และใช้ TypedValue.deriveDimension()
เพื่อ
แปลงพิกเซลเป็น sp วิธีการเหล่านี้ใช้การปรับขนาดที่ไม่ใช่เชิงเส้นที่เหมาะสม
ปรับเส้นโค้งโดยอัตโนมัติ
หลีกเลี่ยงการเขียนโค้ดสมการแบบฮาร์ดโค้ดโดยใช้ Configuration.fontScale
หรือ DisplayMetrics.scaledDensity
เนื่องจากการปรับขนาดแบบอักษร
ไม่เป็นเชิงเส้น ฟิลด์ scaledDensity
จะไม่แม่นยำอีกต่อไป fontScale
ควรใช้ในฟิลด์ เพื่อวัตถุประสงค์ในการให้ข้อมูลเท่านั้น เนื่องจากแบบอักษร
ด้วยค่าสเกลาร์ค่าเดียว
ใช้หน่วย sp สำหรับ lineHeight
กำหนด android:lineHeight
โดยใช้หน่วย sp เสมอแทน dp เพื่อให้ความสูงของบรรทัดปรับตามข้อความ มิเช่นนั้น หากข้อความ
มีค่าเป็น sp แต่ lineHeight
ของคุณมีหน่วยเป็น dp หรือ px ทำให้ไม่ปรับขนาดและดูจอแคบ
TextView จะแก้ไข lineHeight
โดยอัตโนมัติเพื่อให้เป็นไปตาม
สัดส่วนจะยังคงเหมือนเดิม แต่เฉพาะเมื่อทั้ง textSize
และ lineHeight
มีค่าเท่ากัน
ที่กำหนดไว้ในหน่วย sp
กล้องและสื่อ
Ultra HDR สำหรับรูปภาพ

Android 14 新增了对高动态范围 (HDR) 图片的支持,可在拍摄照片时保留更多来自传感器的信息,从而实现鲜艳的色彩和更高的对比度。Android 使用 Ultra HDR 格式,该格式与 JPEG 图片完全向后兼容,可让应用与 HDR 图片无缝互操作,并根据需要以标准动态范围 (SDR) 显示这些图片。
当您的应用选择为其 activity 窗口使用 HDR 界面(通过清单条目或通过在运行时调用 Window.setColorMode()
)时,框架会自动在界面中以 HDR 格式渲染这些图片。您还可以在受支持的设备上拍摄压缩的 Ultra HDR 静态图片。从传感器中恢复的颜色越多,后期编辑的灵活性就越高。与 Ultra HDR 图片关联的 Gainmap
可用于使用 OpenGL 或 Vulkan 渲染这些图片。
ซูม โฟกัส ดูตัวอย่างหลังถ่าย และอื่นๆ ในส่วนขยายกล้อง
Android 14 อัปเกรดและปรับปรุงส่วนขยายกล้อง ซึ่งช่วยให้แอปประมวลผลได้นานขึ้น จึงให้รูปภาพที่ดีขึ้นโดยใช้อัลกอริทึมที่ต้องใช้การประมวลผลอย่างหนัก เช่น การถ่ายภาพในที่แสงน้อยในอุปกรณ์ที่รองรับ ฟีเจอร์เหล่านี้ช่วยให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่มีประสิทธิภาพยิ่งขึ้นเมื่อใช้ความสามารถของส่วนขยายกล้อง ตัวอย่างการปรับปรุงเหล่านี้ ได้แก่
- การประมาณเวลาในการตอบสนองของการประมวลผลภาพนิ่งแบบไดนามิกจะให้ค่าประมาณเวลาในการตอบสนองของภาพนิ่งที่แม่นยำกว่ามากโดยอิงตามฉากปัจจุบันและสภาพสภาพแวดล้อม โทรไปที่
CameraExtensionSession.getRealtimeStillCaptureLatency()
เพื่อรับออบเจ็กต์StillCaptureLatency
ที่มีวิธีการประมาณเวลาในการตอบสนอง 2 วิธี เมธอดgetCaptureLatency()
จะแสดงผลเวลาในการตอบสนองโดยประมาณระหว่างonCaptureStarted
กับonCaptureProcessStarted()
และเมธอดgetProcessingLatency()
จะแสดงผลเวลาในการตอบสนองโดยประมาณระหว่างonCaptureProcessStarted()
กับเวลาที่เฟรมที่ประมวลผลแล้วเฟรมสุดท้ายพร้อมใช้งาน - รองรับการเรียกกลับความคืบหน้าในการจับภาพเพื่อให้แอปแสดงความคืบหน้าปัจจุบันของการดำเนินการประมวลผลภาพนิ่งที่ทำงานต่อเนื่องเป็นเวลานาน คุณสามารถตรวจสอบว่าฟีเจอร์นี้พร้อมใช้งานใน
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
หรือไม่ หากพร้อมใช้งาน คุณก็สามารถใช้การเรียกกลับonCaptureProcessProgressed()
ซึ่งจะส่งความคืบหน้า (จาก 0 ถึง 100) เป็นพารามิเตอร์ ข้อมูลเมตาเฉพาะของชิ้นงาน เช่น
CaptureRequest.EXTENSION_STRENGTH
สำหรับปรับระดับเอฟเฟกต์ของชิ้นงาน เช่น ระดับการเบลอพื้นหลังEXTENSION_BOKEH
ฟีเจอร์ดูภาพหลังถ่ายสําหรับการจับภาพนิ่งในส่วนขยายกล้อง ซึ่งจะแสดงภาพที่ประมวลผลน้อยลงได้เร็วกว่าภาพสุดท้าย หากชิ้นงานมีความล่าช้าในการประมวลผลเพิ่มขึ้น คุณอาจระบุรูปภาพหลังดูเป็นตัวยึดตําแหน่งเพื่อปรับปรุง UX และเปลี่ยนเป็นรูปภาพสุดท้ายในภายหลัง คุณสามารถตรวจสอบว่าฟีเจอร์นี้พร้อมใช้งานใน
CameraExtensionCharacteristics.isPostviewAvailable
หรือไม่ จากนั้นคุณสามารถส่งOutputConfiguration
ไปยังExtensionSessionConfiguration.setPostviewOutputConfiguration
ได้การรองรับ
SurfaceView
ซึ่งช่วยให้เส้นทางการแสดงผลตัวอย่างได้รับการเพิ่มประสิทธิภาพและประหยัดพลังงานมากขึ้นรองรับการแตะเพื่อโฟกัสและซูมระหว่างการใช้ส่วนขยาย
การซูมในเซ็นเซอร์
当 CameraCharacteristics
中的 REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
包含 SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
时,您的应用可以使用高级传感器功能,将剪裁后的 RAW 数据流的像素与全视野范围相同,方法是将 CaptureRequest
与将数据流用例设置为 CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
的 RAW 目标搭配使用。通过实现请求替换控件,更新后的相机可让用户在其他相机控件准备就绪之前使用缩放控件。
เสียง USB แบบไม่สูญเสียข้อมูล
Android 14 支持无损音频格式,可通过 USB 有线耳机提供发烧友级体验。您可以查询 USB 设备的首选混音器属性,注册监听器以监听首选混音器属性的更改,以及使用 AudioMixerAttributes
类配置混音器属性。此类表示音频混音器的格式,例如声道掩码、采样率和行为。该类允许直接发送音频,而无需混音、调节音量或处理效果。
ประสิทธิภาพการทำงานและเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
Credential Manager
Android 14 将 Credential Manager 添加为平台 API,并通过使用 Google Play 服务的 Jetpack 库,向后额外支持 Android 4.4(API 级别 19)设备。Credential Manager 旨在通过 API 使用用户配置的凭据提供程序检索和存储凭据,让用户更轻松地登录。Credential Manager 在单个 API 中支持多种登录方法,包括用户名和密码、通行密钥和联合登录解决方案(如“使用 Google 账号登录”)。
通行密钥具有许多优势。例如,通行密钥是基于业界标准构建的,可在各种不同的操作系统和浏览器生态系统中使用,并且可用于网站和应用。
如需了解详情,请参阅 Credential Manager 和通行密钥文档以及介绍 Credential Manager 和通行密钥的博文。
Health Connect
Health Connect เป็นพื้นที่เก็บข้อมูลในอุปกรณ์สำหรับข้อมูลสุขภาพและการออกกำลังกายของผู้ใช้ ซึ่งช่วยให้ผู้ใช้แชร์ข้อมูลระหว่างแอปโปรดได้โดยมีที่เดียวในการควบคุมข้อมูลที่ต้องการแชร์กับแอปเหล่านี้
ในอุปกรณ์ที่ใช้ Android เวอร์ชันก่อน Android 14 คุณจะดาวน์โหลด Health Connect ในรูปแบบแอปได้ใน Google Play Store ตั้งแต่ Android 14 เป็นต้นไป Health Connect จะเป็นส่วนหนึ่งของแพลตฟอร์มและได้รับการอัปเดตผ่านการอัปเดตระบบ Google Play โดยไม่ต้องดาวน์โหลดแยกต่างหาก ซึ่งจะช่วยให้ Health Connect ได้รับการอัปเดตบ่อยครั้ง และแอปของคุณจะใช้ Health Connect ได้บนอุปกรณ์ที่ใช้ Android 14 ขึ้นไป ผู้ใช้สามารถเข้าถึง Health Connect ได้จากการตั้งค่าในอุปกรณ์ โดยจะมีการควบคุมความเป็นส่วนตัวที่ผสานรวมอยู่ในการตั้งค่าระบบ


Health Connect มีฟีเจอร์ใหม่ๆ หลายอย่างใน Android 14 เช่น เส้นทางออกกำลังกาย ซึ่งช่วยให้ผู้ใช้แชร์เส้นทางการออกกําลังกายที่แสดงเป็นภาพบนแผนที่ได้ เส้นทางหมายถึงรายการสถานที่ที่บันทึกไว้ภายในกรอบเวลาหนึ่งๆ และแอปของคุณสามารถแทรกเส้นทางลงในเซสชันการออกกำลังกายเพื่อเชื่อมโยงเข้าด้วยกัน ผู้ใช้ต้องอนุญาตให้แชร์เส้นทางแต่ละเส้นทางกับแอปอื่นๆ เพื่อให้มั่นใจว่าผู้ใช้มีสิทธิ์ควบคุมข้อมูลที่ละเอียดอ่อนนี้อย่างสมบูรณ์
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับการเชื่อมต่อ Health และบล็อกโพสต์เกี่ยวกับมีอะไรใหม่ใน Android Health
การอัปเดต OpenJDK 17
Android 14 将继续更新 Android 的核心库,以与最新 OpenJDK LTS 版本中的功能保持一致,包括适合应用和平台开发者的库更新和 Java 17 语言支持。
其中包含以下功能和改进:
- 将大约 300 个
java.base
类更新为支持 Java 17。 - 文本块 - 为 Java 编程语言引入了多行字符串字面量。
- instanceof 模式匹配:可让对象在
instanceof
中被视为具有特定类型,而无需任何额外的变量。 - 密封类:允许您限制哪些类和接口可以扩展或实现它们。
得益于 Google Play 系统更新 (Project Mainline),6 亿多台设备能够接收包含这些更改的最新 Android 运行时 (ART) 更新。我们致力于为应用提供更加一致、安全的跨设备环境,并为用户提供独立于平台版本的新功能。
Java 和 OpenJDK 是 Oracle 及/或其关联公司的商标或注册商标。
การปรับปรุงสำหรับ App Store
Android 14 เปิดตัว PackageInstaller
API หลายรายการที่ช่วยปรับปรุงประสบการณ์ของผู้ใช้สำหรับ App Store
ขอการอนุมัติการติดตั้งก่อนดาวน์โหลด
การติดตั้งหรืออัปเดตแอปอาจต้องการอนุมัติของผู้ใช้
เช่น เมื่อผู้ติดตั้งที่ใช้สิทธิ์ REQUEST_INSTALL_PACKAGES
พยายามติดตั้งแอปใหม่ ใน Android เวอร์ชันก่อนๆ แอปสโตร์จะขอการอนุมัติจากผู้ใช้ได้หลังจากมีการเขียน APK ลงในเซสชันการติดตั้งและบันทึกเซสชันแล้วเท่านั้น
ตั้งแต่ Android 14 เป็นต้นไป เมธอด requestUserPreapproval()
จะอนุญาตให้ผู้ติดตั้งขอการอนุมัติจากผู้ใช้ก่อนยืนยันเซสชันการติดตั้ง การปรับปรุงนี้ช่วยให้ App Store เลื่อนการดาวน์โหลด APK ไว้ได้จนกว่าจะได้รับการอนุมัติการติดตั้งจากผู้ใช้ นอกจากนี้ เมื่อผู้ใช้อนุมัติการติดตั้งแล้ว แอปสโตร์จะดาวน์โหลดและติดตั้งแอปในเบื้องหลังได้โดยไม่รบกวนผู้ใช้
อ้างความรับผิดชอบสำหรับการอัปเดตในอนาคต
วิธีการ setRequestUpdateOwnership()
ช่วยให้ผู้ติดตั้งระบุต่อระบบว่าตนตั้งใจที่จะรับผิดชอบต่อการอัปเดตแอปที่ติดตั้งในอนาคต ความสามารถนี้ช่วยให้สามารถบังคับใช้การเป็นเจ้าของการอัปเดตได้ ซึ่งหมายความว่ามีเพียงเจ้าของการอัปเดตเท่านั้นที่ได้รับอนุญาตให้ติดตั้งการอัปเดตอัตโนมัติในแอป การบังคับใช้การเป็นเจ้าของการอัปเดตช่วยให้มั่นใจได้ว่าผู้ใช้จะได้รับอัปเดตจาก App Store ที่คาดไว้เท่านั้น
โปรแกรมติดตั้งอื่นๆ รวมถึงโปรแกรมที่ใช้สิทธิ์ INSTALL_PACKAGES
จะต้องได้รับอนุมัติจากผู้ใช้อย่างชัดเจนจึงจะติดตั้งการอัปเดตได้ หากผู้ใช้ตัดสินใจที่จะอัปเดตจากแหล่งที่มาอื่น ความเป็นเจ้าของการอัปเดตจะหายไป
อัปเดตแอปในเวลาที่รบกวนน้อยลง
โดยปกติแล้ว App Store ต้องการหลีกเลี่ยงการอัปเดตแอปที่ผู้ใช้กำลังใช้งานอยู่ เนื่องจากจะส่งผลให้กระบวนการที่ทำงานอยู่ของแอปหยุดลง ซึ่งอาจขัดจังหวะสิ่งที่ผู้ใช้กำลังทำอยู่
ตั้งแต่ Android 14 เป็นต้นไป InstallConstraints
API จะเปิดโอกาสให้ผู้ติดตั้งตรวจสอบว่าการอัปเดตแอปเกิดขึ้นในเวลาที่เหมาะสม ตัวอย่างเช่น แอปสโตร์สามารถเรียกใช้เมธอด commitSessionAfterInstallConstraintsAreMet()
เพื่อให้แน่ใจว่าการอัปเดตจะดำเนินการต่อเมื่อผู้ใช้ไม่ได้โต้ตอบกับแอปที่เป็นปัญหาแล้ว
ติดตั้งส่วนแยกที่ไม่บังคับได้อย่างราบรื่น
เมื่อใช้ APK แบบแยก คุณจะส่งฟีเจอร์ของแอปเป็นไฟล์ APK แยกต่างหากได้ แทนที่จะส่งเป็น APK แบบรวม APK แบบแยกช่วยให้ App Store เพิ่มประสิทธิภาพการนำส่งคอมโพเนนต์ต่างๆ ของแอปได้ เช่น แอปสโตร์อาจเพิ่มประสิทธิภาพตามพร็อพเพอร์ตี้ของอุปกรณ์เป้าหมาย PackageInstaller
API รองรับการแยกตั้งแต่เปิดตัวใน API ระดับ 22
ใน Android 14 วิธีการ setDontKillApp()
ช่วยให้ผู้ติดตั้งระบุได้ว่าไม่ควรหยุดกระบวนการที่ทำงานอยู่ของแอปเมื่อติดตั้งแยกใหม่ App Store สามารถใช้ฟีเจอร์นี้เพื่อติดตั้งฟีเจอร์ใหม่ของแอปได้อย่างราบรื่นขณะที่ผู้ใช้กำลังใช้แอปอยู่
App Bundle ข้อมูลเมตา
Starting in Android 14, the Android package installer lets you specify app metadata, such as data safety practices, to include on app store pages such as Google Play.
ตรวจหาเวลาที่ผู้ใช้จับภาพหน้าจอของอุปกรณ์
为了打造更加标准化的屏幕截图检测体验,Android 14 引入了可保护隐私的屏幕截图检测 API。借助此 API,应用可以按 activity 注册回调。如果用户在该 activity 可见时截取屏幕截图,系统会调用这些回调并通知用户。
ประสบการณ์ของผู้ใช้
การทำงานที่กำหนดเองของชีตการแชร์และการจัดอันดับที่ดียิ่งขึ้น
Android 14 更新了系统 Sharesheet,以便为用户提供自定义应用操作和信息更丰富的预览结果。
添加自定义操作
对于 Android 14,您的应用可以向其调用的系统 Sharesheet 添加自定义操作。

提高直接共享目标的排名
Android 14 根据来自应用的更多信号来确定直接共享目标的排名,以便为用户提供更实用的结果。为了提供最实用的排名信号,请遵循提高直接共享目标排名的准则。通讯应用还可以报告出站和入站消息的快捷方式使用情况。

รองรับภาพเคลื่อนไหวในตัวและภาพเคลื่อนไหวที่กำหนดเองสำหรับท่าทางสัมผัสย้อนกลับแบบคาดเดา
Android 13 ได้เปิดตัวภาพเคลื่อนไหวแบบคาดเดาซึ่งนำผู้ใช้กลับไปยังหน้าจอหลักจากตัวเลือกของนักพัฒนาแอป เมื่อใช้ในแอปที่รองรับซึ่งเปิดใช้ตัวเลือกสำหรับนักพัฒนาแอป การปัดย้อนกลับจะแสดงภาพเคลื่อนไหวที่ระบุว่าท่าทางสัมผัสย้อนกลับจะนำออกจากแอปกลับไปที่หน้าจอหลัก
Android 14 มีการปรับปรุงหลายอย่างและคำแนะนำใหม่สำหรับฟีเจอร์การย้อนกลับแบบคาดการณ์ ดังนี้
- คุณสามารถตั้งค่า
android:enableOnBackInvokedCallback=true
เพื่อเลือกใช้การเคลื่อนไหวของระบบสำหรับการย้อนกลับแบบคาดเดาต่อกิจกรรมแทนทั้งแอป - เราได้เพิ่มภาพเคลื่อนไหวใหม่ของระบบเพื่อใช้ควบคู่ไปกับภาพเคลื่อนไหวของการเปลี่ยนกลับไปที่หน้าแรกจาก Android 13 ภาพเคลื่อนไหวของระบบแบบใหม่จะทำงานข้ามกิจกรรมและข้ามงาน ซึ่งคุณจะได้รับโดยอัตโนมัติหลังจากย้ายข้อมูลไปยังท่าทางสัมผัสย้อนกลับแบบคาดเดา
- เราได้เพิ่มภาพเคลื่อนไหวใหม่สำหรับคอมโพเนนต์ Material สำหรับชีตด้านล่าง ชีตด้านข้าง และการค้นหา
- เราได้จัดทำคำแนะนำด้านการออกแบบสำหรับการสร้างภาพเคลื่อนไหวและทรานซิชันในแอปที่กำหนดเอง
- เราได้เพิ่ม API ใหม่เพื่อรองรับภาพเคลื่อนไหวการเปลี่ยนภาพในแอปที่กําหนดเอง ดังนี้
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- ใช้
overrideActivityTransition
แทนoverridePendingTransition
สำหรับทรานซิชันที่ตอบสนองเมื่อผู้ใช้ปัดกลับ
ในรุ่นตัวอย่างของ Android 14 นี้ ฟีเจอร์ทั้งหมดของฟีเจอร์การกดย้อนกลับแบบคาดคะเนจะยังคงอยู่ในตัวเลือกสำหรับนักพัฒนาแอป ดูคู่มือนักพัฒนาแอปเพื่อย้ายข้อมูลแอปไปใช้แบ็กเอนด์แบบคาดการณ์ รวมถึงคู่มือนักพัฒนาแอปในการสร้างทรานซิชันในแอปที่กําหนดเอง
การลบล้างต่อแอปของผู้ผลิตอุปกรณ์ที่มีหน้าจอขนาดใหญ่
借助按应用替换项,设备制造商可以更改应用在大屏设备上的行为。例如,FORCE_RESIZE_APP
替换项会指示系统调整应用大小以适应显示屏尺寸(避免进入尺寸兼容模式),即使在应用清单中设置了 resizeableActivity="false"
也是如此。
替换项旨在改善大屏设备上的用户体验。
借助新的清单属性,您可以为应用停用某些设备制造商替换项。
การลบล้างต่อแอปสำหรับผู้ใช้หน้าจอขนาดใหญ่
按应用替换项会更改应用在大屏设备上的行为。例如,无论应用的配置如何,OVERRIDE_MIN_ASPECT_RATIO_LARGE
设备制造商替换项都会将应用宽高比设置为 16:9。
借助 Android 14 QPR1,用户可以在大屏设备上通过新的设置菜单应用按应用替换项。
การแชร์หน้าจอแอป
App screen sharing enables users to share an app window instead of the entire device screen during screen content recording.
With app screen sharing, the status bar, navigation bar, notifications, and other system UI elements are excluded from the shared display. Only the content of the selected app is shared.
App screen sharing improves productivity and privacy by enabling users to run multiple apps but limit content sharing to a single app.
ฟีเจอร์ช่วยตอบที่ทำงานด้วย LLM ใน Gboard บน Pixel 8 Pro
在搭载 12 月功能分块的 Pixel 8 Pro 设备上,开发者可以在 Gboard 中试用质量更高的智能回复,这些回复由在 Google Tensor 上运行的设备端大语言模型 (LLM) 提供支持。
此功能目前仅在 WhatsApp、Line 和 KakaoTalk 中以美式英语的形式提供给用户进行小范围测试。此功能需要使用 Pixel 8 Pro 设备,并将 Gboard 用作键盘。
如需试用此功能,请先依次前往设置 > 开发者选项 > AiCore 设置 > 启用 Aicore 持久性,启用该功能。
接下来,在受支持的应用中打开对话,即可在 Gboard 的建议栏中看到依托 LLM 的智能回复,以便回复收到的消息。
กราฟิก
เส้นทางจะค้นหาและประมาณค่าได้
Path
API ของ Android เป็นกลไกที่มีประสิทธิภาพและยืดหยุ่นในการสร้างและการแสดงผลกราฟิกเวกเตอร์ โดยมีความสามารถในการขีดทับหรือเติมเส้นทาง สร้างเส้นทางจากส่วนของเส้นหรือเส้นโค้งหรือสี่เหลี่ยมลูกบาศก์ ดำเนินการบูลีนเพื่อให้ได้รูปร่างที่ซับซ้อนมากขึ้น หรือทั้งหมดนี้พร้อมกัน ข้อจำกัดอย่างหนึ่งคือความสามารถในการหาสิ่งที่อยู่ในออบเจ็กต์เส้นทาง ภายในของออบเจ็กต์จะทึบแสงสำหรับผู้เรียกหลังจากการสร้าง
หากต้องการสร้าง Path
ให้ใช้เมธอด เช่น
moveTo()
, lineTo()
และ
cubicTo()
เพื่อเพิ่มกลุ่มเส้นทาง แต่ไม่มีวิธีใดที่จะถามถึงเส้นทางว่ากลุ่มเป้าหมายคืออะไร คุณจึงต้องเก็บข้อมูลไว้ ณ เวลาที่สร้าง
ตั้งแต่ Android 14 เป็นต้นไป คุณจะค้นหาเส้นทางเพื่อดูสิ่งที่อยู่ข้างในได้
ก่อนอื่น คุณต้องรับออบเจ็กต์ PathIterator
โดยใช้ Path.getPathIterator
API โดยทำดังนี้
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
Java
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
ถัดไป คุณสามารถเรียกใช้ PathIterator
เพื่อทำซ้ำผ่านกลุ่มทีละกลุ่มโดยดึงข้อมูลที่จำเป็นทั้งหมดสำหรับแต่ละกลุ่ม ตัวอย่างนี้ใช้ออบเจ็กต์ PathIterator.Segment
ซึ่งจัดแพ็กเกจข้อมูลให้คุณ
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
Java
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
PathIterator
ยังมี next()
เวอร์ชันที่ไม่จัดสรร ซึ่งคุณสามารถส่งบัฟเฟอร์เพื่อเก็บข้อมูลจุดได้
กรณีการใช้งานที่สําคัญอย่างหนึ่งของการค้นหาข้อมูล Path
คือการประมาณ เช่น คุณอาจต้องการสร้างภาพเคลื่อนไหว (หรือเปลี่ยนรูปแบบ) ระหว่าง 2 เส้นทางที่แตกต่างกัน Android 14 ยังมีเมธอด interpolate()
ใน Path
ด้วย เพื่อลดความซับซ้อนของกรณีการใช้งานดังกล่าว สมมติว่าทั้ง 2 เส้นทางมีโครงสร้างภายในเหมือนกัน เมธอด interpolate()
จะสร้าง Path
ใหม่ด้วยผลลัพธ์ที่ประมาณค่านั้น ตัวอย่างนี้แสดงเส้นทางที่มีรูปร่างครึ่งหนึ่ง (การประมาณค่าในช่วงเชิงเส้นเป็น .5) ระหว่าง path
ถึง otherPath
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
Java
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
ไลบรารี graphics-path ของ Jetpack เปิดใช้ API ที่คล้ายกันสำหรับ Android เวอร์ชันก่อนหน้านี้ด้วย
Custom meshes with vertex and fragment shaders
Android รองรับการวาดเมชรูปสามเหลี่ยมด้วยการแรเงาที่กำหนดเองมานานแล้ว แต่รูปแบบเมชอินพุตถูกจำกัดไว้ที่การผสมผสานแอตทริบิวต์ที่กำหนดไว้ล่วงหน้าเพียงไม่กี่รายการ Android 14 เพิ่มการรองรับเมชที่กำหนดเอง ซึ่งสามารถกำหนดเป็นสามเหลี่ยมหรือแถบสามเหลี่ยม และสามารถจัดทำดัชนีได้ (ไม่บังคับ) ตาข่ายเหล่านี้ระบุด้วยแอตทริบิวต์ที่กำหนดเอง ระยะห่างของจุดยอด ตัวแปร และเชนเดอร์จุดยอดและเศษส่วนที่เขียนใน AGSL
เวิร์กเชดเดอร์กำหนดตัวแปรต่างๆ เช่น ตำแหน่งและสี ส่วนฟร็กเมนทัลเชดเดอร์จะกำหนดสีของพิกเซลได้ (ไม่บังคับ) โดยปกติจะใช้ตัวแปรต่างๆ ที่เวิร์กเชดเดอร์สร้างขึ้น หากฟร็กเมชันเชเดอร์ระบุสี ระบบจะผสมสีนั้นเข้ากับสี Paint
ที่ใช้อยู่โดยใช้โหมดการผสมที่เลือกไว้เมื่อวาดเมช คุณสามารถส่งยูนิฟอร์มไปยังเชดเดอร์เศษและเชดเดอร์เวิร์กเท็กซ์เพื่อเพิ่มความยืดหยุ่นได้
เครื่องมือแสดงผลบัฟเฟอร์ฮาร์ดแวร์สำหรับ Canvas
Android 14 เปิดตัว HardwareBufferRenderer
เพื่อช่วยในการใช้ Canvas
API ของ Android เพื่อวาดด้วย GPU ลงใน HardwareBuffer
API นี้
ซึ่งจะเป็นประโยชน์อย่างยิ่งเมื่อกรณีการใช้งานของคุณเกี่ยวข้องกับการสื่อสารกับระบบ
Compositor ผ่าน SurfaceControl
สำหรับเวลาในการตอบสนองต่ำ
ภาพวาด