ระดับ API: 9
สําหรับนักพัฒนาแอป แพลตฟอร์ม Android 2.3 (GINGERBREAD
) มีให้บริการเป็นคอมโพเนนต์ที่ดาวน์โหลดได้สําหรับ Android SDK แพลตฟอร์มที่ดาวน์โหลดได้ประกอบด้วยคลัง Android และภาพระบบ รวมถึงชุดสกินโปรแกรมจำลองและอื่นๆ เพื่อเริ่มพัฒนาหรือทดสอบกับ Android 2.3
ใช้ Android SDK Manager เพื่อดาวน์โหลดแพลตฟอร์มนั้นลงใน SDK ของคุณ
ภาพรวมของ API
ส่วนต่างๆ ด้านล่างจะแสดงภาพรวมทางเทคนิคเกี่ยวกับสิ่งใหม่ๆ สำหรับนักพัฒนาซอฟต์แวร์ ในข้อ 2.3 รวมถึงฟีเจอร์ใหม่และการเปลี่ยนแปลงด้านกรอบการทำงาน API ตั้งแต่เวอร์ชันก่อนหน้า
VoIP ที่ใช้ SIP
ปัจจุบันแพลตฟอร์มนี้มีสแต็กโปรโตคอล SIP และเฟรมเวิร์ก API ที่ช่วยให้ สร้างแอปพลิเคชันโทรศัพท์ อินเทอร์เน็ต เมื่อใช้ API แอปพลิเคชันสามารถนำเสนอ ฟีเจอร์การโทรด้วยเสียงโดยไม่ต้องจัดการเซสชัน ระดับการรับส่งข้อมูล การสื่อสาร หรือเสียง ซึ่งได้รับการจัดการ อย่างโปร่งใสผ่าน SIP API และบริการของแพลตฟอร์ม
SIP API พร้อมให้ใช้งานใน android.net.sip
ใหม่ คลาสคีย์คือ SipManager
ซึ่งแอปพลิเคชันใช้เพื่อตั้งค่าและจัดการโปรไฟล์ SIP จากนั้นเริ่มการโทรด้วยเสียงและรับสายด้วยเสียง เมื่อทำการโทรด้วยเสียงแล้ว แอปพลิเคชันจะสามารถปิดเสียงการโทรได้
เปิดโหมดลำโพง ส่งเสียงสัญญาณ DTMF และอื่นๆ นอกจากนี้ แอปพลิเคชันยังใช้ SipManager
เพื่อสร้างการเชื่อมต่อ SIP ทั่วไปได้ด้วย
สแต็ก SIP และบริการพื้นฐานของแพลตฟอร์มจะพร้อมใช้งานในอุปกรณ์โดยขึ้นอยู่กับการพิจารณาของผู้ผลิตและผู้ให้บริการที่เกี่ยวข้อง ด้วยเหตุนี้ แอปพลิเคชันจึงควรใช้เมธอด isApiSupported()
เพื่อตรวจสอบว่ามีการรองรับ SIP หรือไม่ก่อนที่จะแสดงฟังก์ชันการโทรต่อผู้ใช้
หากต้องการใช้ SIP API แอปพลิเคชันต้องขอสิทธิ์จากผู้ใช้โดยประกาศ <uses-permission
android:name="android.permission.INTERNET">
และ <uses-permission
android:name="android.permission.USE_SIP">
ในไฟล์ Manifest
นอกจากนี้ นักพัฒนาแอปยังขอการกรองใน Google Play ได้ด้วย เช่น ไม่ให้ผู้ใช้ที่อุปกรณ์ไม่มี SIP Stack และบริการของแพลตฟอร์มค้นพบแอปพลิเคชัน หากต้องการส่งคำขอการกรอง ให้เพิ่ม <uses-feature
android:name="android.software.sip"
android:required="true">
และ <uses-feature
android:name="android.software.sip.voip">
ลงในไฟล์ Manifest ของแอปพลิเคชัน
โปรดอ่านข้อมูลเพิ่มเติมในคู่มือนักพัฒนาซอฟต์แวร์ SIP
Near Field Communication (NFC)
Android 2.3 มีสแต็ก NFC และ API เฟรมเวิร์กที่ช่วยนักพัฒนาแอปอ่านแท็ก NDEF ที่ค้นพบเมื่อผู้ใช้แตะอุปกรณ์ที่เปิดใช้ NFC เพื่อติดแท็กองค์ประกอบที่ฝังอยู่ในสติกเกอร์ โปสเตอร์อัจฉริยะ และแม้แต่อุปกรณ์อื่นๆ
แพลตฟอร์มจะให้บริการ NFC พื้นฐานที่ทำงานร่วมกับอุปกรณ์ได้ ฮาร์ดแวร์เพื่อค้นหาแท็กเมื่ออยู่ในช่วงสัญญาณ เมื่อพบแท็ก แพลตฟอร์มจะแจ้งให้แอปพลิเคชันทราบโดยการออกอากาศ Intent โดยต่อท้ายข้อความ NDEF ของแท็กไปยัง Intent เป็นข้อมูลเพิ่มเติม แอปพลิเคชันสามารถสร้างตัวกรอง Intent เพื่อจดจําและจัดการแท็กและข้อความที่กำหนดเป้าหมาย เช่น หลังจากได้รับแท็กจาก Intent แอปพลิเคชันจะดึงข้อมูลข้อความ NDEF จัดเก็บ แจ้งเตือนผู้ใช้ หรือจัดการด้วยวิธีอื่นๆ
NFC API พร้อมใช้งานในแพ็กเกจ android.nfc
คลาสหลักๆ ได้แก่
NfcAdapter
ซึ่งแสดงถึงฮาร์ดแวร์ NFC ในอุปกรณ์NdefMessage
ซึ่งแสดงข้อความข้อมูล NDEF ซึ่งเป็นรูปแบบมาตรฐานในการส่ง "ระเบียน" ที่มีข้อมูลระหว่างอุปกรณ์กับแท็ก แอปพลิเคชันรับข้อความเหล่านี้จาก IntentACTION_TAG_DISCOVERED
ได้NdefRecord
นำส่งในNdefMessage
ซึ่งอธิบายประเภทข้อมูลที่แชร์ และ เป็นแหล่งที่มาของข้อมูล
การสื่อสาร NFC อาศัยเทคโนโลยีไร้สายในฮาร์ดแวร์ของอุปกรณ์ ดังนั้นผู้ผลิตจะเป็นผู้กำหนดการรองรับฟีเจอร์ NFC ของแพลตฟอร์มในอุปกรณ์หนึ่งๆ หากต้องการทราบการรองรับ NFC ในอุปกรณ์ปัจจุบัน
แอปพลิเคชันสามารถโทรหา isEnabled()
เพื่อ
ค้นหา NfcAdapter
อย่างไรก็ตาม NFC API จะพร้อมใช้งานเสมอ ไม่ว่าจะรองรับฮาร์ดแวร์พื้นฐานหรือไม่ก็ตาม
หากต้องการใช้ NFC API แอปพลิเคชันต้องขอสิทธิ์จากผู้ใช้ด้วยการประกาศ <uses-permission
android:name="android.permission.NFC">
ในไฟล์ Manifest
นอกจากนี้ นักพัฒนาแอปยังขอการกรองใน Google Play ได้ เพื่อให้ผู้ใช้ที่อุปกรณ์ไม่รองรับ NFC ไม่พบแอปพลิเคชันของตน หากต้องการขอการกรอง ให้เพิ่ม <uses-feature android:name="android.hardware.nfc"
android:required="true">
ลงในไฟล์ Manifest ของแอปพลิเคชัน
โปรดดูแอปพลิเคชันตัวอย่างที่ใช้ NFC API ได้ที่ NFCDemo
เครื่องวัดการหมุนและเซ็นเซอร์อื่นๆ
Android 2.3 เพิ่มการสนับสนุนแพลตฟอร์มและ API สำหรับการอ่านเซ็นเซอร์ใหม่ที่หลากหลาย ประเภทต่างๆ ได้แก่ เครื่องวัดการหมุน เวกเตอร์การหมุน ความเร่งเชิงเส้น แรงโน้มถ่วง และบาโรมิเตอร์ นักพัฒนาแอปสามารถใช้ค่าที่อ่านได้จากเซ็นเซอร์แบบใหม่เพื่อสร้างแอปพลิเคชันที่ตอบสนอง มีการเปลี่ยนแปลงตำแหน่งและการเคลื่อนไหวของอุปกรณ์อย่างรวดเร็วและราบรื่น Sensor API รายงานเครื่องวัดการหมุนและการเปลี่ยนแปลงของเซ็นเซอร์อื่นๆ เป็นที่สนใจ แอปพลิเคชันต่างๆ ทั้งที่กำลังทำงานบนเฟรมเวิร์กของแอปพลิเคชันหรือในภาษา โค้ด
โปรดทราบว่าชุดเซ็นเซอร์ของฮาร์ดแวร์บางรุ่นที่มีอยู่ในอุปกรณ์หนึ่งๆ ขึ้นอยู่กับการพิจารณาตามที่เห็นสมควรของผู้ผลิตอุปกรณ์
นักพัฒนาแอปสามารถขอการกรองใน Google Play เพื่อให้ผู้ใช้ที่อุปกรณ์ไม่มีเซ็นเซอร์ไจโรสโคปค้นพบแอปพลิเคชันของตนไม่ได้ ในการดำเนินการ ให้เพิ่ม <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
ลงในไฟล์ Manifest ของแอปพลิเคชัน
ดูรายละเอียด API ได้ที่ Sensor
การรองรับกล้องหลายตัว
ตอนนี้แอปพลิเคชันสามารถใช้กล้องที่มีในอุปกรณ์ได้แล้ว
สำหรับการจับภาพหรือวิดีโอ Camera
ช่วยให้
แอปพลิเคชันจะค้นหาข้อมูลจำนวนกล้องที่ใช้ได้ และคำขอ
ลักษณะเฉพาะของแต่ละฟีเจอร์
- คลาส
Camera.CameraInfo
ใหม่จัดเก็บกล้อง ลักษณะเฉพาะของตำแหน่ง (การวางแนว การหันหน้าออก หรือ การหันหลัง) - เมธอด
getNumberOfCameras()
และgetCameraInfo()
ใหม่ในคลาสCamera
ช่วยให้แอปพลิเคชันค้นหากล้องที่ใช้ได้และเปิดกล้องที่ต้องการ - เมธอด
get()
ใหม่ช่วยให้แอปพลิเคชันเรียกข้อมูลCamcorderProfile
สำหรับกล้องที่ต้องการได้ getJpegEncodingQualityParameter()
ใหม่ช่วยให้แอปพลิเคชันรับภาพนิ่งได้ ระดับคุณภาพการจับภาพ สำหรับกล้องเฉพาะ
หากต้องการดูโค้ดตัวอย่างสําหรับการเข้าถึงกล้องหน้า โปรดดู CameraPreview.java ในแอปพลิเคชันตัวอย่าง ApiDemos
นอกจากนี้ Camera API ยังเพิ่มสิ่งต่อไปนี้ด้วย
- พารามิเตอร์ใหม่สำหรับกล้อง รวมถึงระยะโฟกัส โหมดโฟกัส และ
การแสดงตัวอย่าง FPS สูงสุด/ต่ำสุด
getFocusDistances()
,getPreviewFpsRange()
และgetSupportedPreviewFpsRange()
ใหม่เพื่อรับพารามิเตอร์กล้อง รวมถึงsetPreviewFpsRange()
สำหรับการตั้งค่าอัตราเฟรมของตัวอย่าง
เอฟเฟกต์เสียงที่ผสมเข้าด้วยกันได้
เฟรมเวิร์กสื่อของแพลตฟอร์มรองรับเอฟเฟกต์เสียงใหม่แบบต่อแทร็กหรือแบบรวม ซึ่งรวมถึงการเพิ่มเสียงเบส เสียงเสมือนจริงสำหรับหูฟัง การปรับแต่งเสียง และเสียงสะท้อน
- แพ็กเกจ
android.media.audiofx
ใหม่มี API สำหรับเข้าถึงเอฟเฟกต์เสียง AudioEffect
ใหม่เป็นคลาสพื้นฐานสำหรับการควบคุมเอฟเฟกต์เสียงที่เฟรมเวิร์กเสียงของ Android มีให้- รหัสเซสชันเสียงใหม่ซึ่งช่วยให้แอปพลิเคชันเชื่อมโยงชุดเอฟเฟกต์เสียงกับอินสแตนซ์ของ
AudioTrack
หรือMediaPlayer
ได้ - ตัวสร้างคลาส
AudioTrack
ใหม่ที่ให้คุณสร้างAudioTrack
ด้วยรหัสเซสชันที่เฉพาะเจาะจงattachAuxEffect()
,getAudioSessionId()
และsetAuxEffectSendLevel()
ใหม่ attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
และsetAuxEffectSendLevel()
ใหม่ วิธีการและประเภทสนับสนุน
หากต้องการดูโค้ดตัวอย่างสำหรับเอฟเฟกต์เสียง โปรดดู AudioFxDemo.java ในแอปพลิเคชัน ApiDemos ตัวอย่าง
เฟรมเวิร์กสื่อยังเพิ่มสิ่งต่อไปนี้ด้วย
- การรองรับแท็กระดับความสูงใหม่ในข้อมูลเมตา EXIF สำหรับไฟล์ JPEG เมธอดใหม่
getAltitude()
เพื่อดึงค่าของแท็กระดับความสูง EXIF - วิธีการ
setOrientationHint()
ใหม่ช่วยให้แอปพลิเคชันบอกMediaRecorder
เกี่ยวกับการวางแนวระหว่างการจับภาพวิดีโอได้
เครื่องมือจัดการการดาวน์โหลด
แพลตฟอร์มนี้ประกอบด้วยบริการระบบ DownloadManager
ใหม่
ที่จัดการการดาวน์โหลด HTTP ที่ใช้เวลานาน แอปพลิเคชันสามารถขอ URI เป็น
ได้รับการดาวน์โหลดไปยังไฟล์ปลายทางที่เฉพาะเจาะจง DownloadManager
จะดำเนินการดาวน์โหลดในเบื้องหลัง โดยดูแลการโต้ตอบผ่าน HTTP
และลองดาวน์โหลดใหม่หลังจากไม่สำเร็จหรือเมื่อมีการเปลี่ยนแปลงการเชื่อมต่อและระบบ
การรีบูต
- แอปพลิเคชันรับอินสแตนซ์ของ
DownloadManager
ได้ โดยโทรหาgetSystemService(String)
และสอบผ่านDOWNLOAD_SERVICE
แอปพลิเคชันที่ขอ การดาวน์โหลดผ่าน API นี้ควรลงทะเบียน Broadcast Receiver ของACTION_NOTIFICATION_CLICKED
เพื่อให้ จัดการเมื่อผู้ใช้คลิกการดาวน์โหลดที่ทำงานอยู่ในการแจ้งเตือนหรือจาก UI การดาวน์โหลด - ชั้นเรียน
DownloadManager.Request
ช่วยให้ จะมีข้อมูลทั้งหมดที่จำเป็นสำหรับการขอการดาวน์โหลดใหม่ เช่น URI คำขอและปลายทางการดาวน์โหลด URI คำขอเป็นพารามิเตอร์เดียวที่ต้องระบุ โปรดทราบว่าปลายทางการดาวน์โหลดเริ่มต้นคือวอลุ่มที่แชร์ซึ่งระบบจะลบไฟล์ได้หากต้องการเรียกคืนพื้นที่สำหรับการใช้งานของระบบ สําหรับการเก็บถาวรของการดาวน์โหลด ให้ระบุปลายทางการดาวน์โหลดในที่จัดเก็บข้อมูลภายนอก (ดูsetDestinationUri(Uri)
) - คลาส
DownloadManager.Query
มีวิธีที่ช่วยให้ การค้นหาแอปพลิเคชันและกรองการดาวน์โหลดที่ทำงานอยู่
StrictMode
เพื่อช่วยนักพัฒนาแอปตรวจสอบและปรับปรุงประสิทธิภาพของแอปพลิเคชัน
แพลตฟอร์มดังกล่าวให้บริการระบบใหม่ที่ชื่อว่า StrictMode
เมื่อใช้ในแอปพลิเคชัน StrictMode จะตรวจจับและแจ้งข้อมูล
นักพัฒนาที่ดำเนินการกับดิสก์หรือกิจกรรมเครือข่ายโดยไม่ได้ตั้งใจที่อาจทําให้แอปพลิเคชันมีประสิทธิภาพลดลง
ประสิทธิภาพ เช่น กิจกรรมที่เกิดขึ้นในเทรดหลักของแอปพลิเคชัน
(ในกรณีที่ได้รับการดำเนินการ UI และมีภาพเคลื่อนไหวด้วย)
นักพัฒนาแอปสามารถประเมินปัญหาการใช้งานเครือข่ายและดิสก์ที่เกิดขึ้นใน StrictMode ได้
และแก้ไขหากจำเป็น
โดยให้ชุดข้อความหลักปรับเปลี่ยนตามอุปกรณ์มากขึ้น
ป้องกันไม่ให้กล่องโต้ตอบ ANR แสดงต่อผู้ใช้
StrictMode
เป็นคลาสหลักและการผสานรวมหลัก กับระบบและ VM ชั้นเรียนนี้ให้วิธีการอำนวยความสะดวกแก่ จัดการนโยบายเทรดและ VM ที่ใช้กับอินสแตนซ์StrictMode.ThreadPolicy
และStrictMode.VmPolicy
มีนโยบายที่คุณกำหนดไว้และนำไปใช้กับเธรดและอินสแตนซ์ VM
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ StrictMode เพื่อเพิ่มประสิทธิภาพ
โปรดดูเอกสารของชั้นเรียนและโค้ดตัวอย่างได้ที่ android.os.StrictMode
เฟรมเวิร์ก UI
- การรองรับการเลื่อนผ่านหน้าเว็บ
- การสนับสนุนใหม่สำหรับการเลื่อนเกินใน View และ Widget ในมุมมอง แอปพลิเคชันสามารถ เปิด/ปิดใช้การเลื่อนไปจนสุดสำหรับมุมมองที่กำหนด ตั้งค่าโหมด Overscoll ควบคุม ระยะการเลื่อนเกิน และจัดการกับผลลัพธ์ของการเลื่อนเกิน
- ในวิดเจ็ต แอปพลิเคชันจะควบคุมลักษณะการเลื่อนผ่านหน้าจอได้ เช่น ภาพเคลื่อนไหว การกลับสู่ตำแหน่งเดิม และระยะการเลื่อนผ่านหน้าจอ ดูข้อมูลเพิ่มเติมได้ที่
android.view.View
และandroid.widget.OverScroller
ViewConfiguration
ยังมีเมธอดgetScaledOverflingDistance()
และgetScaledOverscrollDistance()
ด้วย- แอตทริบิวต์
overScrollMode
,overScrollFooter
และoverScrollHeader
ใหม่สำหรับองค์ประกอบ<ListView>
เพื่อควบคุมลักษณะการเลื่อนผ่าน
- การรองรับการกรองการแตะ
- การรองรับการกรองการแตะแบบใหม่ ซึ่งช่วยให้แอปพลิเคชันปรับปรุงความปลอดภัยของมุมมองที่ให้สิทธิ์เข้าถึงฟังก์ชันการทำงานที่มีความละเอียดอ่อนได้ ตัวอย่างเช่น การกรองการแตะเหมาะสําหรับการรักษาความปลอดภัยของการดำเนินการของผู้ใช้ เช่น การอนุมัติคําขอสิทธิ์ การซื้อ หรือการคลิกโฆษณา โปรดดูรายละเอียดที่หัวข้อดูชั้นเรียน เอกสารประกอบ
- แอตทริบิวต์
filterTouchesWhenObscured
ใหม่สำหรับองค์ประกอบการดู ซึ่งประกาศว่าจะกรองการแตะเมื่อหน้าต่างของมุมมองถูกบดบังหรือไม่ หน้าต่างอื่นที่มองเห็นได้ เมื่อตั้งค่าเป็น"true"
มุมมองจะไม่ ได้รับการแตะเมื่อมีการข้อความโทสต์ กล่องโต้ตอบ หรือหน้าต่างอื่นปรากฏเหนือ หน้าต่างของมุมมอง โปรดดูที่ดูความปลอดภัย เพื่อดูรายละเอียด
ดูโค้ดตัวอย่างสำหรับการกรองการแตะได้ที่ SecureView.java ในแอปพลิเคชัน ApiDemos ตัวอย่าง
- การจัดการเหตุการณ์ที่ปรับปรุงแล้ว
- คลาสฐานใหม่สำหรับเหตุการณ์อินพุต
InputEvent
คลาสนี้มีเมธอดที่ช่วยให้แอปพลิเคชันระบุความหมายของเหตุการณ์ได้ เช่น โดยการค้นหา InputDevice ที่เป็นต้นทางของเหตุการณ์KeyEvent
และMotionEvent
เป็นคลาสย่อยของInputEvent
- คลาสฐานใหม่สำหรับอุปกรณ์อินพุต
InputDevice
คลาสนี้จะจัดเก็บข้อมูลเกี่ยวกับความสามารถของอุปกรณ์อินพุตหนึ่งๆ และมีเมธอดที่ช่วยให้แอปพลิเคชันกำหนดวิธีตีความเหตุการณ์จากอุปกรณ์อินพุตได้
- คลาสฐานใหม่สำหรับเหตุการณ์อินพุต
- เหตุการณ์การเคลื่อนไหวที่ปรับปรุงแล้ว
MotionEvent
API ได้รับการขยายให้รวมข้อมูล "รหัสเคอร์เซอร์" ซึ่งช่วยให้แอปพลิเคชันติดตามนิ้วแต่ละนิ้วขณะที่นิ้วเหล่านั้นเลื่อนขึ้นและลงได้ ชั้นเรียนเพิ่มวิธีการหลายอย่างที่ช่วยให้แอปพลิเคชัน ทำงานกับเหตุการณ์การเคลื่อนไหวได้อย่างมีประสิทธิภาพ- ตอนนี้ระบบอินพุตมีตรรกะในการสร้างเหตุการณ์การเคลื่อนไหวด้วยข้อมูลรหัสเคอร์เซอร์ใหม่ ซึ่งจะสังเคราะห์ตัวระบุเมื่อเคอร์เซอร์ใหม่ไม่ทำงาน ระบบจะติดตามรหัสเคอร์เซอร์หลายรายการแยกกันในระหว่างเหตุการณ์การเคลื่อนไหว และตรวจสอบความต่อเนื่องที่เหมาะสมของเคอร์เซอร์โดยประเมินระยะห่างระหว่างเคอร์เซอร์ชุดล่าสุดกับชุดถัดไป
- การควบคุมการเลือกข้อความ
- เมธอด
setComposingRegion
ใหม่ทำให้แอปพลิเคชันทำเครื่องหมาย ขอบเขตของข้อความเป็นการเขียนข้อความ โดยคงการจัดรูปแบบปัจจุบันไว้ เมธอดgetSelectedText
จะแสดงผลข้อความที่เลือกไปยังแอปพลิเคชัน เมธอดใช้ได้ในBaseInputConnection
,InputConnection
และInputConnectionWrapper
textSelectHandle
ใหม่,textSelectHandleLeft
,textSelectHandleRight
และtextSelectHandleWindowStyle
สำหรับ<TextView>
สำหรับอ้างอิงรายการที่ถอนออกได้ที่จะ ใช้เพื่อแสดง Anchor การเลือกข้อความและรูปแบบสำหรับ
- เมธอด
- ส่วนควบคุมกิจกรรม
ActivityInfo
เพิ่มค่าคงที่ใหม่สำหรับการจัดการ การวางแนวกิจกรรม:SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
SCREEN_ORIENTATION_REVERSE_PORTRAIT
SCREEN_ORIENTATION_SENSOR_LANDSCAPE
และSCREEN_ORIENTATION_SENSOR_PORTRAIT
- ค่าคงที่ใหม่
IMPORTANCE_PERCEPTIBLE
สำหรับ ฟิลด์importance
ในActivityManager.RunningAppProcessInfo
ค่า ระบุว่า กระบวนการหนึ่งๆ กำลังใช้งานสิ่งที่ถือว่า รับรู้ได้อย่างทันท่วงทีแก่ผู้ใช้ ตัวอย่างเช่น แอปพลิเคชันที่เล่นเพลงในเบื้องหลัง - ตอนนี้เราเลิกใช้งานเมธอด Activity.setPersistent(boolean) เพื่อทำเครื่องหมาย Activity เป็นแบบถาวรแล้ว และการใช้งานจะใช้งานไม่ได้
- รูปแบบข้อความและไอคอนการแจ้งเตือน
TextAppearance.StatusBar.EventContent
ใหม่TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
และTextAppearance.StatusBar.Title
สำหรับการจัดการ รูปแบบการแจ้งเตือน
- เพิ่มเมธอดที่เหลือของ OpenGL ES 2.0
glDrawElements()
และglVertexAttribPointer()
ในคลาสandroid.opengl.GLES20
- เพิ่มการรองรับรูปแบบพิกเซล
YV12
ซึ่งเป็นรูปแบบ YCrCb แบบ 4:2:0 แบบระนาบ - คลาสผู้ให้บริการ
AlarmClock
ใหม่สำหรับการตั้งปลุก หรือการจัดการนาฬิกาปลุก ผู้ให้บริการมี IntentACTION_SET_ALARM
การดำเนินการและอื่นๆ ที่สามารถใช้เพื่อเริ่มกิจกรรมเพื่อตั้งปลุกใหม่ใน แอปพลิเคชันนาฬิกาปลุก แอปพลิเคชันที่ต้องการให้ระบบส่งSET_ALARM
Intent ควรสร้างกิจกรรมที่ต้องใช้สิทธิ์ SET_ALARM แอปพลิเคชันที่ต้องการให้สร้างการปลุกใหม่ควรใช้Context.startActivity()
เพื่อให้ผู้ใช้มีตัวเลือกในการเลือกแอปพลิเคชันนาฬิกาปลุกที่จะใช้ MediaStore
รองรับการดำเนินการตาม Intent ใหม่อย่างPLAY_FROM_SEARCH
ซึ่งช่วยให้แอปพลิเคชันค้นหาสื่อเพลงและเล่นเนื้อหาจากผลการค้นหาโดยอัตโนมัติได้เมื่อเป็นไปได้ เช่น แอปพลิเคชันอาจเรียกใช้ Intent นี้จากคำสั่งการจดจําเสียงเพื่อฟังเพลงMediaStore
ยังเพิ่มแฟล็กMEDIA_IGNORE_FILENAME
ใหม่เพื่อแจ้งสื่อต่างๆ ด้วย เพื่อละเว้นสื่อในไดเรกทอรีและไดเรกทอรีย่อยของไดเรกทอรีนั้น นักพัฒนาซอฟต์แวร์สามารถใช้วิธีนี้เพื่อหลีกเลี่ยงการแสดงกราฟิกในแกลเลอรีและ ในทำนองเดียวกัน ป้องกันไม่ให้เสียงแอปพลิเคชันและเพลงปรากฏใน Music แอป- ผู้ให้บริการ
Settings
จะเพิ่มการดำเนินการใหม่สำหรับกิจกรรมAPPLICATION_DETAILS_SETTINGS
และMANAGE_ALL_APPLICATIONS_SETTINGS
ซึ่งช่วยให้แอปพลิเคชันแสดงหน้าจอรายละเอียดสำหรับแอปพลิเคชันหนึ่งๆ หรือแสดงหน้าจอ "จัดการแอปพลิเคชัน" ได้ - ผู้ให้บริการ
ContactsContract
จะเพิ่มประเภทข้อมูลContactsContract.CommonDataKinds.SipAddress
เพื่อจัดเก็บที่อยู่ SIP (โทรศัพท์ผ่านอินเทอร์เน็ต) ของผู้ติดต่อ - ขณะนี้
LocationManager
ติดตามแอปพลิเคชัน คำขอที่ทำให้เกิด Wake Lock หรือ Wi-Fi LockWorkSource
ซึ่งเป็นคลาสที่จัดการโดยระบบซึ่งระบุ แอปพลิเคชันLocationManager
ช่วยติดตาม ของลูกค้าทุกรายที่ขอการอัปเดตเป็นระยะ และแจ้งให้ผู้ให้บริการทราบ เกี่ยวกับพารามิเตอร์เหล่านั้นเป็นพารามิเตอร์WorkSource
เมื่อกําหนดค่าขั้นต่ำ เวลาอัปเดต ผู้ให้บริการตำแหน่งเครือข่ายใช้WorkSource
เพื่อติดตามการปลุกและการล็อก Wi-Fi ที่แอปพลิเคชันเริ่มต้น และเพิ่มข้อมูลดังกล่าวลงในการใช้งานแบตเตอรี่ของแอปพลิเคชันที่รายงานในส่วน "จัดการแอปพลิเคชัน" LocationManager
เพิ่มเมธอดใหม่หลายวิธี ให้กิจกรรมลงทะเบียนเพื่อรับการอัปเดตตำแหน่งเป็นครั้งคราวหรือแบบครั้งเดียวตาม ตามเกณฑ์ที่ระบุ (ดูด้านล่าง)- คลาส
Criteria
ใหม่ช่วยให้แอปพลิเคชันระบุชุดเกณฑ์สำหรับเลือกผู้ให้บริการตำแหน่งได้ เช่น ผู้ให้บริการอาจได้รับการจัดเรียงตามความแม่นยำ การใช้พลังงาน ความสามารถในการรายงานระดับความสูง ความเร็ว ทิศทาง และค่าใช้จ่ายทางการเงิน - Android 2.3 เพิ่ม
StorageManager
ใหม่ที่ สนับสนุนไฟล์ OBB (Opaque Binary Blob) ถึงแม้ว่าแพลตฟอร์มจะรองรับ OBB ก็ตาม มีอยู่ใน Android 2.3 เครื่องมือสำหรับการพัฒนาสำหรับการสร้างและจัดการไฟล์ OBB จะใช้ไม่ได้จนถึงต้นปี 2011 - แพลตฟอร์ม Android 2.3 เพิ่มการสนับสนุนอย่างเป็นทางการสำหรับอุปกรณ์ที่ไม่
มีการ์ด SD (แม้จะมีพาร์ติชันการ์ด SD เสมือน แต่ถ้าไม่มี
มีการ์ด SD จริง)
isExternalStorageRemovable()
เป็นเมธอดที่สะดวกซึ่งช่วยให้แอปพลิเคชันระบุได้ว่ามีการ์ด SD จริงหรือไม่ - ค่าคงที่ใหม่สำหรับการประกาศฟีเจอร์ฮาร์ดแวร์และซอฟต์แวร์ ดูรายการในส่วนค่าคงที่ของฟีเจอร์ใหม่ด้านล่าง
PackageInfo
เพิ่มช่องfirstInstallTime
และlastUpdateTime
ใหม่ที่เก็บเวลาของ การติดตั้งแพ็กเกจและการอัปเดตครั้งล่าสุดgetProviderInfo()
วิธีการใหม่ในการดึงข้อมูลทั้งหมดที่ทราบเกี่ยวกับคลาสผู้ให้บริการเนื้อหาหนึ่งๆTelephonyManager
เพิ่มค่าคงที่NETWORK_TYPE_EVDO_B
สำหรับการระบุ CDMA ประเภทเครือข่าย EVDO Rev B- การส่งกลับเมธอด
getPsc()
ใหม่ โค้ดรบกวนหลักของเซลล์ที่แสดงบนเครือข่าย UMTS NativeActivity
เป็นชั้นเรียนกิจกรรมประเภทใหม่ ซึ่ง จะมีการใช้ Callback ของวงจรโดยตรงในโค้ดแบบเนทีฟNativeActivity
และโค้ดเนทีฟที่เกี่ยวข้องจะทํางานในระบบเช่นเดียวกับกิจกรรมอื่นๆ กล่าวคือ ทำงานในกระบวนการของระบบแอปพลิเคชัน Android และดำเนินการในเทรด UI หลักของแอปพลิเคชัน และรับการเรียกกลับวงจรชีวิตของกิจกรรมอื่นๆ เช่นเดียวกัน- คลาส
InputQueue
และอินเทอร์เฟซ Callback ใหม่ช่วยให้โฆษณาเนทีฟ จัดการการจัดคิวกิจกรรมได้ - อินเทอร์เฟซ
SurfaceHolder.Callback2
ใหม่ช่วยให้โค้ดเนทีฟจัดการSurfaceHolder
ได้ - เมธอด
takeInputQueue
และtakeSurface()
ใหม่ในWindow
ช่วยให้โค้ดเนทีฟจัดการเหตุการณ์และแพลตฟอร์มได้ dalvik.system
นําคลาสหลายรายการที่เลิกใช้งานไปแล้วก่อนหน้านี้ออก- ไลบรารีหลักของ Dalvik:
- คอลเล็กชันใหม่:
ArrayDeque
,NavigableMap
ConcurrentSkipListMap
LinkedBlockingDeque
- ยูทิลิตี
Arrays
ใหม่:binarySearch()
,copyOf()
,copyOfRange()
และอื่นๆ CookieManager
ในราคาHttpURLConnection
- API เครือข่ายที่สมบูรณ์ยิ่งขึ้น ได้แก่
InterfaceAddress
,NetworkInterface
และIDN
File
การควบคุมการอ่านและการเขียนString.isEmpty()
Normalizer
และNormalizer.Form
- ปรับปรุงซ็อกเก็ตเซิร์ฟเวอร์
javax.net.ssl
แล้ว
- คอลเล็กชันใหม่:
- แอตทริบิวต์
xlargeScreens
ใหม่สำหรับ<supports-screens>
เพื่อระบุว่าแอปพลิเคชันรองรับ รูปแบบของอุปกรณ์สำหรับหน้าจอขนาดใหญ่พิเศษ โปรดดูรายละเอียดที่หัวข้อการรองรับหลายรายการ หน้าจอ - ค่าใหม่สำหรับแอตทริบิวต์
android:screenOrientation
ขององค์ประกอบ<activity>
มีดังนี้"reverseLandscape"
— กิจกรรมต้องการให้หน้าจออยู่ในแนวนอนโดยหันไปในทิศทางตรงข้ามกับแนวนอนปกติ"reversePortrait"
— กิจกรรมต้องการให้หน้าจออยู่ในแนวตั้งโดยหันไปในทิศทางตรงข้ามกับแนวตั้งปกติ"sensorLandscape"
— กิจกรรมนี้ต้องการให้ หน้าจอในแนวนอน แต่สามารถใช้เซ็นเซอร์เพื่อเปลี่ยน ทิศทางที่หน้าจอหันไป"sensorPortrait"
— กิจกรรมต้องการให้หน้าจออยู่ในแนวตั้ง แต่สามารถใช้เซ็นเซอร์เพื่อเปลี่ยนทิศทางที่หน้าจอหันไปได้"fullSensor"
— การวางแนวจะกำหนดโดยทางกายภาพ เซ็นเซอร์การวางแนว: จอแสดงผลจะหมุนตามวิธีที่ผู้ใช้ขยับ อุปกรณ์ ซึ่งช่วยให้หมุนได้ 4 แบบไม่ว่าจะหมุนอุปกรณ์อย่างไรก็ตาม (เช่น ปกติแล้วอุปกรณ์บางรุ่นจะไม่ใช้การหมุน 180 องศา)
com.android.permission.SET_ALARM
— อนุญาตให้แอปพลิเคชันประกาศ Intent เพื่อตั้งปลุกให้ผู้ใช้ กิจกรรมที่จัดการ การดำเนินการผ่าน IntentSET_ALARM
ควรต้องการสิทธิ์นี้android.permission.USE_SIP
— อนุญาตให้แอปพลิเคชันใช้SIP API
เพื่อโทรออกหรือรับสายอินเทอร์เน็ตandroid.permission.NFC
— อนุญาตให้แอปพลิเคชันใช้NFC API
เพื่ออ่านแท็ก NFCandroid.hardware.audio.low_latency
— แอปพลิเคชันใช้เวลาในการตอบสนองต่ำ ไปป์ไลน์เสียงบนอุปกรณ์และมีความไวต่อความล่าช้าหรือความล่าช้าในอินพุตเสียง หรือ เอาต์พุตandroid.hardware.camera.front
— แอปพลิเคชันใช้ด้านหน้า บนอุปกรณ์android.hardware.nfc
— แอปพลิเคชันใช้ฟีเจอร์วิทยุ NFC ในอุปกรณ์android.hardware.sensor.barometer
— แอปพลิเคชันใช้บารอมิเตอร์ของอุปกรณ์android.hardware.sensor.gyroscope
— แอปพลิเคชันจะใช้ เซ็นเซอร์ไจโรสโคปandroid.software.sip
— แอปพลิเคชันใช้ SIP API ในอุปกรณ์android.software.sip.voip
— แอปพลิเคชันใช้ VoIP แบบ SIP บริการในอุปกรณ์ได้android.hardware.touchscreen.multitouch.jazzhand
— แอปพลิเคชันใช้ความสามารถการสัมผัสหลายจุดขั้นสูงบนหน้าจออุปกรณ์เพื่อติดตามจุดอย่างน้อย 5 จุดอย่างอิสระ
หน้าจอขนาดใหญ่พิเศษ
ตอนนี้แพลตฟอร์มรองรับหน้าจอขนาดใหญ่พิเศษ เช่น หน้าจอที่อาจพบในอุปกรณ์แท็บเล็ต นักพัฒนาแอปสามารถระบุว่าแอปพลิเคชันของตนออกแบบมาเพื่อรองรับหน้าจอขนาดใหญ่พิเศษได้โดยการเพิ่มองค์ประกอบ <supports
screens ... android:xlargeScreens="true">
ลงในไฟล์ Manifest แอปพลิเคชันสามารถใช้ตัวระบุทรัพยากรใหม่ ซึ่งก็คือ xlarge
เพื่อ
ให้แท็กแหล่งข้อมูลที่เฉพาะเจาะจงสำหรับหน้าจอขนาดใหญ่พิเศษโดยเฉพาะ สำหรับ
รายละเอียดเกี่ยวกับวิธีรองรับหน้าจอขนาดใหญ่พิเศษและหน้าจอขนาดอื่นๆ ได้ที่การรองรับหลายขนาด
หน้าจอ
กราฟิก
ผู้ให้บริการเนื้อหา
ตำแหน่ง
พื้นที่เก็บข้อมูล
ผู้จัดการแพ็กเกจ
โทรศัพท์
การเข้าถึงวงจรของกิจกรรมและหน้าต่างแบบดั้งเดิม
Android 2.3 ทำให้แอปพลิเคชันที่ใช้ โค้ด คลาสเฟรมเวิร์กที่น่าสนใจสําหรับแอปพลิเคชันดังกล่าว ได้แก่
ดูข้อมูลทั้งหมดเกี่ยวกับการทำงานกับโค้ดเนทีฟหรือดาวน์โหลด NDK ได้ที่หน้า Android NDK
รันไทม์ Dalvik
องค์ประกอบและแอตทริบิวต์ของไฟล์ Manifest ใหม่
สิทธิ์ใหม่
ค่าคงที่ของฟีเจอร์ใหม่
แพลตฟอร์มดังกล่าวเพิ่มฟีเจอร์ของฮาร์ดแวร์ใหม่ๆ หลายอย่างที่นักพัฒนาแอปสามารถประกาศได้ ในไฟล์ Manifest ตามที่แอปพลิเคชันกำหนด ช่วงเวลานี้ ช่วยให้นักพัฒนาซอฟต์แวร์ควบคุมวิธีกรองแอปพลิเคชันของตนเมื่อเผยแพร่ Google Play
ดูข้อมูลทั้งหมดเกี่ยวกับวิธีประกาศฟีเจอร์และใช้ฟีเจอร์ดังกล่าวเพื่อกรองได้ที่เอกสารประกอบของ <uses-feature>
รายงานความแตกต่างของ API
ดูรายละเอียดการเปลี่ยนแปลง API ทั้งหมดใน Android 2.3 (API ระดับ 9) ได้ที่รายงานความแตกต่างของ API
ระดับ API
แพลตฟอร์ม Android 2.3 มี API เฟรมเวิร์กเวอร์ชันอัปเดต API ของ Android 2.3 ได้รับตัวระบุจำนวนเต็ม 9 — ซึ่งก็คือ ที่จัดเก็บไว้ในตัวระบบเอง ตัวระบุนี้เรียกว่า "ระดับ API" ซึ่งช่วยให้ระบบสามารถระบุได้อย่างถูกต้องว่าแอปพลิเคชันเข้ากันได้กับระบบหรือไม่ก่อนที่จะติดตั้งแอปพลิเคชัน
หากต้องการใช้ API ที่เปิดตัวใน Android 2.3 ในแอปพลิเคชันของคุณ
คุณจะต้องรวบรวมแอปพลิเคชันกับไลบรารี Android ซึ่งมีให้ไว้ใน
แพลตฟอร์ม Android 2.3 SDK ทั้งนี้ขึ้นอยู่กับความต้องการของคุณ
ต้องเพิ่ม android:minSdkVersion="9"
ด้วย
ลงในเอลิเมนต์ <uses-sdk>
ในแอปพลิเคชัน
ไฟล์ Manifest หากแอปพลิเคชันออกแบบมาเพื่อทำงานบน Android 2.3 ขึ้นไปเท่านั้น การประกาศแอตทริบิวต์จะป้องกันไม่ให้ติดตั้งแอปพลิเคชันในแพลตฟอร์มเวอร์ชันเก่า
สำหรับข้อมูลเพิ่มเติม โปรดอ่าน API คืออะไร ระดับ