ระดับ 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 เปิดตัวส่วนขยายสำหรับ Screen Support API ของแพลตฟอร์มเพื่อให้นักพัฒนาแอปมีวิธีเพิ่มเติมในการจัดการ UI ของแอปพลิเคชันในอุปกรณ์ Android ที่หลากหลาย API นี้ประกอบด้วยตัวระบุทรัพยากรใหม่ ที่ให้คุณควบคุมวิธีการต่างๆ ได้อย่างแม่นยำมากขึ้น แสดงแอปได้ในขนาดต่างๆ กันแทนที่จะอิงตามแบบทั่วๆ ไป หมวดหมู่ขนาด
แพลตฟอร์มยังมีโหมดความเข้ากันได้กับการซูมแบบใหม่ที่จะแสดงผล UI ในพื้นที่หน้าจอขนาดเล็ก จากนั้นจะปรับขนาดให้เต็มพื้นที่บนจอแสดงผล เพื่อให้การแสดงผลของแอปขนาดคงที่และแอปที่รองรับหน้าจอขนาดต่างๆ ดีที่สุด ดูข้อมูลเพิ่มเติมเกี่ยวกับ API การสนับสนุนหน้าจอและการควบคุมที่มีให้ โปรดดูหัวข้อด้านล่าง
ภาพรวมของ API
API การสนับสนุนหน้าจอ
Android 3.2 เปิดตัว API การสนับสนุนหน้าจอใหม่ที่ช่วยให้คุณควบคุมวิธีที่แอปพลิเคชันแสดงในหน้าจอขนาดต่างๆ ได้มากขึ้น API นี้สร้างขึ้นจาก API การรองรับหน้าจอที่มีอยู่ รวมถึงรูปแบบความหนาแน่นของหน้าจอทั่วไปของแพลตฟอร์ม แต่ขยายความสามารถให้กําหนดเป้าหมายช่วงหน้าจอที่เฉพาะเจาะจงตามมิติข้อมูลของหน้าจอ ซึ่งวัดเป็นหน่วยพิกเซลที่ไม่ขึ้นอยู่กับความหนาแน่น (เช่น กว้าง 600dp หรือ 720dp) แทนที่จะกําหนดตามขนาดหน้าจอทั่วไป (เช่น ขนาดใหญ่หรือขนาดใหญ่พิเศษ)
เมื่อออกแบบ UI ของแอปพลิเคชัน คุณยังใช้แพลตฟอร์มเพื่อทำสิ่งต่อไปนี้ได้ ให้ความหนาแน่นของนามธรรม (ความหนาแน่น) ซึ่งหมายความว่าแอปพลิเคชันไม่ต้อง เพื่อชดเชยความแตกต่างในความหนาแน่นของพิกเซลจริงในอุปกรณ์ต่างๆ คุณสามารถออกแบบ UI ของแอปพลิเคชันตามพื้นที่แนวนอนหรือแนวตั้งที่มีอยู่ แพลตฟอร์มนี้แสดงปริมาณพื้นที่ว่างโดยใช้ ลักษณะเฉพาะ: smallestWidth, width และ height
- smallestWidth ของหน้าจอคือขนาดขั้นต่ำพื้นฐาน โดยวัดเป็นหน่วยพิกเซล ("dp") ความหนาแน่นอิสระ สำหรับความสูงหน้าจอหรือ ความกว้างจะสั้นกว่าของทั้ง 2 แบบ สำหรับหน้าจอในแนวตั้ง SmallestWidth โดยปกติจะขึ้นอยู่กับความกว้าง ในขณะที่แนวนอนจะอ้างอิงตาม สูงมากๆ ในทุกกรณี smallestWidth จะมาจากลักษณะคงที่ของหน้าจอและค่าจะไม่เปลี่ยนแปลง ไม่ว่าจะปรับแนวหน้าจออย่างไรก็ตาม ความกว้างที่เล็กที่สุด เป็นสิ่งสำคัญสำหรับแอปพลิเคชันเพราะแสดงความกว้างที่สั้นที่สุด ซึ่งจะต้องวาด UI ของแอปพลิเคชัน โดยไม่รวมพื้นที่หน้าจอ สงวนไว้โดยระบบ
- ในทางตรงกันข้าม ความกว้างและความสูงของหน้าจอแสดงถึงพื้นที่แนวนอนหรือแนวตั้งปัจจุบันที่ใช้ได้กับเลย์เอาต์แอปพลิเคชัน ซึ่งวัดเป็นหน่วย "dp" โดยไม่รวมพื้นที่หน้าจอที่ระบบสงวนไว้ ความกว้างและ ความสูงของหน้าจอจะเปลี่ยนไปเมื่อผู้ใช้เปลี่ยนการวางแนวระหว่างแนวนอน และแนวตั้ง
API ใหม่ที่รองรับหน้าจอออกแบบมาเพื่อให้คุณจัดการ UI ของแอปพลิเคชันตาม smallestWidth ของหน้าจอปัจจุบัน นอกจากนี้ คุณยังจัดการ UI ตามความกว้างหรือความสูงปัจจุบันได้ตามต้องการ API มีเครื่องมือต่อไปนี้เพื่อวัตถุประสงค์ดังกล่าว
- ตัวระบุทรัพยากรใหม่สำหรับเลย์เอาต์การกำหนดเป้าหมายและแหล่งข้อมูลอื่นๆ ความกว้าง ความกว้าง หรือความสูงขั้นต่ำที่เล็กที่สุด และ
- แอตทริบิวต์ไฟล์ 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 ใหม่ สำหรับข้อมูลทั้งหมดเกี่ยวกับวิธีใช้หน้าจอ API การสนับสนุน โปรดดูการสนับสนุนหลายรายการ หน้าจอ
ตัวระบุทรัพยากรใหม่สําหรับการรองรับหน้าจอ
ตัวระบุทรัพยากรใหม่ใน Android 3.2 ช่วยให้คุณกำหนดเป้าหมายเลย์เอาต์ได้ดียิ่งขึ้น สำหรับหน้าจอหลายขนาด คุณใช้ตัวระบุเพื่อสร้างแหล่งข้อมูล ที่ออกแบบมาสำหรับความกว้างขั้นต่ำที่เล็กที่สุด ความกว้างปัจจุบัน หรือ ความสูงปัจจุบัน วัดเป็นความหนาแน่นของพิกเซลอิสระ
เงื่อนไขใหม่มีดังนี้
swNNNdp
— ระบุ smallestWidth ขั้นต่ำที่ควรใช้ทรัพยากร ซึ่งวัดเป็นหน่วย "dp" ดังที่กล่าวไว้ข้างต้น ความกว้างที่เล็กที่สุดของหน้าจอจะคงที่โดยไม่คำนึงถึงการวางแนว ตัวอย่าง: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 สำหรับความเข้ากันได้กับขนาดหน้าจอ
เฟรมเวิร์กนี้จะมีแอตทริบิวต์ไฟล์ Manifest ของ <supports-screens>
ชุดใหม่ที่ช่วยให้
คุณจัดการการรองรับหน้าจอขนาดต่างๆ ของแอปได้
กล่าวโดยละเอียดคือ คุณสามารถระบุหน้าจอที่ใหญ่ที่สุดและเล็กที่สุดที่แอปออกแบบมาให้ทำงานได้ รวมถึงหน้าจอที่ใหญ่ที่สุดที่แอปออกแบบมาให้ทำงานได้โดยไม่ต้องใช้โหมดความเข้ากันได้ของหน้าจอใหม่ของระบบ เช่นเดียวกับตัวระบุทรัพยากรที่อธิบายไว้ข้างต้น ฟิลด์
แอตทริบิวต์ไฟล์ Manifest จะระบุช่วงหน้าจอที่แอปพลิเคชันรองรับ
ตามที่ระบุโดย SmallestWidth
แอตทริบิวต์ไฟล์ Manifest ใหม่สำหรับการรองรับหน้าจอมีดังนี้
android:compatibleWidthLimitDp="numDp"
— นี้ ให้คุณระบุ SmallestWidth สูงสุดที่แอปพลิเคชัน สามารถทำงานโดยไม่ต้องใช้โหมดความเข้ากันได้ หากหน้าจอปัจจุบันมีขนาดใหญ่กว่าค่าที่ระบุไว้ ระบบจะแสดงแอปพลิเคชันในโหมดปกติ แต่อนุญาตให้ผู้ใช้เปลี่ยนไปใช้โหมดความเข้ากันได้ผ่านการตั้งค่าในแถบระบบได้android:largestWidthLimitDp="numDp"
— แอตทริบิวต์นี้ช่วยให้คุณระบุ smallestWidth สูงสุดที่แอปพลิเคชันออกแบบมาให้ทำงานได้ หากหน้าจอปัจจุบันมีขนาดใหญ่กว่าค่าที่ระบุ ระบบจะบังคับให้แอปพลิเคชันเข้าสู่โหมดความเข้ากันได้ของหน้าจอ เพื่อให้แสดงผลได้ดีที่สุดบนหน้าจอปัจจุบันandroid:requiresSmallestWidthDp="numDp"
— แอตทริบิวต์นี้ช่วยให้คุณระบุ smallestWidth ขั้นต่ำที่แอปพลิเคชันสามารถทำงานได้ ถ้าหน้าจอปัจจุบันมีขนาดเล็กกว่าค่าที่ระบุ ระบบจะ ถือว่าแอปพลิเคชันไม่สามารถทำงานร่วมกับอุปกรณ์ แต่ไม่ได้ป้องกัน ไม่ให้ติดตั้งและเรียกใช้ได้
หมายเหตุ: ปัจจุบัน 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()
บันทึกสถานะปัจจุบันของอินสแตนซ์ ส่วนย่อยที่กำหนด คุณจะใช้สถานะได้ในภายหลังเมื่อสร้างอินสแตนซ์ใหม่ของ Fraktment ที่ตรงกับสถานะปัจจุบัน - เมธอดใหม่
setInitialSavedState()
ตั้งค่าสถานะที่บันทึกไว้เริ่มต้นสำหรับ Fragment เมื่อสร้างครั้งแรก - เมธอด Callback ใหม่ของ
onViewCreated()
จะแจ้ง Fragment ที่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 Library มี 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
- อินเทอร์เฟซใหม่
- แฟ้มและ 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
— แอปพลิเคชันต้องการการสนับสนุนสำหรับอินพุต Mulitouch ที่จำลองซึ่งมีการติดตามที่ต่างกัน 5 จุดขึ้นไป
รายงานความแตกต่างของ API
ดูรายละเอียดการเปลี่ยนแปลง API ทั้งหมดใน Android 3.2 (API ระดับ 13) ได้ที่รายงานความแตกต่างของ API
ระดับ API
แพลตฟอร์ม Android 3.2 มีรุ่นอัปเดตของ Framework API API ของ Android 3.2 ได้รับตัวระบุจำนวนเต็ม 13 — ซึ่งก็คือ ที่จัดเก็บไว้ในตัวระบบเอง ตัวระบุนี้เรียกว่า "ระดับ API" ซึ่งช่วยให้ระบบสามารถระบุได้อย่างถูกต้องว่าแอปพลิเคชันเข้ากันได้กับระบบหรือไม่ก่อนที่จะติดตั้งแอปพลิเคชัน
หากต้องการใช้ API ที่เปิดตัวใน Android 3.2 ในแอปพลิเคชันของคุณ
คุณจะต้องคอมไพล์แอปพลิเคชันกับไลบรารี Android ที่ให้ไว้ใน
แพลตฟอร์ม Android 3.2 SDK คุณอาจต้องเพิ่มแอตทริบิวต์ android:minSdkVersion="13"
ลงในองค์ประกอบ <uses-sdk>
ในไฟล์ Manifest ของแอปพลิเคชันด้วย ทั้งนี้ขึ้นอยู่กับความต้องการ
สำหรับข้อมูลเพิ่มเติม โปรดอ่าน API คืออะไร ระดับ