แอป Android ทำงานบนอุปกรณ์ทุกประเภท ไม่ว่าจะเป็นโทรศัพท์, แท็บเล็ต, อุปกรณ์พับได้, อุปกรณ์ ChromeOS , รถยนต์, ทีวี หรือแม้แต่ XR แอปของคุณควร รองรับรูปแบบอุปกรณ์และขนาดการแสดงผลทั้งหมดเพื่อปรับให้เข้ากับสภาพแวดล้อมที่หลากหลายนี้
Android 16 (API ระดับ 36) ช่วยให้แอปปรับให้เข้ากับรูปแบบของอุปกรณ์และ ขนาดการแสดงผลต่างๆ ได้โดยการลบล้างข้อจำกัดของแอปสำหรับการวางแนวหน้าจอ สัดส่วน ภาพ และความสามารถในการปรับขนาด การลบล้างจะมีผลกับอุปกรณ์ที่มีความกว้างน้อยที่สุด >= 600dp ซึ่งกำหนดสิ่งต่อไปนี้
- แท็บเล็ต
- จอแสดงผลด้านในของอุปกรณ์พับได้ที่มีหน้าจอขนาดใหญ่
- การแสดงหน้าต่างบนเดสก์ท็อป (ในอุปกรณ์ทุกรูปแบบ)
แอปที่กำหนดเป้าหมายเป็น API ระดับ 36 จะปรับขนาดได้และเข้าสู่โหมดหลายหน้าต่าง (เทียบเท่ากับ resizeableActivity="true") ได้หากความกว้างที่เล็กที่สุดของจอแสดงผลมีค่า >= 600dp
Android 16 บังคับใช้รูปแบบการออกแบบแอปแบบปรับได้ที่สอดคล้องกัน ซึ่งจะเพิ่มประสิทธิภาพ ประสบการณ์ของผู้ใช้โดยการคำนึงถึงค่ากำหนดของผู้ใช้สำหรับแนวอุปกรณ์ สัดส่วน ภาพ และขนาดการแสดงผล
การเปลี่ยนแปลง
ระบบจะไม่สนใจแอตทริบิวต์ Manifest และ API ต่อไปนี้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 16 (API ระดับ 36) บนหน้าจอขนาดใหญ่
| แอตทริบิวต์หรือ API | ค่าที่ระบบไม่สนใจ |
|---|---|
screenOrientation |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
resizeableActivity |
ทั้งหมด |
minAspectRatio |
ทั้งหมด |
maxAspectRatio |
ทั้งหมด |
setRequestedOrientation()getRequestedOrientation() |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
ข้อยกเว้น
ข้อยกเว้นสำหรับการเปลี่ยนแปลงใน Android 16 ได้แก่
จอแสดงผลที่มีขนาดเล็กกว่า sw600dp (โทรศัพท์ส่วนใหญ่ อุปกรณ์แบบพับได้ และจอแสดงผลด้านนอก ของอุปกรณ์แบบพับได้หน้าจอขนาดใหญ่)
เกมที่อิงตามธง
android:appCategoryเผยแพร่เกมโดยใช้ Android App Bundle และ Play App Signing เพื่ออนุญาตให้ Google Play จัดการฟีเจอร์และมอบสิทธิประโยชน์ของ App Bundle โดยอัตโนมัติ ดูภาพรวมของไฟล์ Manifest ของแอปด้วย
ผู้ใช้เลือกใช้ลักษณะการทำงานเริ่มต้นของแอปในการตั้งค่าสัดส่วนภาพ
เลือกไม่ใช้
หากต้องการเลือกไม่ใช้ลักษณะการทํางานของ API ระดับ 36 ให้ประกาศPROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITYพร็อพเพอร์ตี้ไฟล์ Manifest
หากต้องการเลือกไม่ใช้กิจกรรมที่เฉพาะเจาะจง ให้ตั้งค่าพร็อพเพอร์ตี้ในองค์ประกอบ <activity>
ดังนี้
<activity ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</activity>
หากต้องการเลือกไม่ใช้สำหรับทั้งแอป ให้ตั้งค่าพร็อพเพอร์ตี้ในองค์ประกอบ <application> ดังนี้
<application ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</application>
การทดสอบ
หากต้องการทดสอบว่าแอปได้รับผลกระทบจากการเปลี่ยนแปลงใน Android 16 หรือไม่ ให้ใช้โปรแกรมจำลอง Pixel
Tablet และ Pixel Fold ใน Android Studio แล้วตั้งค่า
targetSdkPreview = "Baklava" ในไฟล์โมดูล build.gradle ของแอป
หรือใช้เฟรมเวิร์กความเข้ากันได้ของแอปในอุปกรณ์ทดสอบโดยเปิดใช้ Flag UNIVERSAL_RESIZABLE_BY_DEFAULT (ดูเครื่องมือเฟรมเวิร์กความเข้ากันได้)
คุณสามารถทำการทดสอบโดยอัตโนมัติได้ด้วยเฟรมเวิร์กการทดสอบ Espresso และ Jetpack Compose Testing API
คู่มือการใช้งาน
แอปที่จำกัดการวางแนวของอุปกรณ์ สัดส่วนภาพ หรือความสามารถในการปรับขนาดของแอปอาจ มีปัญหาในการแสดงผลบน Android 16 เช่น เลย์เอาต์ซ้อนทับกัน สร้างแอปให้ตอบสนองและปรับเปลี่ยนได้เพื่อมอบประสบการณ์การใช้งานที่ดีที่สุดในโทรศัพท์ อุปกรณ์พับได้ แท็บเล็ต อุปกรณ์ ChromeOS และอื่นๆ
รายการตรวจสอบความพร้อม
ใช้รายการตรวจสอบต่อไปนี้เพื่อให้แน่ใจว่าแอปของคุณพร้อมสำหรับการเปลี่ยนแปลงใน Android 16
- หลีกเลี่ยงคอมโพเนนต์ UI ที่ยืดออก: เลย์เอาต์ที่ออกแบบมาสำหรับหน้าจอโทรศัพท์มาตรฐานแนวตั้ง อาจไม่รองรับสัดส่วนภาพอื่นๆ เช่น องค์ประกอบ UI ที่เติมความกว้างทั้งหมดของจอแสดงผลอาจปรากฏ แบบยืดในแนวนอน เพิ่มความกว้างสูงสุดให้กับคอมโพเนนต์เพื่อ หลีกเลี่ยงการยืด
- เปิดใช้เลย์เอาต์ให้เลื่อนได้: หากเลย์เอาต์เลื่อนไม่ได้ ผู้ใช้อาจเข้าถึงปุ่มหรือองค์ประกอบ UI อื่นๆ ที่อยู่นอกหน้าจอในแนวนอนไม่ได้ เปิดใช้เลย์เอาต์แอปให้เลื่อนได้เพื่อยืนยันว่าเข้าถึงเนื้อหาทั้งหมดได้ ไม่ว่าจอแสดงผลจะสูงเท่าใดก็ตาม
- ยืนยันความเข้ากันได้ของกล้องในแนวตั้งและแนวนอน: ช่องมองภาพของกล้อง ที่แสดงตัวอย่างซึ่งมีสัดส่วนภาพและการวางแนวที่เฉพาะเจาะจงเมื่อเทียบกับ เซ็นเซอร์ของกล้องอาจทำให้ตัวอย่างยืดหรือพลิกบนจอแสดงผลที่ไม่เป็นไปตามข้อกำหนด ตรวจสอบว่าช่องมองภาพหมุนอย่างถูกต้องเมื่อมีการเปลี่ยนการวางแนว เปิดใช้ช่องมองภาพเพื่อปรับให้เข้ากับสัดส่วนภาพของ UI ที่แตกต่างจากสัดส่วนภาพของเซ็นเซอร์
- คงสถานะไว้ระหว่างการเปลี่ยนขนาดหน้าต่าง: การนำข้อจำกัดด้านการวางแนว และสัดส่วนภาพออกอาจส่งผลให้ขนาดหน้าต่างแอปเปลี่ยนแปลงบ่อย เพื่อตอบสนองต่อวิธีที่ผู้ใช้ต้องการใช้แอป เช่น การหมุน การพับ หรือการกางอุปกรณ์ หรือการปรับขนาดแอปในโหมดหลายหน้าต่างหรือ โหมดหน้าต่างเดสก์ท็อป การเปลี่ยนแปลงการกำหนดค่า เช่น การเปลี่ยนแปลงการวางแนว และการปรับขนาดหน้าต่าง จะทําให้เกิดการสร้างกิจกรรมขึ้นใหม่ (โดยค่าเริ่มต้น) เพื่อช่วยมอบประสบการณ์การใช้งานที่ดีที่สุด โปรดรักษาสถานะของแอปเพื่อให้แอป เก็บรักษาข้อมูล (เช่น ข้อมูลที่ป้อนในแบบฟอร์ม) และผู้ใช้สามารถคงบริบทไว้ได้
- ใช้คลาสขนาดหน้าต่าง: รองรับขนาดหน้าต่างและสัดส่วนภาพที่แตกต่างกันโดยไม่ต้องปรับแต่งเฉพาะอุปกรณ์ สมมติว่าขนาดหน้าต่าง จะเปลี่ยนแปลงบ่อย ใช้คลาสขนาดหน้าต่างเพื่อระบุลักษณะของขนาดหน้าต่าง แล้วใช้เลย์เอาต์แบบปรับได้ที่เหมาะสม
- สร้างเลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์: ภายในคลาสขนาดหน้าต่าง เลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์ จะปรับให้เข้ากับการเปลี่ยนแปลงในมิติข้อมูลการแสดงผลเพื่อสร้างการนำเสนอแอปที่เหมาะสมที่สุดเสมอ
ดูคำแนะนำแบบลงมือปฏิบัติในการสร้างเลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์ใน Compose ได้ที่ Codelab สร้างแอปที่ปรับเปลี่ยนตามอุปกรณ์ด้วย Jetpack Compose หากคุณกำลังย้ายข้อมูลแอปที่ใช้ View โปรดดูกลยุทธ์การนำ Compose มาใช้
ไทม์ไลน์
- Android 16 (2025): การรองรับการวางแนวและสัดส่วนภาพทั้งหมด รวมถึงความสามารถในการปรับขนาดแอปจะเป็นประสบการณ์พื้นฐานสำหรับอุปกรณ์หน้าจอขนาดใหญ่ (ความกว้างของหน้าจอที่เล็กที่สุด >= 600dp) สำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 36 อย่างไรก็ตาม นักพัฒนาแอปสามารถเลือกไม่ใช้ได้
| ระดับ API เป้าหมาย | อุปกรณ์ที่รองรับ | อนุญาตให้นักพัฒนาแอปเลือกไม่ใช้ |
|---|---|---|
| 36 (Android 16) | อุปกรณ์ที่มีหน้าจอขนาดใหญ่ (ความกว้างของหน้าจอที่เล็กที่สุด >= 600dp) | ใช่ |
กำหนดเวลาสำหรับการกำหนดเป้าหมาย API ระดับที่เฉพาะเจาะจงจะขึ้นอยู่กับ App Store Google Play จะกำหนดให้แอปกำหนดเป้าหมายเป็น API ระดับ 36 ตั้งแต่เดือนสิงหาคม 2026
แหล่งข้อมูลเพิ่มเติม
- การเปลี่ยนแปลงลักษณะการทำงาน: แอปที่กำหนดเป้าหมายเป็น Android 16 ขึ้นไป
- สร้างแอปแบบปรับอัตโนมัติ
- สิ่งที่ควรและไม่ควรทำในการปรับ