Android 13 เปิดตัวฟีเจอร์และ API ใหม่ๆ ที่ยอดเยี่ยมสำหรับนักพัฒนาซอฟต์แวร์ ส่วนต่างๆ ด้านล่างนี้จะช่วยให้คุณทราบข้อมูลเกี่ยวกับฟีเจอร์ต่างๆ สำหรับแอปของคุณและเริ่มต้นใช้งาน API ที่เกี่ยวข้อง
สำหรับรายการโดยละเอียดของ API ใหม่ ที่แก้ไข และที่นำออก โปรดอ่าน รายงานความแตกต่างของ API สำหรับรายละเอียดเกี่ยวกับ API ใหม่ ให้ไปที่เอกสารอ้างอิง Android API — มีการไฮไลต์ API ใหม่สำหรับ การมองเห็น และเพื่อดูข้อมูลเกี่ยวกับส่วนที่แพลตฟอร์มอาจมีการเปลี่ยนแปลง ที่มีผลต่อแอปของคุณ อย่าลืมดูการเปลี่ยนแปลงลักษณะการทำงานของ Android 13 สำหรับแอป ที่กำหนดเป้าหมายเป็น Android 13 และสำหรับทุกคน
เครื่องมือและประสิทธิภาพการทำงานของนักพัฒนาแอป
ไอคอนแอปแบบมีธีม
ตั้งแต่ Android 13 เป็นต้นไป คุณจะเลือกใช้ไอคอนแอปตามธีมได้ ด้วยสิ่งนี้ โดยไอคอนแอปใน Launcher ของ Android ที่รองรับ จะปรับสีให้รับค่า การลงสีวอลเปเปอร์และธีมอื่นๆ ที่ผู้ใช้เลือก
เพื่อรองรับฟีเจอร์นี้ แอปของคุณต้องมีทั้ง
ไอคอนแบบปรับอัตโนมัติและ
ไอคอนแอปสีเดียว และชี้ไปที่ไอคอนแอปสีเดียวจาก
องค์ประกอบ <adaptive-icon>
ในไฟล์ Manifest หากผู้ใช้เปิดใช้แอปที่มีธีม
(กล่าวคือ เปิดปุ่มสลับไอคอนตามธีมในการตั้งค่าระบบ)
และ Launcher สนับสนุนฟีเจอร์นี้ ระบบจะใช้สีของ
วอลเปเปอร์และธีมที่ผู้ใช้เลือกเพื่อกำหนดสีที่จะย้อมลงตามสี
ใช้กับไอคอนแอปสีเดียว
หน้าจอหลักไม่แสดงไอคอนแอปตามธีม แต่จะแสดง ไอคอนแอปแบบปรับอัตโนมัติหรือแบบมาตรฐานในสถานการณ์ต่อไปนี้
- หากผู้ใช้ไม่ได้เปิดใช้ไอคอนแอปตามธีม
- หากแอปไม่มีไอคอนแอปสีเดียว
- หาก Launcher ไม่รองรับไอคอนแอปตามธีม
โปรดดูรายละเอียดเพิ่มเติมและวิธีการที่หัวข้อไอคอนแบบปรับอัตโนมัติ
ค่ากำหนดภาษาที่ใช้ในแอป
ในหลายกรณี ผู้ใช้หลายภาษาตั้งค่าภาษาของระบบของตนเป็นภาษาเดียว เช่น เป็นภาษาอังกฤษ แต่ต้องการภาษาอื่นๆ สำหรับแอปบางแอป เช่น ดัตช์ จีน หรือฮินดี เพื่อช่วยให้แอปมอบประสบการณ์การใช้งานที่ดีขึ้น ผู้ใช้ Android 13 ขอแนะนำฟีเจอร์ต่อไปนี้สำหรับแอปที่รองรับ หลายภาษา:
การตั้งค่าระบบ: ตำแหน่งส่วนกลางที่ผู้ใช้สามารถเลือก ภาษาที่ต้องการสำหรับแต่ละแอป
แอปของคุณต้องประกาศแอตทริบิวต์
android:localeConfig
ในข้อมูลโค้ด ไฟล์ Manifest เพื่อบอกระบบว่ารองรับหลายภาษา เพื่อเรียนรู้ เพิ่มเติม โปรดดูคำแนะนำสำหรับ การสร้างไฟล์ทรัพยากรและประกาศในไฟล์ Manifest ของแอปAPI เพิ่มเติม: API สาธารณะเหล่านี้ เช่น
setApplicationLocales()
และgetApplicationLocales()
ในLocaleManager
เพื่อให้แอปต่างๆ ตั้งค่าภาษาอื่นจากภาษาของระบบในระหว่างรันไทม์API เหล่านี้จะซิงค์กับการตั้งค่าระบบโดยอัตโนมัติ ดังนั้น แอปที่ใช้ API เหล่านี้เพื่อสร้างเครื่องมือเลือกภาษาในแอปแบบกำหนดเอง ผู้ใช้จะได้รับประสบการณ์ที่สอดคล้องกันไม่ว่าจะเลือกระดับใด ค่ากำหนดภาษาของพวกเขา นอกจากนี้ API สาธารณะยังช่วยลดปริมาณ โค้ดสำเร็จรูปเหล่านี้รองรับ APK แยก และรองรับ การสำรองข้อมูลอัตโนมัติสำหรับแอปเพื่อจัดเก็บระดับแอป การตั้งค่าภาษาของผู้ใช้
สำหรับความเข้ากันได้แบบย้อนหลังกับ Android เวอร์ชันก่อนหน้า API ที่เทียบเท่า พร้อมให้บริการใน AndroidX ด้วย เราขอแนะนำให้ใช้ API เพิ่มใน Appcompat 1.6.0-beta01 หรือสูงกว่า
แอปที่ไม่รองรับหลายภาษาจะไม่ได้รับผลกระทบจากการเปลี่ยนแปลงเหล่านี้
ปรับปรุงการรองรับข้อความและภาษา
Android 13 มีการปรับปรุงข้อความและฟีเจอร์มากมายที่ช่วยให้ คุณจะมอบประสบการณ์การใช้งานที่สมบูรณ์ยิ่งขึ้น ซึ่งส่วนต่อไปนี้จะอธิบาย
การใส่ยัติภังค์ที่เร็วขึ้น
ขีดกลางช่วยให้อ่านข้อความที่ตัดได้ง่ายขึ้นและช่วยให้ UI อ่านง่ายขึ้น
แบบปรับอัตโนมัติ ตั้งแต่ Android 13 เป็นต้นไป ประสิทธิภาพของขีดกลางจะเพิ่มประสิทธิภาพดังนี้
200% เพื่อให้คุณสามารถเปิดใช้ใน TextView
โดยแทบจะไม่กระทบต่อ
ในการแสดงผล หากต้องการให้เครื่องหมายขีดกลางเร็วขึ้น ให้ใช้
fullFast
หรือ
normalFast
ความถี่ใน
setHyphenationFrequency()
API การแปลงข้อความ
ผู้ที่พูดภาษาอย่างภาษาญี่ปุ่นและจีนใช้การออกเสียงตัวอักษร ที่มักทำให้การค้นหาช้าลงและฟีเจอร์ต่างๆ เช่น อัตโนมัติ ใน Android 13 แอปเรียกใช้การแปลงข้อความ API เพื่อให้ผู้ใช้พบ กำลังมองหาได้รวดเร็วและง่ายขึ้น เช่น ก่อนหน้านี้ การค้นหา กำหนดให้ผู้ใช้ชาวญี่ปุ่นทำตามขั้นตอนเหล่านี้
- ป้อนฮิรางานะเป็นการออกเสียงข้อความค้นหา (เช่น สถานที่หรือชื่อแอป)
- ใช้แป้นพิมพ์เพื่อแปลงอักขระฮิรางานะเป็นคันจิ
- ค้นหาใหม่โดยใช้อักขระคันจิ
- ได้รับผลการค้นหาในที่สุด
เมื่อใช้ API การแปลงข้อความแบบใหม่ ผู้ใช้ชาวญี่ปุ่นสามารถพิมพ์เป็นภาษาฮิรางานะและ เห็นผลการค้นหาตัวคันจิได้ทันทีโดยข้ามขั้นตอนที่ 2 และ 3
ปรับปรุงความสูงของบรรทัดสําหรับสคริปต์ที่ไม่ใช่ละติน
Android 13 ปรับปรุงการแสดงสคริปต์ที่ไม่ใช่ภาษาละติน (เช่น ภาษาทมิฬ พม่า เตลูกู และทิเบต) โดยใช้ความสูงของบรรทัดซึ่งปรับให้เข้ากับแต่ละภาษา ความสูงของบรรทัดใหม่ป้องกันไม่ให้ตัดและปรับปรุงการวางตำแหน่งของอักขระ แอปของคุณใช้ประโยชน์จากการปรับปรุงเหล่านี้ได้โดยกําหนดเป้าหมายเป็น Android 13 อย่าลืมทดสอบแอปเมื่อใช้ระยะห่างระหว่างบรรทัดใหม่เนื่องจากการเปลี่ยนแปลง อาจส่งผลกระทบต่อ UI ของคุณในภาษาที่ไม่ใช่ภาษาละติน
ปรับปรุงการตัดข้อความภาษาญี่ปุ่น
เริ่มตั้งแต่ Android 13 TextViews จะสามารถตัดข้อความโดย Bunsetsu (หน่วยที่เล็กที่สุดของคำที่ฟังดู
เป็นธรรมชาติ) หรือวลี แทนที่จะเป็นอักขระ เพื่อให้ขัดเกลาและอ่านง่ายยิ่งขึ้น
แอปพลิเคชันภาษาญี่ปุ่น คุณสามารถใช้ประโยชน์จากการรวมนี้ได้โดยใช้
android:lineBreakWordStyle="phrase"
ด้วย TextViews
การอัปเดตไลบรารี Unicode
Android 13 เพิ่มการปรับปรุง การแก้ไข และการเปลี่ยนแปลงล่าสุดที่รวมอยู่ในแอป Unicode ICU 70 Unicode CLDR 40 และ Unicode 14.0
การเปลี่ยนแปลงที่สำคัญมีดังนี้
- อังกฤษ (แคนาดา)
en‑CA
และอังกฤษ (สาธารณรัฐ ฟิลิปปินส์)en‑PH
ทั้งคู่ใช้ภาษาอังกฤษ (สหรัฐอเมริกา)en
ทรัพยากรการแปล เมื่อไม่มีทรัพยากรในการแปลที่พร้อมใช้งาน แทนภาษาอังกฤษ (สหราชอาณาจักร)en‑GB
- มีการใช้หมวดหมู่พหูพจน์
many
สำหรับภาษาes
อิตาลีit
โปรตุเกสpt
และโปรตุเกส (โปรตุเกส)pt‑PT
คล้ายกัน ของภาษาฝรั่งเศสเปิดตัวใน CLDR v38 โดยใช้สำหรับปริมาณมาก
สีแบบอักษรของเวกเตอร์
เริ่มตั้งแต่ Android 13 ระบบจะรวมการรองรับการแสดงผลสำหรับ COLR เวอร์ชัน 1 (COLRv1) และอัปเดตอีโมจิของระบบเป็นรูปแบบ COLRv1 COLRv1 เป็น รูปแบบตัวอักษรขนาดกะทัดรัดที่แสดงผลได้รวดเร็วและชัดเจนในทุกขนาด
สำหรับแอปส่วนใหญ่ ระบบจะจัดการทุกอย่างและ COLRv1 ก็ใช้งานได้เลย อย่างไรก็ตาม หากแอปใช้การแสดงผลข้อความของตนเองและใช้แบบอักษรของระบบ เราขอแนะนำให้ทดสอบการแสดงอีโมจิ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ COLRv1 โปรดดูแหล่งข้อมูลต่อไปนี้
- ประกาศในบล็อกนักพัฒนาแอป Chrome
- แบบอักษรสำหรับการจัดส่งสี COLRv1 ใน Chrome (วิดีโอ)
- ข้อกำหนดของตาราง COLR
API ตำแหน่งสำหรับการตั้งค่าด่วน
การตั้งค่าด่วนในหน้าต่างแจ้งเตือนเป็นวิธีที่สะดวกสำหรับผู้ใช้ในการเปลี่ยนแปลง หรือดำเนินการด่วนโดยไม่ต้องออกจากบริบทของแอป สำหรับแอป ที่มีการ์ดที่กำหนดเอง เราช่วยให้ผู้ใช้ค้นพบและเพิ่มการ์ดของคุณลงใน การตั้งค่าด่วนได้ง่ายขึ้น การตั้งค่า ใช้ tile placement API ตอนนี้แอปของคุณสามารถแจ้งให้ผู้ใช้เพิ่มการ์ดที่กำหนดเองลงใน ชุดการ์ดการตั้งค่าด่วนที่ใช้งานอยู่ กล่องโต้ตอบแบบใหม่ของระบบจะช่วยให้ผู้ใช้สามารถเพิ่ม ไทล์ในขั้นตอนเดียวโดยไม่ต้องออกจากแอป แทนที่จะต้องไปที่ "ด่วน" การตั้งค่าเพื่อเพิ่มการ์ด
ตัวอย่างคลิปบอร์ด
ตั้งแต่ Android 13 เป็นต้นไป ระบบจะแสดงการยืนยันด้วยภาพมาตรฐานเมื่อ เพิ่มเนื้อหาในคลิปบอร์ดแล้ว การยืนยันใหม่จะทำสิ่งต่อไปนี้
- ยืนยันว่าคัดลอกเนื้อหาเรียบร้อยแล้ว
- แสดงตัวอย่างเนื้อหาที่คัดลอก
ฟีเจอร์นี้ทำให้การแจ้งเตือนต่างๆ ที่แอปแสดงหลังจากคัดลอกเป็นมาตรฐานเดียวกัน และช่วยให้ผู้ใช้ควบคุมคลิปบอร์ดได้มากขึ้น สำหรับข้อมูลเพิ่มเติม ให้ไปที่ฟีเจอร์คัดลอกและวาง
ท่าทางสัมผัสการย้อนกลับแบบคาดการณ์
Android 13 มีท่าทางสัมผัสย้อนกลับแบบคาดการณ์สำหรับอุปกรณ์ Android เช่น โทรศัพท์ หน้าจอขนาดใหญ่ และโทรศัพท์แบบพับได้ คุณต้องมีคุณสมบัติต่อไปนี้จึงจะรองรับฟีเจอร์นี้ อัปเดตแอปของคุณ
ดูเอกสารประกอบโดยละเอียดได้ที่อัปเดตแอปเพื่อรองรับการคาดการณ์ย้อนกลับ ท่าทางสัมผัส หรือคุณจะลอง Codelab
Bluetooth LE Audio
เสียงพลังงานต่ำ (LE) เป็นเสียงไร้สายที่สร้างขึ้นเพื่อแทนที่ บลูทูธแบบคลาสสิกและเปิดใช้บางกรณีการใช้งานและโทโพโลยีการเชื่อมต่อ ทั้งนี้ ช่วยให้ผู้ใช้แชร์และประกาศเสียงของตนกับเพื่อนๆ และครอบครัว หรือ สมัครรับข้อมูลการเผยแพร่แบบสาธารณะเพื่อรับข้อมูล ความบันเทิง หรือการช่วยเหลือพิเศษ ออกแบบมาเพื่อให้ผู้ใช้รับเสียงความคมชัดสูงได้ ลดอายุการใช้งานแบตเตอรี่และสามารถสลับระหว่างการใช้งานที่แตกต่างกันได้อย่างราบรื่น ที่ใช้กับบลูทูธแบบคลาสสิกไม่ได้ เริ่มตั้งแต่ Android 13 เป็นต้นไป มีการสนับสนุน LE Audio ในตัว ดังนั้นนักพัฒนาซอฟต์แวร์จึงได้รับ ได้ฟรีบนอุปกรณ์ที่เข้ากันได้
MIDI 2.0
ตั้งแต่ Android 13 เป็นต้นไป ระบบจะรองรับมาตรฐาน MIDI 2.0 ซึ่งรวมถึงความสามารถในการเชื่อมต่อฮาร์ดแวร์ MIDI 2.0 ผ่าน USB มาตรฐานนี้ เสนอฟีเจอร์ต่างๆ เช่น ความละเอียดมากขึ้นสำหรับตัวควบคุม การสนับสนุนที่ดีขึ้นสำหรับ เสียงสูงต่ำที่ไม่ใช่ภาษาตะวันตก และแสดงออกด้วยเสียงได้ดีกว่าเดิมโดยใช้เสียงต่อโน้ต
ปรับปรุงประสิทธิภาพของหน้าจอแนะนำ
Android 13 ปรับปรุงประสิทธิภาพของหน้าจอแนะนําแบบเคลื่อนไหวใน Splash API หน้าจอ:
ระบบจะอนุมานระยะเวลาของภาพเคลื่อนไหวโดยตรงจาก
AnimatedVectorDrawable
ก่อนที่จะมี Android 13 จำเป็นต้องตั้งค่าwindowSplashScreenAnimationDuration
โดยตรงใช้แอตทริบิวต์
windowSplashScreenBehavior
ใหม่เพื่อให้ควบคุมได้มากขึ้น แอปแสดงไอคอนในหน้าจอแนะนำเสมอใน Android 13 หรือไม่ และสูงกว่า
ดูเอกสารประกอบโดยละเอียดได้ที่ Splash Screen
การเพิ่มประสิทธิภาพ ART
ใน Android 13 (API ระดับ 33) ขึ้นไป ART จะเปลี่ยนไปใช้และเปลี่ยนจากโฆษณาเนทีฟ
รหัสได้เร็วขึ้นมาก โดยสามารถติดต่อกับ JNI ได้เร็วขึ้นถึง 2.5 เท่า ข้อมูลอ้างอิงรันไทม์
การประมวลผลยังได้รับการปรับปรุงใหม่
ให้วิดีโอเป็นแบบไม่บล็อกเป็นส่วนใหญ่
ก็ช่วยลดการกระตุกได้ นอกจากนี้ คุณยังสามารถใช้
Reference.refersTo()
Public API เพื่อเรียกคืนออบเจ็กต์ที่เข้าถึงไม่ได้ให้เร็วขึ้น โดยคุณจะเห็น
ตอนนี้อินเตอร์พรีเตอร์ทำงานเร็วขึ้นด้วยการค้นหาคลาสและเมธอดที่เพิ่มประสิทธิภาพ ART ด้วย
ทำการยืนยันแบบไบต์โค้ดมากขึ้น ณ เวลาติดตั้ง โดยหลีกเลี่ยงไม่ให้
การยืนยันขณะรันไทม์ และทำให้เวลาเริ่มต้นแอปรวดเร็ว
ความเป็นส่วนตัวและความปลอดภัย
การส่งออกข้อมูลตัวรับที่ลงทะเบียนตามบริบทได้อย่างปลอดภัยยิ่งขึ้น
เพื่อช่วยให้ตัวรับรันไทม์ปลอดภัยยิ่งขึ้น Android 13 จึงเปิดตัว ความสามารถของแอปเพื่อระบุว่า Broadcast Receiver ที่จดทะเบียน ควรส่งออกและปรากฏแก่แอปอื่นๆ ในอุปกรณ์ ในเวอร์ชันก่อนหน้า ของ Android แอปทั้งหมดในอุปกรณ์อาจส่งการบรอดแคสต์ที่ไม่มีการป้องกันไปยัง ผู้รับที่ลงทะเบียนแบบไดนามิก เว้นแต่ผู้รับนั้นได้รับการปกป้องโดย สิทธิ์ลายเซ็น
การกำหนดค่าการส่งออกนี้พร้อมใช้งานในแอปที่มีคุณสมบัติตามเกณฑ์อย่างน้อย 1 อย่าง ดังต่อไปนี้:
- ใช้
ContextCompat
ตั้งแต่เวอร์ชัน 1.9.0 ขึ้นไป ไลบรารี AndroidX Core - กำหนดเป้าหมายเป็น Android 13 ขึ้นไป
เครื่องมือเลือกรูปภาพ
Android 13 (API ระดับ 33) ขึ้นไปประกอบด้วย เครื่องมือเลือกรูปภาพ ประสบการณ์การใช้งาน เมื่อแอปเปิดตัว เครื่องมือเลือกรูปภาพ ผู้ใช้จะเลือกรูปภาพและวิดีโอ ที่ต้องการแชร์กับแอปของคุณ เช่น รูปโปรไฟล์ แทนการให้สิทธิ์เข้าถึงแก่แอปเพื่อดู ไลบรารีสื่อ ซึ่งเป็นวิธีที่แนะนำในการเข้าถึงรูปภาพของผู้ใช้ วิดีโอ
เครื่องมือเลือกรูปภาพช่วยเพิ่มความเป็นส่วนตัวให้กับผู้ใช้เนื่องจากแอปของคุณ ต้องประกาศสิทธิ์รันไทม์ นอกจากนี้ เครื่องมือเลือกรูปภาพยัง UI มาตรฐานในตัวสำหรับแอป สร้างผู้ใช้ที่สอดคล้องกันมากขึ้น ประสบการณ์การใช้งาน
สิทธิ์รันไทม์ใหม่สำหรับอุปกรณ์ Wi-Fi ที่อยู่ใกล้เคียง
Android 13 (API ระดับ 33) เปิดตัวฟีเจอร์ใหม่
สิทธิ์รันไทม์ใน
NEARBY_DEVICES
กลุ่มสิทธิ์สำหรับแอปที่จัดการการเชื่อมต่อของอุปกรณ์
จุดเข้าใช้งานใกล้เคียงผ่าน Wi-Fi แอปเหล่านี้ต้องประกาศสิทธิ์ใหม่
NEARBY_WIFI_DEVICES
เมื่อใด
เรียกใช้ Wi-Fi API ต่างๆ หลายรายการ
นอกจากนี้ ตราบใดที่แอปไม่ได้รับตำแหน่งทางกายภาพจาก Wi-Fi
API เหล่านี้ไม่จำเป็นต้องประกาศฟิลด์
ACCESS_FINE_LOCATION
เมื่อกำหนดเป้าหมายเป็น Android 13 ขึ้นไป
ดูข้อมูลเพิ่มเติมเกี่ยวกับ สิทธิ์เข้าถึงอุปกรณ์ Wi-Fi ใกล้เคียง
สิทธิ์ใหม่เพื่อใช้การปลุกในเวลาที่แน่นอน
หากแอปกำหนดเป้าหมายเป็น Android 13 ขึ้นไป คุณสามารถใช้
USE_EXACT_ALARM
ซึ่งให้สิทธิ์แอปของคุณโดยอัตโนมัติ เพื่อให้แอปดำเนินการต่อไปนี้
ใช้สิทธิ์นี้ แต่ต้องเป็นไปตามสิทธิ์ต่อไปนี้อย่างน้อย 1 ข้อ
เกณฑ์:
- แอปของคุณเป็นแอปนาฬิกาปลุกหรือแอปตัวจับเวลา
- แอปของคุณเป็นแอปปฏิทินที่แสดงการแจ้งเตือนสำหรับกิจกรรมที่กำลังจะเกิดขึ้น
หากแอปตั้งปลุกในเวลาที่แน่นอน แต่ไม่ตรงกับกรณีใดกรณีหนึ่งที่แสดงใน
รายการก่อนหน้า ให้ประกาศต่อไป
SCHEDULE_EXACT_ALARM
แทน และเตรียมพร้อมสำหรับสถานการณ์ที่ผู้ใช้ปฏิเสธ
การเข้าถึงแอปของคุณ
สิทธิ์ดาวน์เกรดโดยนักพัฒนาแอป
ตั้งแต่ Android 13 แอปของคุณจะเพิกถอนสิทธิ์เข้าถึงรายการที่ยังไม่ได้ใช้ได้ สิทธิ์รันไทม์ API นี้ อนุญาตให้แอปของคุณทำงานด้านความเป็นส่วนตัวต่อไปนี้ได้
- นำสิทธิ์ที่ไม่ได้ใช้ออก
- ทำตามแนวทางปฏิบัติแนะนำด้านสิทธิ์ ซึ่งช่วยเพิ่มความไว้วางใจของผู้ใช้ คุณอาจต้องการ ในการแสดงกล่องโต้ตอบ สิทธิ์ที่คุณมีให้แก่ผู้ใช้ เพิกถอนแล้ว
APK Signature Scheme v3.1
Android 13 เพิ่มการรองรับ APK Signature Scheme v3.1 ซึ่ง ปรับปรุงจาก APK Signature Scheme v3 รูปแบบนี้ แก้ไขปัญหาที่ทราบบางประการ กับ APK Signature Scheme v3 เกี่ยวกับการหมุนเวียน โดยเฉพาะอย่างยิ่ง เวอร์ชัน 3.1 รูปแบบลายเซ็นรองรับการกำหนดเป้าหมายเวอร์ชัน SDK ซึ่งช่วยให้สามารถหมุน กำหนดเป้าหมายแพลตฟอร์มรุ่นต่อๆ ไป
รูปแบบลายเซ็น v3.1 ใช้รหัสบล็อกที่ระบบไม่รู้จัก 12L หรือต่ำกว่า ดังนั้น แพลตฟอร์มจึงใช้ พฤติกรรมของผู้ลงนามต่อไปนี้
- อุปกรณ์ที่ใช้ Android 13 ขึ้นไปจะใช้ตัวลงชื่อเข้าใช้แบบหมุนเวียน บล็อก v3.1
- อุปกรณ์ที่ใช้ Android เวอร์ชันเก่าจะไม่สนใจเครื่องหมายแบบหมุน และ ให้ใช้ผู้ลงนามเดิมในบล็อกเวอร์ชัน 3.0 แทน
แอปที่ยังไม่ได้หมุนเวียนคีย์การรับรองไม่จำเป็นต้องมีข้อมูลเพิ่มเติม การดำเนินการ เมื่อใดก็ตามที่แอปเหล่านี้เลือกที่จะหมุนเวียน ระบบจะใช้เวอร์ชัน 3.1 รูปแบบลายเซ็นโดยค่าเริ่มต้น
แอปที่หมุนเวียนไปแล้วและต้องการใช้การลงนามแบบหมุนเวียนต่อไป
ในบล็อกการลงชื่อ v3.0 ต้องอัปเดต
apksigner
การเรียกใช้:
apksigner sign --ks keystore.jks | --key key.pk8 --cert cert.x509.pem --rotation-min-sdk-version API_LEVEL [signer_options] app-name.apk
...โดยที่ API_LEVEL
เท่ากับ 32 หรือต่ำกว่า
รายงานข้อผิดพลาดที่ดีขึ้นใน Keystore และ KeyMint
สำหรับแอปที่สร้างคีย์ ตอนนี้ Keystore และ KeyMint จะได้ให้รายละเอียดและ
ตัวบ่งชี้ข้อผิดพลาดที่แม่นยำ เราได้เพิ่มลําดับชั้นของคลาสข้อยกเว้นดังนี้
java.security.ProviderException
โดยมีข้อยกเว้นเฉพาะ Android ซึ่งได้แก่
รหัสข้อผิดพลาดของ Keystore/KeyMint
และข้อผิดพลาดนั้นลองใหม่ได้ไหม คุณยังแก้ไขเมธอดสำหรับคีย์ได้ด้วย
ในการสร้างและใช้ (การลงนาม การเข้ารหัส) เพื่อส่งข้อยกเว้นใหม่
การรายงานข้อผิดพลาดที่ปรับปรุงแล้วนั้นไม่ได้จำกัดอยู่แค่การสร้างคีย์ และตอนนี้ควรให้
สิ่งที่คุณต้องการในการลองสร้างคีย์อีกครั้ง
รองรับแท็บเล็ตและหน้าจอขนาดใหญ่
Android 13 สร้างขึ้นจากการเพิ่มประสิทธิภาพแท็บเล็ตที่เปิดตัวใน Android 12 และ การอัปเดตฟีเจอร์ 12L ซึ่งรวมถึงการเพิ่มประสิทธิภาพ UI ของระบบ การทำงานหลายอย่างพร้อมกันที่ดีขึ้น และโหมดความเข้ากันได้ที่ได้รับการปรับปรุงใหม่ ในระหว่างการทดสอบ โปรดตรวจสอบว่าแอป ดูดีที่สุดบนแท็บเล็ตและอุปกรณ์ที่มีหน้าจอขนาดใหญ่อื่นๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับสิ่งใหม่ๆ และสิ่งที่ควรทดสอบได้ที่ การรองรับแท็บเล็ตและหน้าจอขนาดใหญ่
กราฟิก
ตัวปรับแสงเงาแบบตั้งโปรแกรมได้
ตั้งแต่ Android 13 เป็นต้นไป ระบบจะรวมการรองรับ Programmable
RuntimeShader
ออบเจ็กต์ โดยมี
พฤติกรรมที่กำหนดโดยใช้ Android Graphics Shading Language
(AGSL) การแชร์ AGSL
ไวยากรณ์ส่วนใหญ่ที่มี GLSL แต่ทำงานภายในเครื่องมือแสดงผลของ Android เพื่อ
คุณสามารถปรับแต่งภาพวาดใน Canvas ของ Android รวมถึงการกรองเนื้อหา
Android ใช้ตัวปรับแสงเงาเหล่านี้เป็นการภายในเพื่อนำมาใช้
เอฟเฟกต์ระลอกคลื่น
เบลอ
และ
การเลื่อนมากเกินไป
Android 13 ขึ้นไปช่วยให้คุณสร้างเอฟเฟกต์ขั้นสูงที่คล้ายกันสำหรับ
แอป
ปรับปรุงนักออกแบบท่าเต้น
Android 13 เปิดตัวเมธอด API สาธารณะเพื่อ
Choreographer
และ
ASurfaceControl
ที่
ให้ข้อมูลเพิ่มเติมเกี่ยวกับ
ไทม์ไลน์ของเฟรมที่เป็นไปได้และเพิ่ม
บริบทเพิ่มเติมสำหรับ
SurfaceFlinger
เกี่ยวกับวงจรของเฟรม เช่นเดียวกับก่อนหน้านี้ แอปต่างๆ สามารถ
โพสต์การติดต่อกลับ
ไปยัง Choreographer
และรับข้อมูลไทม์ไลน์เฟรม ใน Android 13 (API
ระดับ 33) Choreographer
ส่งคืนเวลาการนำเสนอที่เป็นไปได้หลายครั้งและ
กำหนดเวลาของเฟรมที่เกี่ยวข้อง แอปสามารถเลือกเวลานำเสนอและ
หลังจากนั้น
แจ้ง SurfaceFlinger
ที่ต้องการ จากนั้น SurfaceFlinger
ไม่พยายามใช้ธุรกรรมหรือ
สลักบัฟเฟอร์ก่อนถึงเวลาการนำเสนอที่ต้องการ
กล้อง
การจับภาพวิดีโอ HDR
เริ่มตั้งแต่ Android 13 เป็นต้นไป API ของกล้องถ่ายรูป2 สนับสนุนการจับภาพวิดีโอ High Dynamic Range (HDR) ซึ่งช่วยให้คุณดูตัวอย่าง และบันทึกเนื้อหาวิดีโอ HDR โดยใช้กล้อง เปรียบเทียบกับไดนามิกมาตรฐาน Range (SDR) HDR จะให้ช่วงสีที่กว้างกว่าและเพิ่มช่วงไดนามิก ของส่วนประกอบแสงสว่าง (ตั้งแต่ 100 cd/m2 ในปัจจุบันถึง 1,000 วินาทีของ cd/m2) วิธีนี้ทำให้คุณภาพของวิดีโอใกล้เคียงกับในชีวิตจริงมากขึ้น และสมบูรณ์ยิ่งขึ้น สี ไฮไลต์ที่สว่างกว่า และเงาที่เข้มขึ้น
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการจับภาพวิดีโอ HDR โปรดดูที่ เอกสารประกอบการจับภาพวิดีโอ HDR
สื่อ
เสียงรอบทิศทาง
เสียงรอบทิศทางคือประสบการณ์เสียงสมจริงที่ให้เสียงเนื้อหาสื่อสมบูรณ์ สำหรับผู้ใช้ของคุณ โปรดดูเสียงรอบทิศทาง เอกสารสำหรับรายละเอียดเกี่ยวกับวิธีผสานรวมกับฟีเจอร์นี้
การกำหนดเส้นทางเสียงที่คาดหวัง
Android 13 จะช่วยให้แอปสื่อระบุว่าจะมีการกำหนดเส้นทางเสียงอย่างไร
ได้แนะนำ API เส้นทางเสียงใน
AudioManager
getAudioDevicesForAttributes()
API ช่วยให้คุณเรียกข้อมูลรายการอุปกรณ์ที่อาจใช้เพื่อเล่น
เสียงที่ระบุ และ
getDirectProfilesForAttributes()
API ช่วยให้ทราบว่าสตรีมเสียงเล่นโดยตรงได้หรือไม่ ใช้
API เหล่านี้เพื่อระบุ
AudioFormat
เพื่อใช้กับเสียง
ติดตาม
การช่วยเหลือพิเศษ
เสียงบรรยาย
Android 13 (API ระดับ 33) เปิดตัวค่ากำหนดการช่วยเหลือพิเศษแบบใหม่ทั้งระบบ
ซึ่งอนุญาตให้ผู้ใช้เปิดใช้เสียงบรรยายในทุกแอป เสียง
description คือแทร็กคำบรรยายเพิ่มเติมที่ประกอบด้วยผู้บรรยายพูด
ผ่านการนำเสนอ โดยอธิบายสิ่งที่กำลังเกิดขึ้นบนหน้าจอ
เสียงหยุดชั่วคราวตามปกติ
แอปสามารถทำตามค่ากำหนดของผู้ใช้สำหรับแทร็กเสียงบรรยายโดย
ค้นหาด้วย isAudioDescriptionRequested()
ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (accessibilityManager.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
แอปสามารถตรวจสอบการเปลี่ยนแปลงค่ากำหนดของผู้ใช้ได้โดยการเพิ่ม Listener ลงใน
AccessbilityManager
:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }
ฟังก์ชันหลัก
ข้อมูลอัปเดตเกี่ยวกับ OpenJDK 11
Android 13 เริ่มกระบวนการรีเฟรชไลบรารีหลักของ Android เพื่อให้สอดคล้องกับ รุ่น OpenJDK 11 LTS ที่มีทั้งการอัปเดตไลบรารีและภาษา Java 11 สนับสนุนนักพัฒนาแอปพลิเคชันและแพลตฟอร์ม การเปลี่ยนแปลงไลบรารีหลัก ที่เปิดตัวใน Android 13 จะพร้อมใช้งานในอุปกรณ์ Android 12 เช่นกันผ่าน อัปเดตระบบ Google Play เป็นโมดูล ART Mainline
Android 13 มีการเปลี่ยนแปลงต่อไปนี้ในไลบรารีหลัก
- รองรับคีย์เวิร์ด
var
สำหรับตัวแปรท้องถิ่นและเป็นพารามิเตอร์ lambda เมธอดใหม่ในคลาสสตริง:
isBlank()
lines()
repeat()
strip()
stripLeading()
stripTrailing()
รองรับ
Collection.toArray(IntFunction)
เพื่อให้ปรับ เป็นอาร์เรย์รองรับ
ifPresentOrElse()
,isEmpty()
,orElseThrow()
และstream()
ในjava.util
ชั้นเรียนOptional
,OptionalDouble
,OptionalInt
และOptionalLong
การสนับสนุนเพิ่มเติมสำหรับ
SocketOptions
รวมถึงการใช้ซ็อกเก็ตซ้ำNullReader
,NullWriter
,InputStream
,OutputStream
และtransferTo()
ฟังก์ชันReader
ที่จะโอนอักขระที่อ่านไปยังWriter
เพิ่มฟังก์ชันสำหรับการเข้ารหัสและถอดรหัส URL โดยใช้
Charsets
ฟังก์ชัน
Charset
สำหรับFileReader
,FileWriter
,PrintStream
และPrintWriter
transferTo()
,readNBytes()
,readAllBytes()
และwriteBytes()
ใหม่ สำหรับByteArrayInput
หรือOutputStream
และInput
หรือOutputStream
การรองรับรันไทม์และคอมไพเลอร์สำหรับ
java.lang.invoke.VarHandle
อัปเดต
java.util.concurrent
เป็น OpenJDK 11 API โดยใช้VarHandle
ภายใน
Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือ ที่เกี่ยวข้อง