ระดับ API: 13
Android 3.2 (HONEYCOMB_MR2
) เป็นแพลตฟอร์มรุ่นที่อัปเกรดซึ่งเพิ่มความสามารถใหม่ๆ ให้แก่ผู้ใช้และนักพัฒนาแอป ส่วนด้านล่างแสดงภาพรวมของฟีเจอร์ใหม่และ API สําหรับนักพัฒนาซอฟต์แวร์
สําหรับนักพัฒนาแอป แพลตฟอร์ม Android 3.2 มีให้บริการเป็นคอมโพเนนต์ที่ดาวน์โหลดได้สําหรับ Android SDK แพลตฟอร์มที่ดาวน์โหลดได้ประกอบด้วยคลัง Android และภาพระบบ รวมถึงชุดสกินโปรแกรมจำลองและอื่นๆ ในการเริ่มต้นพัฒนาหรือทดสอบกับ Android 3.2 ให้ใช้ Android SDK Manager เพื่อดาวน์โหลดแพลตฟอร์มลงใน SDK ของคุณ
ไฮไลต์ของแพลตฟอร์ม
ฟีเจอร์ใหม่สำหรับผู้ใช้
- การเพิ่มประสิทธิภาพสำหรับแท็บเล็ตที่หลากหลายมากขึ้น
Android 3.2 มีการปรับปรุงต่างๆ ทั่วทั้งระบบเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ยอดเยี่ยมในอุปกรณ์แท็บเล็ตที่หลากหลายมากขึ้น
- การซูมเพื่อดูความเข้ากันได้สำหรับแอปขนาดคงที่
Android 3.2 นำเสนอโหมดการซูมความเข้ากันได้แบบใหม่เพื่อให้ผู้ใช้มีวิธีใหม่ในการดูแอปที่มีขนาดคงที่ในอุปกรณ์ขนาดใหญ่ โหมดใหม่นี้เป็นอีกทางเลือกหนึ่งสำหรับการปรับขนาดพิกเซลแทนการขยาย UI มาตรฐานสำหรับแอปที่ไม่ได้ออกแบบมาให้ทำงานบนหน้าจอขนาดใหญ่ เช่น ในแท็บเล็ต ผู้ใช้จะเข้าถึงโหมดใหม่ได้จากไอคอนเมนูในแถบระบบสำหรับแอปที่ต้องรองรับความเข้ากันได้
- ซิงค์สื่อจากการ์ด SD
ในอุปกรณ์ที่รองรับการ์ด SD ตอนนี้ผู้ใช้สามารถโหลดไฟล์สื่อจากการ์ด SD ไปยังแอปที่ใช้ไฟล์สื่อได้โดยตรงแล้ว สิ่งอํานวยความสะดวกของระบบทําให้แอปเข้าถึงไฟล์ได้จากที่เก็บสื่อของระบบ
ฟีเจอร์ใหม่สำหรับนักพัฒนาแอป
- Extended API สำหรับจัดการการรองรับหน้าจอ
Android 3.2 เปิดตัวส่วนขยายสำหรับ API การสนับสนุนหน้าจอของแพลตฟอร์มเพื่อให้นักพัฒนาซอฟต์แวร์มีวิธีการเพิ่มเติมในการจัดการ UI ของแอปพลิเคชันในอุปกรณ์ที่ขับเคลื่อนโดย Android หลากหลายรุ่น API นี้ประกอบด้วยตัวระบุทรัพยากรใหม่และแอตทริบิวต์ไฟล์ Manifest ใหม่ที่ช่วยให้คุณควบคุมวิธีที่แอปแสดงในขนาดต่างๆ ได้แม่นยำยิ่งขึ้น แทนที่จะใช้หมวดหมู่ขนาดทั่วไป
แพลตฟอร์มยังมีโหมดความเข้ากันได้กับการซูมแบบใหม่ที่แสดงผล UI ในพื้นที่หน้าจอขนาดเล็ก จากนั้นปรับขนาดให้เต็มพื้นที่บนจอแสดงผล เพื่อให้การแสดงผลของแอปขนาดคงที่และแอปที่รองรับหน้าจอขนาดต่างๆ ดีที่สุด ดูข้อมูลเพิ่มเติมเกี่ยวกับ API การรองรับหน้าจอและการควบคุมที่ API มอบให้ได้ในส่วนด้านล่าง
ภาพรวมของ API
Screens Support APIs
Android 3.2 มี API ที่สนับสนุนหน้าจอใหม่ที่ช่วยให้คุณควบคุมวิธีแสดงแอปพลิเคชันในหน้าจอขนาดต่างๆ ได้มากขึ้น API นี้สร้างขึ้นจาก API การรองรับหน้าจอที่มีอยู่ รวมถึงรูปแบบความหนาแน่นของหน้าจอทั่วไปของแพลตฟอร์ม แต่ขยายความสามารถให้กําหนดเป้าหมายช่วงหน้าจอที่เฉพาะเจาะจงตามมิติข้อมูลของหน้าจอ ซึ่งวัดเป็นหน่วยพิกเซลที่ไม่ขึ้นอยู่กับความหนาแน่น (เช่น กว้าง 600dp หรือ 720dp) แทนที่จะกําหนดเป้าหมายตามขนาดหน้าจอทั่วไป (เช่น ขนาดใหญ่หรือขนาดใหญ่พิเศษ)
เมื่อออกแบบ UI ของแอปพลิเคชัน คุณยังคงต้องอาศัยแพลตฟอร์มในการจัดทำความหนาแน่นของแอบสแตรกต์ ซึ่งหมายความว่าแอปพลิเคชันไม่จำเป็นต้องชดเชยความแตกต่างของความหนาแน่นพิกเซลจริงในอุปกรณ์ต่างๆ คุณสามารถออกแบบ UI ของแอปพลิเคชันตามพื้นที่แนวนอนหรือแนวตั้งที่มีอยู่ แพลตฟอร์มจะแสดงปริมาณพื้นที่ว่างโดยใช้ลักษณะใหม่ 3 อย่าง ได้แก่ smallestWidth, width และheight
- smallestWidth ของหน้าจอคือขนาดขั้นต่ำพื้นฐานของหน้าจอ ซึ่งวัดเป็นหน่วยความหนาแน่นของพิกเซลอิสระ ("dp") เลือกความสูงหรือความกว้างของหน้าจอที่สั้นกว่า สำหรับหน้าจอในแนวตั้ง ปกติแล้ว smallestWidth จะอิงตามความกว้างของหน้าจอ ส่วนในแนวนอนจะอิงตามความสูง ในทุกกรณี smallestWidth จะมาจากลักษณะคงที่ของหน้าจอและค่าจะไม่เปลี่ยนแปลง ไม่ว่าจะปรับแนวหน้าจออย่างไรก็ตาม smallestWidth มีความสำคัญต่อแอปพลิเคชันเนื่องจากแสดงถึงความกว้างที่สั้นที่สุดที่เป็นไปได้ซึ่งจะต้องวาด UI ของแอปพลิเคชัน โดยไม่รวมพื้นที่หน้าจอที่ระบบสงวนไว้
- ในทางตรงกันข้าม ความกว้างและความสูงของหน้าจอแสดงถึงพื้นที่แนวนอนหรือแนวตั้งปัจจุบันที่ใช้ได้กับเลย์เอาต์แอปพลิเคชัน ซึ่งวัดเป็นหน่วย "dp" โดยไม่รวมพื้นที่หน้าจอที่ระบบสงวนไว้ ความกว้างและความสูงของหน้าจอจะเปลี่ยนแปลงเมื่อผู้ใช้สลับการวางแนวระหว่างแนวนอนกับแนวตั้ง
API การสนับสนุนหน้าจอใหม่ออกแบบมาเพื่อช่วยให้คุณจัดการ UI ของแอปพลิเคชันตามความกว้างที่เล็กที่สุดของหน้าจอปัจจุบัน นอกจากนี้ คุณยังจัดการ UI ตามความกว้างหรือความสูงปัจจุบันได้ตามต้องการ สำหรับวัตถุประสงค์ดังกล่าว API มีเครื่องมือต่อไปนี้
- ตัวระบุทรัพยากรใหม่สําหรับการกำหนดเป้าหมายเลย์เอาต์และทรัพยากรอื่นๆ ให้มีความกว้าง ความสูง หรือ smallestWidth ขั้นต่ำ และ
- แอตทริบิวต์ใหม่ของไฟล์ Manifest สำหรับระบุช่วง ความเข้ากันได้กับหน้าจอสูงสุดของแอป
นอกจากนี้ แอปพลิเคชันจะยังคงค้นหาระบบ รวมถึงจัดการ UI และโหลดทรัพยากรขณะรันไทม์ได้ เช่นเดียวกับในแพลตฟอร์มเวอร์ชันเก่า
เนื่องจาก API ใหม่ช่วยให้คุณกําหนดเป้าหมายหน้าจอได้โดยตรงมากขึ้นผ่าน smallestWidth, width และ height คุณจึงควรทําความเข้าใจลักษณะทั่วไปของหน้าจอประเภทต่างๆ ตารางด้านล่างแสดงตัวอย่างบางส่วน ซึ่งวัดในหน่วย "dp"
ประเภท | ความหนาแน่น (ทั่วไป) | ขนาด (dp) | smallestWidth (dp) |
---|---|---|---|
หมายเลขโทรศัพท์พื้นฐาน | MDPI | 320x480 | 320 |
แท็บเล็ตขนาดเล็ก/โทรศัพท์ขนาดใหญ่ | MDPI | 480x800 | 480 |
แท็บเล็ตขนาด 7 นิ้ว | MDPI | 600x1024 | 600 |
แท็บเล็ตขนาด 10 นิ้ว | mdpi | 800x1280 | 800 |
ส่วนด้านล่างมีข้อมูลเพิ่มเติมเกี่ยวกับตัวระบุหน้าจอและแอตทริบิวต์ไฟล์ Manifest ใหม่ ดูข้อมูลทั้งหมดเกี่ยวกับวิธีใช้ Screen Support API ได้ที่การรองรับหน้าจอหลายขนาด
ตัวระบุทรัพยากรใหม่สำหรับการรองรับหน้าจอ
ตัวระบุทรัพยากรใหม่ใน Android 3.2 ช่วยให้คุณกำหนดเป้าหมายเลย์เอาต์สำหรับช่วงขนาดหน้าจอได้ดียิ่งขึ้น เมื่อใช้ตัวระบุ คุณสามารถสร้างการกำหนดค่าทรัพยากรที่ออกแบบมาสำหรับความกว้างขั้นต่ำที่เล็กที่สุด ความกว้างปัจจุบัน หรือความสูงปัจจุบันที่เฉพาะเจาะจง ซึ่งวัดเป็นพิกเซลที่ไม่ขึ้นอยู่กับความหนาแน่น
เงื่อนไขใหม่มีดังนี้
swNNNdp
— ระบุความกว้างขั้นต่ำที่ควรใช้ทรัพยากร โดยวัดในหน่วย "dp" ดังที่กล่าวไว้ข้างต้นว่า smallestWidth ของหน้าจอจะคงที่ ไม่ว่าจะปรับการวางแนวอย่างไรก็ตาม ตัวอย่างเช่นsw320dp
,sw720dp
,sw720dp
wNNNdp
และhNNNdp
— ระบุความกว้างหรือความสูงขั้นต่ำที่ควรใช้ทรัพยากร ซึ่งวัดเป็นหน่วย "dp" ดังที่กล่าวไว้ข้างต้น ความกว้างและความสูงของหน้าจอจะสัมพันธ์กับการวางแนวของหน้าจอและจะเปลี่ยนแปลงทุกครั้งที่การวางแนวเปลี่ยนแปลง ตัวอย่าง:w320dp
,w720dp
,h1024dp
นอกจากนี้ คุณยังสร้างการกำหนดค่าทรัพยากรที่ทับซ้อนกันหลายรายการได้หากต้องการ เช่น คุณอาจติดแท็กทรัพยากรบางอย่างเพื่อใช้กับหน้าจอที่กว้างกว่า 480 dp, แท็กทรัพยากรอื่นๆ เพื่อใช้กับหน้าจอที่กว้างกว่า 600 dp และแท็กทรัพยากรอื่นๆ เพื่อใช้กับหน้าจอที่กว้างกว่า 720 dp เมื่อการกำหนดค่าทรัพยากรหลายรายการมีคุณสมบัติตรงตามหน้าจอหนึ่งๆ ระบบจะเลือกการกำหนดค่าที่ตรงกันมากที่สุด หากต้องการควบคุมอย่างละเอียดว่าทรัพยากรใดจะโหลดในหน้าจอหนึ่งๆ คุณสามารถติดแท็กทรัพยากรด้วยตัวระบุข้อจำกัดความ 1 รายการ หรือรวมตัวระบุข้อจำกัดความใหม่หรือที่มีอยู่หลายรายการเข้าด้วยกัน
ตามมิติข้อมูลทั่วไปที่แสดงก่อนหน้านี้ ต่อไปนี้เป็นตัวอย่างวิธีการใช้ตัวระบุใหม่
res/layout/main_activity.xml # For phones res/layout-sw600dp/main_activity.xml # For 7” tablets res/layout-sw720dp/main_activity.xml # For 10” tablets res/layout-w600dp/main_activity.xml # Multi-pane when enough width res/layout-sw600dp-w720dp/main_activity.xml # For large width
แพลตฟอร์มเวอร์ชันเก่าจะไม่สนใจตัวระบุใหม่ คุณจึงใช้ตัวระบุใหม่ร่วมกับตัวระบุเดิมได้ตามต้องการเพื่อให้แอปดูดีในอุปกรณ์ทุกรุ่น ตัวอย่างมีดังนี้
res/layout/main_activity.xml # For phones res/layout-xlarge/main_activity.xml # For pre-3.2 tablets res/layout-sw600dp/main_activity.xml # For 3.2 and up tablets
ดูข้อมูลทั้งหมดเกี่ยวกับวิธีใช้ตัวระบุใหม่ได้ที่การใช้ตัวระบุขนาดใหม่
แอตทริบิวต์ไฟล์ Manifest ใหม่สำหรับความเข้ากันได้ของขนาดหน้าจอ
เฟรมเวิร์กนี้มีชุดแอตทริบิวต์ <supports-screens>
ใหม่ในไฟล์ Manifest ที่ช่วยให้คุณจัดการการรองรับขนาดหน้าจอต่างๆ ของแอปได้
กล่าวอย่างเจาะจงคือ คุณสามารถระบุหน้าจอขนาดใหญ่และเล็กที่สุดที่ออกแบบแอปไว้ให้ทำงานได้ รวมถึงหน้าจอขนาดใหญ่สุดที่ออกแบบมาให้ทำงานได้โดยไม่ต้องใช้โหมดความเข้ากันได้กับหน้าจอใหม่ของระบบ แอตทริบิวต์ไฟล์ Manifest ใหม่จะระบุช่วงของหน้าจอที่แอปพลิเคชันรองรับ เช่นเดียวกับตัวระบุทรัพยากรที่อธิบายไว้ข้างต้น โดยระบุด้วย smallestWidth
แอตทริบิวต์ใหม่ของไฟล์ Manifest สำหรับการรองรับหน้าจอมีดังนี้
android:compatibleWidthLimitDp="numDp"
— แอตทริบิวต์นี้ช่วยให้คุณระบุ smallestWidth สูงสุดที่แอปพลิเคชันสามารถทำงานได้โดยไม่ต้องใช้โหมดความเข้ากันได้ หากหน้าจอปัจจุบันมีขนาดใหญ่กว่าค่าที่ระบุไว้ ระบบจะแสดงแอปพลิเคชันในโหมดปกติ แต่อนุญาตให้ผู้ใช้เปลี่ยนไปใช้โหมดความเข้ากันได้ผ่านการตั้งค่าในแถบระบบได้android:largestWidthLimitDp="numDp"
— แอตทริบิวต์นี้ช่วยให้คุณระบุ smallestWidth สูงสุดที่แอปพลิเคชันออกแบบมาให้ทำงานได้ หากหน้าจอปัจจุบันมีขนาดใหญ่กว่าค่าที่ระบุ ระบบจะบังคับให้แอปพลิเคชันเข้าสู่โหมดความเข้ากันได้ของหน้าจอ เพื่อให้แสดงผลได้ดีที่สุดบนหน้าจอปัจจุบันandroid:requiresSmallestWidthDp="numDp"
— แอตทริบิวต์นี้ช่วยให้คุณระบุความกว้างที่เล็กที่สุดขั้นต่ำที่แอปพลิเคชันทำงานได้ หากหน้าจอปัจจุบันมีขนาดเล็กกว่าค่าที่ระบุไว้ ระบบจะถือว่าแอปพลิเคชันใช้งานร่วมกับอุปกรณ์ไม่ได้ แต่ไม่ป้องกันไม่ให้ติดตั้งและใช้งานแอปพลิเคชัน
หมายเหตุ: ปัจจุบัน Google Play ไม่ได้กรองแอปตามแอตทริบิวต์ข้างต้น เราจะเพิ่มการรองรับการกรองในรุ่นแพลตฟอร์มที่ใหม่กว่า แอปพลิเคชันที่ต้องกรองตามขนาดหน้าจอจะใช้แอตทริบิวต์ <supports-screens>
ที่มีอยู่ได้
ดูข้อมูลทั้งหมดเกี่ยวกับวิธีใช้แอตทริบิวต์ใหม่ได้ที่การประกาศการรองรับขนาดหน้าจอ
โหมดความเข้ากันได้ของหน้าจอ
Android 3.2 มีโหมดความเข้ากันได้กับหน้าจอแบบใหม่สำหรับแอปพลิเคชันที่ประกาศอย่างชัดแจ้งว่าไม่รองรับหน้าจอขนาดใหญ่เท่ากับหน้าจอที่ใช้งานอยู่ โหมด "ซูม" ใหม่นี้เป็นโหมดการปรับขนาดพิกเซล ซึ่งจะแสดงผลแอปพลิเคชันในบริเวณหน้าจอที่เล็กลง จากนั้นจะปรับขนาดพิกเซลให้เต็มหน้าจอปัจจุบัน
โดยค่าเริ่มต้น ระบบจะเสนอโหมดความเข้ากันได้ของหน้าจอเป็นตัวเลือกสำหรับผู้ใช้สำหรับแอปที่ต้องใช้ ผู้ใช้สามารถเปิดและปิดโหมดซูมโดยใช้ตัวควบคุมที่มีในแถบระบบ
เนื่องจากโหมดความเข้ากันได้ของหน้าจอใหม่อาจไม่เหมาะกับแอปพลิเคชันบางรายการ แพลตฟอร์มจึงอนุญาตให้แอปพลิเคชันปิดใช้โหมดดังกล่าวได้โดยใช้แอตทริบิวต์ไฟล์ Manifest เมื่อแอปปิดใช้ฟีเจอร์นี้ ระบบจะไม่แสดงโหมดความเข้ากันได้ของ "การซูม" เป็นตัวเลือกให้ผู้ใช้เมื่อแอปทำงานอยู่
หมายเหตุ: สำหรับข้อมูลที่สำคัญเกี่ยวกับวิธีควบคุมโหมดความเข้ากันได้ในแอปพลิเคชันของคุณ โปรดอ่านบทความเกี่ยวกับโหมดใหม่สำหรับแอปบนหน้าจอขนาดใหญ่ในบล็อกนักพัฒนาซอฟต์แวร์ของ Android
ความหนาแน่นของหน้าจอใหม่สำหรับทีวี 720p และอุปกรณ์ที่คล้ายกัน
Android 3.2 เปิดตัวความหนาแน่นแบบทั่วไปใหม่ tvdpi
ซึ่งมี dpi ประมาณ 213 เพื่อตอบสนองความต้องการของแอปพลิเคชันที่ทำงานบนทีวี 720p หรือที่คล้ายกันซึ่งมีหน้าจอความหนาแน่นปานกลาง แอปพลิเคชันจะค้นหาความหนาแน่นใหม่ใน densityDpi
ได้ และใช้ตัวระบุ tvdpi
ใหม่เพื่อติดแท็กทรัพยากรสำหรับทีวีและอุปกรณ์ที่คล้ายกันได้ เช่น
res/drawable-tvdpi/my_icon.png # Bitmap for tv density
โดยทั่วไปแล้ว แอปพลิเคชันไม่ควรทำงานกับความหนาแน่นนี้ สำหรับกรณีที่จำเป็นต้องใช้เอาต์พุตสำหรับหน้าจอ 720p แพลตฟอร์มจะปรับขนาดองค์ประกอบ UI โดยอัตโนมัติ
เฟรมเวิร์ก UI
- ส่วนย่อย
- คลาส
Fragment.SavedState
ใหม่เก็บข้อมูลสถานะที่ดึงมาจากอินสแตนซ์ของข้อมูลโค้ดผ่านsaveFragmentInstanceState()
- เมธอดใหม่
saveFragmentInstanceState()
จะบันทึกสถานะปัจจุบันของอินสแตนซ์ของ Fragment ที่ระบุ คุณจะใช้สถานะนี้ในภายหลังได้เมื่อสร้างอินสแตนซ์ใหม่ของ Fragment ที่ตรงกับสถานะปัจจุบัน - เมธอดใหม่
setInitialSavedState()
จะตั้งค่าสถานะที่บันทึกไว้เริ่มต้นของ Fragment เมื่อสร้างครั้งแรก onViewCreated()
วิธีการเรียกกลับแบบใหม่จะแจ้งให้ทราบเมื่อonCreateView()
กลับมาแล้ว แต่ก่อนที่ระบบจะกู้คืนสถานะที่บันทึกไว้ในมุมมอง- เมธอด
isDetached()
จะระบุว่ามีการแยก Fragment ออกจาก UI อย่างชัดแจ้งหรือไม่ - เมธอด
attach()
และdetach()
ใหม่ช่วยให้แอปพลิเคชันแนบหรือถอดส่วนย่อยใน UI ออกได้ - เมธอด
setCustomAnimations()
โอเวอร์โหลดใหม่ช่วยให้คุณตั้งค่าทรัพยากรภาพเคลื่อนไหวที่เจาะจงเพื่อเรียกใช้สำหรับการดำเนินการเข้า/ออก และโดยเฉพาะเมื่อป๊อปสแต็กด้านหลัง การใช้งานที่มีอยู่ไม่ได้คำนึงถึงลักษณะการทํางานที่แตกต่างกันของ Fraktment เมื่อมีการลบสแต็กย้อนกลับ
- คลาส
- ข้อมูลขนาดหน้าจอใน ActivityInfo และ ApplicationInfo
ActivityInfo
เพิ่มCONFIG_SCREEN_SIZE
และCONFIG_SMALLEST_SCREEN_SIZE
เป็นมาสก์บิตในconfigChanges
บิตเหล่านี้จะระบุว่ากิจกรรมหนึ่งๆ รองรับขนาดหน้าจอและขนาดหน้าจอที่เล็กที่สุดได้หรือไม่ApplicationInfo
เพิ่มช่องlargestWidthLimitDp
,compatibleWidthLimitDp
และrequiresSmallestWidthDp
ที่ได้จากแอตทริบิวต์<supports-screens>
ที่เกี่ยวข้องในไฟล์ Manifest ของแอปพลิเคชัน
- ตัวช่วยในการรับขนาดการแสดงผลจาก WindowManager
- เมธอดใหม่
getSize()
และgetRectSize()
จะทำให้แอปพลิเคชันรับขนาดการแสดงผลดิบได้
- เมธอดใหม่
- รูปแบบ "โฮโลกราฟิก" สาธารณะใหม่
- ตอนนี้แพลตฟอร์มมีสไตล์ "โฮโลกราฟิก" สาธารณะที่หลากหลายสำหรับข้อความ วิดเจ็ตแถบดำเนินการ และแท็บ และอื่นๆ ดูรายการทั้งหมดได้ที่
R.style
- ตอนนี้แพลตฟอร์มมีสไตล์ "โฮโลกราฟิก" สาธารณะที่หลากหลายสำหรับข้อความ วิดเจ็ตแถบดำเนินการ และแท็บ และอื่นๆ ดูรายการทั้งหมดได้ที่
LocalActivityManager
,ActivityGroup
และLocalActivityManager
เลิกใช้งานแล้วตอนนี้- แอปพลิเคชันใหม่ควรใช้ Fragments แทนคลาสเหล่านี้ หากต้องการใช้งานแพลตฟอร์มเวอร์ชันเก่าต่อไป คุณสามารถใช้ไลบรารีการสนับสนุน v4 (ไลบรารีความเข้ากันได้) ซึ่งมีอยู่ใน Android SDK ไลบรารีการสนับสนุน v4 มี Fragment API เวอร์ชันที่ใช้ได้กับ Android 1.6 (API ระดับ 4) ลงไป
- สําหรับแอปที่พัฒนาขึ้นสําหรับ Android 3.0 (API ระดับ 11) ขึ้นไป โดยทั่วไปแท็บจะแสดงใน UI โดยใช้
ActionBar.newTab()
ใหม่และ API ที่เกี่ยวข้องสําหรับวางแท็บภายในพื้นที่แถบแอ็กชัน
เฟรมเวิร์กสื่อ
- ตอนนี้แอปพลิเคชันที่ใช้ผู้ให้บริการสื่อของแพลตฟอร์ม (
MediaStore
) สามารถอ่านข้อมูลสื่อจากการ์ด SD แบบถอดได้โดยตรงได้แล้ว หากอุปกรณ์รองรับ นอกจากนี้ แอปพลิเคชันยังโต้ตอบกับไฟล์ในการ์ด SD ได้โดยตรงโดยใช้ MTP API
กราฟิก
- ยูทิลิตีที่แบ่งออกเป็นหลายส่วนได้ใน Point และ PointF
- ตอนนี้คลาส
Point
และPointF
มีอินเทอร์เฟซParcelable
และเมธอดยูทิลิตีdescribeContents()
,readFromParcel()
และwriteToParcel()
แล้ว
- ตอนนี้คลาส
เฟรมเวิร์ก IME
- วิธีการ
getModifiers()
ใหม่สำหรับการดึงสถานะปัจจุบันของแป้นตัวปรับแต่ง
เฟรมเวิร์ก USB
- วิธีการ
getRawDescriptors()
ใหม่สำหรับการดึงข้อมูลตัวบ่งชี้ USB ดิบของอุปกรณ์ คุณสามารถใช้เมธอดนี้เพื่อเข้าถึงตัวบ่งชี้ที่ระบบไม่รองรับโดยตรงผ่าน API ระดับที่สูงขึ้น
เครือข่าย
- ค่าคงที่ประเภทเครือข่าย
ConnectivityManager
เพิ่มค่าคงที่TYPE_ETHERNET
และTYPE_BLUETOOTH
โทรศัพท์
- ค่าคงที่ประเภทเครือข่าย
NETWORK_TYPE_HSPAP
ใหม่
ยูทิลิตีหลัก
- ยูทิลิตีที่แบ่งออกเป็นส่วนๆ ได้
- อินเทอร์เฟซใหม่
Parcelable.ClassLoaderCreator
อนุญาตให้แอปพลิเคชันรับ ClassLoader ที่สร้างออบเจ็กต์ adoptFd
,dup()
และfromFd()
ใหม่สำหรับการจัดการออบเจ็กต์ParcelFileDescriptor
- อินเทอร์เฟซใหม่
- Binder และ IBinder
- เมธอดใหม่
dumpAsync()
ในBinder
และIBinder
จะอนุญาตให้แอปพลิเคชันถ่ายโอนไปยังไฟล์ที่ระบุ ซึ่งทำให้เป้าหมายประมวลผลแบบไม่พร้อมกัน - รหัสธุรกรรมของโปรโตคอล
IBinder
ใหม่TWEET_TRANSACTION
ช่วยให้แอปพลิเคชันส่งทวีตไปยังออบเจ็กต์เป้าหมายได้
- เมธอดใหม่
ค่าคงที่ของฟีเจอร์ใหม่
แพลตฟอร์มจะเพิ่มค่าคงที่ของฟีเจอร์ฮาร์ดแวร์ใหม่ที่คุณประกาศได้ในไฟล์ Manifest ของแอปพลิเคชัน เพื่อแจ้งให้บุคคลภายนอก เช่น Google Play ทราบถึงความสามารถของฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็น คุณจะประกาศค่าคงที่ฟีเจอร์เหล่านี้และค่าคงที่ฟีเจอร์อื่นๆ ในองค์ประกอบไฟล์ Manifest <uses-feature>
Google Play จะกรองแอปพลิเคชันตามแอตทริบิวต์ <uses-feature>
เพื่อให้แอปพลิเคชันพร้อมให้บริการในอุปกรณ์ที่เป็นไปตามข้อกำหนดเท่านั้น
- ค่าคงที่ของฟีเจอร์สำหรับข้อกำหนดแนวนอนหรือแนวตั้ง
Android 3.2 นำเสนอค่าคงที่ของฟีเจอร์ใหม่ที่ช่วยให้แอปพลิเคชันระบุได้ว่าจะต้องแสดงผลในแนวตั้งหรือแนวนอน หรือทั้ง 2 อย่าง การประกาศค่าคงที่เหล่านี้บ่งบอกว่าต้องไม่ติดตั้งแอปพลิเคชันในอุปกรณ์ที่ไม่มีการวางแนวที่เกี่ยวข้อง ในทางกลับกัน หากไม่ได้ประกาศค่าคงที่อย่างน้อย 1 ค่า แสดงว่าแอปพลิเคชันไม่มีค่ากำหนดสำหรับการวางแนวที่ไม่ได้ประกาศ และอาจติดตั้งในอุปกรณ์ที่ไม่มีการวางแนวดังกล่าว
android.hardware.screen.landscape
— แอปพลิเคชันต้องแสดงในแนวนอนandroid.hardware.screen.portrait
— แอปพลิเคชันต้องแสดงในแนวตั้ง
แอปพลิเคชันทั่วไปที่ทำงานได้อย่างถูกต้องทั้งในแนวนอนและแนวตั้งโดยปกติแล้วไม่จำเป็นต้องประกาศข้อกำหนดการวางแนว แต่แอปพลิเคชันที่ออกแบบมาเพื่อการวางแนวเดียวเป็นหลัก เช่น แอปที่ออกแบบมาสำหรับทีวี อาจประกาศค่าคงที่อย่างใดอย่างหนึ่งเพื่อให้แน่ใจว่าอุปกรณ์ที่ไม่มีการวางแนวนั้นจะใช้แอปไม่ได้
หากกิจกรรมใดๆ ที่ประกาศไว้ในคำขอไฟล์ Manifest ว่าดำเนินการในการวางแนวที่เจาะจงโดยใช้แอตทริบิวต์
android:screenOrientation
ก็จะเป็นการประกาศว่าแอปพลิเคชันกำหนดให้มีการวางแนวดังกล่าวด้วย - ค่าคงที่ของฟีเจอร์อื่นๆ
android.hardware.faketouch.multitouch.distinct
— แอปพลิเคชันต้องรองรับอินพุตแบบมัลติทัชจำลองที่มีการติดตามจุดต่างๆ อย่างน้อย 2 จุดandroid.hardware.faketouch.multitouch.jazzhand
— แอปพลิเคชันต้องรองรับอินพุตแบบมัลติทัชจำลองที่มีการติดตามจุดต่างๆ อย่างน้อย 5 จุด
รายงานความแตกต่างของ API
ดูรายละเอียดการเปลี่ยนแปลง API ทั้งหมดใน Android 3.2 (API ระดับ 13) ได้ที่รายงานความแตกต่างของ API
ระดับ API
แพลตฟอร์ม Android 3.2 มี API เฟรมเวิร์กเวอร์ชันอัปเดต Android 3.2 API ได้รับตัวระบุจำนวนเต็ม 13 ที่เก็บอยู่ในระบบ ตัวระบุนี้เรียกว่า "ระดับ API" ซึ่งช่วยให้ระบบสามารถระบุได้อย่างถูกต้องว่าแอปพลิเคชันเข้ากันได้กับระบบหรือไม่ก่อนที่จะติดตั้งแอปพลิเคชัน
หากต้องการใช้ API ที่เปิดตัวใน Android 3.2 ในแอปพลิเคชัน คุณจะต้องคอมไพล์แอปพลิเคชันกับไลบรารี Android ที่มีให้ในแพลตฟอร์ม SDK ของ Android 3.2 คุณอาจต้องเพิ่มแอตทริบิวต์ android:minSdkVersion="13"
ลงในองค์ประกอบ <uses-sdk>
ในไฟล์ Manifest ของแอปพลิเคชันด้วย ทั้งนี้ขึ้นอยู่กับความต้องการของคุณ
ดูข้อมูลเพิ่มเติมได้ที่API ระดับคืออะไร