ตอนนี้แอป Android ทำงานบนอุปกรณ์ที่หลากหลาย (เช่น โทรศัพท์ แท็บเล็ต อุปกรณ์แบบพับได้ เดสก์ท็อป รถยนต์ และทีวี) และโหมดการแสดงผลในหน้าต่างบนหน้าจอขนาดใหญ่ (เช่น การแยกหน้าจอและหน้าต่างเดสก์ท็อป) นักพัฒนาแอปจึงควรสร้างแอป Android ที่ปรับให้เข้ากับขนาดหน้าจอและหน้าต่างได้ ไม่ว่าอุปกรณ์จะวางแนวใดก็ตาม กระบวนทัศน์ต่างๆ เช่น การจำกัดการวางแนวและความสามารถในการปรับขนาด มีข้อจำกัดมากเกินไปในโลกที่มีอุปกรณ์หลากหลายในปัจจุบัน
ละเว้นข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนภาพ
สำหรับแอปที่กำหนดเป้าหมายเป็น Android 17 (ระดับ API 37) ขึ้นไป ข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนการแสดงผลจะไม่มีผลกับจอแสดงผลที่มีความกว้างที่เล็กที่สุดมากกว่า 600dp อีกต่อไป แอปจะแสดงเต็มหน้าต่างแสดงผล โดยไม่คำนึงถึงสัดส่วนภาพหรือการวางแนวที่ผู้ใช้ต้องการ และไม่มีการใช้แถบสีดำด้านข้าง
Android 17 จะนำการเลือกไม่ใช้ข้อจำกัดด้านการวางแนวและความสามารถในการปรับขนาดบนอุปกรณ์หน้าจอขนาดใหญ่ชั่วคราวสำหรับนักพัฒนาแอปที่มีใน Android 16 ออก
การเปลี่ยนแปลงนี้จะทำให้เกิดลักษณะการทำงานใหม่ของแพลตฟอร์มมาตรฐาน Android กำลังเปลี่ยนไปใช้รูปแบบที่แอปควรปรับให้เข้ากับการวางแนว ขนาดการแสดงผล และสัดส่วนภาพที่หลากหลาย ข้อจำกัดต่างๆ เช่น การวางแนวคงที่หรือการปรับขนาดที่จำกัดจะขัดขวางความสามารถในการปรับเปลี่ยนของแอป ทำให้แอปปรับเปลี่ยนตามอุปกรณ์เพื่อมอบประสบการณ์ของผู้ใช้ที่ดีที่สุด
นอกจากนี้ คุณยังทดสอบลักษณะการทำงานนี้ได้โดยใช้เฟรมเวิร์กความเข้ากันได้ของแอปและเปิดใช้แฟล็กความเข้ากันได้ UNIVERSAL_RESIZABLE_BY_DEFAULT
การเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบที่พบได้ทั่วไป
การละเว้นข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนการแสดงผลอาจส่งผลต่อ UI ของแอปในอุปกรณ์บางรุ่น โดยเฉพาะองค์ประกอบที่ออกแบบมาสำหรับเลย์เอาต์ขนาดเล็กที่ล็อกไว้ในแนวตั้ง ตัวอย่างเช่น แอปอาจมีปัญหา เช่น เลย์เอาต์ที่ยืดออก รวมถึงภาพเคลื่อนไหวและคอมโพเนนต์ที่อยู่นอกหน้าจอ สมมติฐานใดๆ ที่คุณตั้งขึ้นเกี่ยวกับสัดส่วนภาพหรือการวางแนวอาจทำให้เกิดปัญหาด้านภาพในแอปได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีหลีกเลี่ยงปัญหาเหล่านี้และปรับปรุงลักษณะการทำงานแบบปรับเปลี่ยนได้ของแอป
ปัญหาที่พบได้ทั่วไปในอุปกรณ์แบบพับได้ในแนวนอนหรือการคำนวณสัดส่วนภาพในสถานการณ์ต่างๆ เช่น การแสดงผลหลายหน้าต่าง การแสดงหน้าต่างเดสก์ท็อป หรือจอแสดงผลที่เชื่อมต่อ คือเมื่อตัวอย่างภาพจากกล้องปรากฏขึ้นแบบยืด หมุน หรือครอบตัด ปัญหานี้มักเกิดขึ้นในอุปกรณ์หน้าจอขนาดใหญ่และอุปกรณ์แบบพับได้ เนื่องจากแอปสันนิษฐานว่าฟีเจอร์ของกล้อง (เช่น สัดส่วนภาพและการวางแนวเซ็นเซอร์) และฟีเจอร์ของอุปกรณ์ (เช่น การวางแนวอุปกรณ์และการวางแนวตามธรรมชาติ) มีความสัมพันธ์กันแบบตายตัว ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการตัวอย่างภาพจากกล้อง
การอนุญาตให้หมุนอุปกรณ์จะส่งผลให้มีการสร้างกิจกรรมใหม่มากขึ้น ซึ่งอาจส่งผลให้สถานะของผู้ใช้สูญหายหากไม่ได้รับการเก็บรักษาอย่างเหมาะสม ดูวิธีบันทึกสถานะ UI อย่างถูกต้องในบันทึกสถานะ UI
รายละเอียดการใช้งาน
ระบบจะไม่สนใจแอตทริบิวต์ไฟล์ Manifest และ API รันไทม์ต่อไปนี้ในอุปกรณ์หน้าจอขนาดใหญ่ในโหมดเต็มหน้าจอและโหมดหลายหน้าต่าง
screenOrientationresizeableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
ระบบจะไม่สนใจค่าต่อไปนี้สำหรับ screenOrientation, setRequestedOrientation() และ getRequestedOrientation()
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
android:resizeableActivity="false",
android:minAspectRatio และ android:maxAspectRatio จะไม่มีผลต่อความสามารถในการปรับขนาดการแสดงผล
ข้อยกเว้น
ข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนการแสดงผลของ Android 17 จะไม่มีผลในสถานการณ์ต่อไปนี้
- เกม (อิงตามแฟล็ก
android:appCategory) - ผู้ใช้เลือกใช้ลักษณะการทำงานเริ่มต้นของแอปอย่างชัดแจ้งในการตั้งค่าสัดส่วนภาพของอุปกรณ์
- หน้าจอที่มีความกว้างต่ำสุดน้อยกว่า
sw600dp