ระดับ API: 8
Android 2.2 เป็นแพลตฟอร์มรุ่นย่อยที่มีฟีเจอร์สำหรับผู้ใช้ ฟีเจอร์สำหรับนักพัฒนาแอป การเปลี่ยนแปลง API และการแก้ไขข้อบกพร่อง ดูข้อมูลเกี่ยวกับฟีเจอร์สำหรับนักพัฒนาแอปและการเปลี่ยนแปลง API ได้ที่ส่วน Framework API
สำหรับนักพัฒนาแอป แพลตฟอร์ม Android 2.2 มีให้บริการเป็นคอมโพเนนต์ที่ดาวน์โหลดได้สำหรับ Android SDK แพลตฟอร์มที่ดาวน์โหลดได้ประกอบด้วยคลัง Android และภาพระบบ รวมถึงชุดสกินโปรแกรมจำลองและอื่นๆ หากต้องการเริ่มพัฒนาหรือทดสอบกับ Android 2.2 ให้ใช้เครื่องมือจัดการ Android SDK เพื่อดาวน์โหลดแพลตฟอร์มลงใน SDK
ไฮไลต์ของแพลตฟอร์ม
ดูรายการฟีเจอร์ใหม่สำหรับผู้ใช้และไฮไลต์ของแพลตฟอร์มได้ที่เอกสารไฮไลต์แพลตฟอร์ม Android 2.2
ระดับ API
แพลตฟอร์ม Android 2.2 มี API เฟรมเวิร์กเวอร์ชันอัปเดต Android 2.2 API ได้รับการกําหนดตัวระบุจำนวนเต็ม 8 ซึ่งจัดเก็บไว้ในระบบ ตัวระบุนี้เรียกว่า "ระดับ API" ซึ่งช่วยให้ระบบสามารถระบุได้อย่างถูกต้องว่าแอปพลิเคชันเข้ากันได้กับระบบหรือไม่ก่อนที่จะติดตั้งแอปพลิเคชัน
หากต้องการใช้ API ที่เปิดตัวใน Android 2.2 ในแอปพลิเคชัน คุณต้องตั้งค่าที่ถูกต้องเป็น "8" ในแอตทริบิวต์ android:minSdkVersion
ขององค์ประกอบ <uses-sdk>
ในไฟล์ Manifest ของแอปพลิเคชัน
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ระดับ API ได้ในเอกสารระดับ API
การเปลี่ยนแปลง Framework API
ส่วนด้านล่างแสดงข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่ทํากับ Application Framework API ที่แพลตฟอร์ม Android 2.2 มีให้
การติดตั้งแอปในสื่อเก็บข้อมูลภายนอก
ตอนนี้แพลตฟอร์ม Android อนุญาตให้แอปพลิเคชันขอติดตั้งลงในสื่อพื้นที่เก็บข้อมูลภายนอกของอุปกรณ์ (เช่น การ์ด SD) แทนการติดตั้งลงในหน่วยความจำภายในของอุปกรณ์
นักพัฒนาแอปพลิเคชันสามารถระบุตำแหน่งการติดตั้งที่ต้องการสำหรับแอปพลิเคชันของตนได้โดยใช้แอตทริบิวต์ใหม่ของ <manifest>
ในไฟล์ Manifest
android:installLocation
แอตทริบิวต์รองรับค่า 3 ค่า ได้แก่
"internalOnly"
, "preferExternal"
และ
"auto"
ขณะติดตั้ง ระบบจะตรวจสอบค่าของ
android:installLocation
และติดตั้งแอปพลิเคชัน
.apk
ตามตำแหน่งที่ต้องการ หากเป็นไปได้ หากแอปพลิเคชันขอการติดตั้งจากภายนอก ระบบจะติดตั้งแอปพลิเคชันนั้นลงในพาร์ติชันส่วนตัวที่เข้ารหัสในสื่อภายนอก เมื่อติดตั้ง .apk ของแอปพลิเคชันจากภายนอกแล้ว ระบบจะอนุญาตให้ผู้ใช้เปลี่ยนตำแหน่งที่จัดเก็บของ .apk และย้ายไปยังหน่วยความจำภายในของอุปกรณ์ได้หากจำเป็น (และในทางกลับกัน) ผ่าน "จัดการแอปพลิเคชัน" ในการตั้งค่าผู้ใช้
โดยค่าเริ่มต้น ระบบจะติดตั้งแอปพลิเคชันทั้งหมดลงในหน่วยความจำภายในของอุปกรณ์ ยกเว้นแอปพลิเคชันที่ขอการติดตั้งภายนอกอย่างชัดเจน ซึ่งหมายความว่าระบบจะติดตั้งแอปพลิเคชันเดิมลงในหน่วยความจำภายในเสมอ เนื่องจากแอปพลิเคชันเหล่านั้นไม่มีสิทธิ์เข้าถึงแอตทริบิวต์android:installLocation
อย่างไรก็ตาม คุณสามารถกําหนดค่าและคอมไพล์แอปพลิเคชันเดิมเพื่อให้ติดตั้งภายในแพลตฟอร์มเวอร์ชันเก่าและภายนอกแพลตฟอร์ม Android 2.2 ขึ้นไปได้ หากจําเป็น
โปรดทราบว่าการส่งคำขอติดตั้งลงในสื่อภายนอกของอุปกรณ์ไม่เหมาะกับแอปพลิเคชันบางรายการ โดยเฉพาะเนื่องจากสื่อภายนอกอาจถอดออกได้ และการยกเลิกการต่อเชื่อม/การต่อเชื่อมอีกครั้งอาจรบกวนประสบการณ์ของผู้ใช้และการตั้งค่าระบบ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าตำแหน่งการติดตั้งที่ต้องการสำหรับแอปพลิเคชัน รวมถึงการพูดคุยเกี่ยวกับประเภทแอปพลิเคชันที่ควรและไม่ควรขอการติดตั้งภายนอกได้ที่เอกสารตำแหน่งติดตั้งแอป
การสำรองข้อมูล
ตอนนี้แพลตฟอร์มมีบริการสํารองข้อมูลทั่วไปที่แอปพลิเคชันสามารถใช้สํารองและกู้คืนข้อมูลผู้ใช้ เพื่อให้ผู้ใช้เก็บข้อมูลไว้ได้เมื่อเปลี่ยนอุปกรณ์หรือติดตั้งแอปพลิเคชันอีกครั้ง เครื่องมือจัดการข้อมูลสํารองจะจัดการการนําส่งข้อมูลแอปพลิเคชันไปยังและจากพื้นที่เก็บข้อมูลสํารองในระบบคลาวด์ เครื่องมือจัดการข้อมูลสำรองสามารถจัดเก็บข้อมูลประเภทใดก็ได้ ตั้งแต่ข้อมูลทั่วไปไปจนถึงไฟล์ และจัดการการดำเนินการสำรองและกู้คืนข้อมูลในลักษณะที่สมบูรณ์ ดูข้อมูลเพิ่มเติมได้ที่การสำรองข้อมูล
กราฟิก
- API ใหม่ของ OpenGL ES 2.0 ใน
android.opengl.GLES20
- คลาส
ETC1
,ETC1Util
และETC1Util.ETC1Texture
ใหม่และเมธอดยูทิลิตีสำหรับการใช้ ETC1 เพื่อบีบอัดพื้นผิว - ชั้นเรียน
ImageFormat
ใหม่ YUV image format API
ใหม่เพื่อเปิดใช้การบีบอัดจาก YUV เป็น JPEG และการจัดการข้อมูล YUV
สื่อ
- API ใหม่ใน
android.media.AudioManager
สำหรับการจัดการโฟกัสเสียง การควบคุมการนําทาง การสูญเสียโฟกัสเสียงชั่วคราว การลดระดับเสียง - Intent การออกอากาศใหม่สำหรับการกําหนดเส้นทางเสียงไปยัง SCO -
ACTION_SCO_AUDIO_STATE_CHANGED
พร้อมข้อมูลเพิ่มเติมที่ระบุสถานะใหม่ - API ใหม่ใน
SoundPool
เพื่อตรวจหาการโหลดเสียงที่เสร็จสมบูรณ์ - API ใหม่ใน
SoundPool
สำหรับการหยุดชั่วคราวและกลับมาทำงานต่อโดยอัตโนมัติ - API ใหม่ใน
MediaRecorder
สำหรับระบุการตั้งค่าเสียงสำหรับจำนวนช่อง อัตราบิตและอัตราการสุ่มตัวอย่าง - API ใหม่สําหรับการเพิ่มไฟล์ลงในฐานข้อมูลสื่อเพื่อให้ระบบสแกนโดยอัตโนมัติ โปรดอ่าน
MediaScannerConnection.scanFile
และMediaScannerConnection.OnScanCompletedListener
การจดจำคำพูดและเครื่องมือการจดจำของบุคคลที่สาม
- แพลตฟอร์มนี้มี API การจดจำคำพูดแบบใหม่ที่ช่วยให้แอปพลิเคชันโต้ตอบกับโปรแกรมจดจำเสียงที่มีอยู่ได้มากขึ้น เช่น API เหล่านี้เพียงพอที่จะผสานรวมการจดจำเสียงเข้ากับ IME อย่างลึกซึ้ง
- นอกจากนี้ แพลตฟอร์มยังมี
RecognitionService
คลาสพื้นฐานที่ช่วยให้นักพัฒนาแอปบุคคลที่สามสร้างเครื่องมือการจดจำปลั๊กอินได้ - อินเทอร์เฟซ
RecognitionListener
ใหม่สำหรับการรับการติดต่อกลับ - ข้อมูลเพิ่มเติม
RecognizerIntent
ใหม่ที่ช่วยให้แอปผู้ขอระบุรายละเอียดเป็นภาษาที่ต้องการ ความยาวขั้นต่ำเป็นมิลลิวินาที และอื่นๆ
กล้องและกล้องวิดีโอ
- การเปลี่ยนแปลง API การแสดงตัวอย่างจากกล้องเพื่อปรับปรุงประสิทธิภาพของไปป์ไลน์การแสดงตัวอย่าง
- การวางแนวการแสดงผลใหม่สำหรับกล้อง (ตอนนี้สามารถทำงานในแนวตั้งได้แล้ว)
- API ใหม่ใน
android.hardware.Camera
สำหรับการจัดการระดับการซูม - API ใหม่
android.hardware.Camera.Parameters
สําหรับการค้นหาและตั้งค่ากล้องของอุปกรณ์ เช่น ระยะโฟกัส การเปิดรับแสง ระดับการซูม มุมมอง และอื่นๆ - ยูทิลิตี
thumbnail
ใหม่สำหรับภาพปกวิดีโอและรูปภาพ - คลาส
CamcorderProfile
และCamcorderProfile
ใหม่ช่วยให้แอประบุความสามารถของกล้องฮาร์ดแวร์ของอุปกรณ์ได้ - การรองรับใหม่ใน
android.media.ExifInterface
สำหรับการดึงข้อมูล GPS และความยาวโฟกัส
ตัวจัดการนโยบายด้านอุปกรณ์
API การจัดการนโยบายด้านอุปกรณ์ใหม่ช่วยให้นักพัฒนาแอปเขียนแอปพลิเคชัน "ผู้ดูแลระบบอุปกรณ์" ที่ควบคุมฟีเจอร์ด้านความปลอดภัยของอุปกรณ์ได้ เช่น ระดับความปลอดภัยขั้นต่ำของรหัสผ่าน การล้างข้อมูล และอื่นๆ ผู้ใช้สามารถเลือกผู้ดูแลระบบที่เปิดใช้ในอุปกรณ์ได้ ดูข้อมูลเพิ่มเติมได้ที่android.app.admin
คลาสหรือโค้ดแอปพลิเคชันตัวอย่างใน DeviceAdminSample.java
เฟรมเวิร์ก UI
- โหมด UI ใหม่ "โหมดรถยนต์" และ "โหมดกลางคืน" และ
UiModeManager
ช่วยให้แอปพลิเคชันปรับ UI ของแอปพลิเคชันสำหรับโหมดผู้ใช้ที่เฉพาะเจาะจงได้ ScaleGestureDetector
ใหม่ที่ช่วยให้ Views ตรวจจับและจัดการท่าทางสัมผัสการเปลี่ยนรูปแบบที่เกี่ยวข้องกับเคอร์เซอร์มากกว่า 1 ตัว (มัลติทัช) โดยใช้ MotionEvents ที่ระบุ- การปรับปรุงวิธีรายงานเหตุการณ์มัลติทัชในแออบเจ็กต์
MotionEvent
- เปลี่ยนชื่อแอตทริบิวต์เลย์เอาต์
fill_parent
เป็นmatch_parent
ซึ่งส่งผลต่อทั้งโค้ด XML และ Java (ดูViewGroup.LayoutParams
) โปรดทราบว่าแพลตฟอร์มจะยังคงรองรับการใช้fill_parent
ในแอปพลิเคชันเดิมต่อไป - แอตทริบิวต์เลย์เอาต์ใหม่
tabStripEnabled
,tabStripRight
และtabStripLeft
ช่วยให้นักพัฒนาแอปปรับแต่งแถบด้านล่างของ TabWidget ได้ - รองรับกล่องโต้ตอบที่มีการจัดการในกิจกรรมได้ดียิ่งขึ้น
บัญชีและการซิงค์
- วิธีการใหม่
AddPeriodicSync()
ช่วยให้คุณกำหนดเวลาการซิงค์เป็นระยะกับบัญชี สิทธิ์ และรายการเพิ่มเติมที่เฉพาะเจาะจงตามความถี่ที่กำหนดได้
องค์ประกอบและแอตทริบิวต์ใหม่ของไฟล์ Manifest
- สำหรับการระบุตำแหน่งการติดตั้งที่ต้องการของแอปพลิเคชัน (ดูการติดตั้งแอปในสื่อเก็บข้อมูลภายนอกด้านบน) ให้ทำดังนี้
- แอตทริบิวต์
android:installLocation
ใหม่ขององค์ประกอบ<manifest>
ระบุตำแหน่งการติดตั้งเริ่มต้นที่แอปพลิเคชันกำหนด
- แอตทริบิวต์
- สำหรับการจัดการการสำรองข้อมูลผู้ใช้ (ดูข้อมูลเพิ่มเติมที่เครื่องมือจัดการการสำรองข้อมูลด้านบน) ให้ทำดังนี้
- แอตทริบิวต์
android:backupAgent
ใหม่ขององค์ประกอบ<application>
ระบุชื่อคอมโพเนนต์ของคลาสย่อย BackupAgent ที่แอปพลิเคชันระบุไว้เพื่อจัดการการดำเนินการสำรองข้อมูล/กู้คืน (หากมี) - แอตทริบิวต์
android:restoreAnyVersion
ใหม่ขององค์ประกอบ<application>
ค่าบูลีนที่ระบุว่าแอปพลิเคชันพร้อมที่จะพยายามกู้คืนชุดข้อมูลที่สำรองข้อมูลไว้หรือไม่ แม้ว่าการสำรองข้อมูลจะมาจากแอปพลิเคชันเวอร์ชันใหม่กว่าที่ติดตั้งอยู่ในอุปกรณ์ก็ตาม
- แอตทริบิวต์
- สำหรับการจัดการคอมไพเลอร์ JIT ของแพลตฟอร์ม ให้ทำดังนี้
- แอตทริบิวต์
android:vmSafeMode
ใหม่ขององค์ประกอบ<application>
ค่าบูลีนที่ระบุว่าจะปิดใช้การเพิ่มประสิทธิภาพคอมไพเลอร์ JIT เมื่อเรียกใช้แอปพลิเคชันหรือไม่
- แอตทริบิวต์
สิทธิ์
android.permission.BIND_DEVICE_ADMIN
— ตัวรับการออกอากาศสำหรับการดูแลระบบอุปกรณ์ต้องมีสิทธิ์นี้เพื่อให้มั่นใจว่ามีเพียงระบบเท่านั้นที่โต้ตอบกับตัวรับได้android.permission.KILL_BACKGROUND_PROCESSES
— อนุญาตให้แอปพลิเคชันเรียกใช้killBackgroundProcesses(String)
android.permission.BIND_WALLPAPER
—WallpaperService
ต้องมีสิทธิ์นี้เพื่อให้มั่นใจว่ามีเพียงระบบเท่านั้นที่โต้ตอบกับWallpaperService
ได้android.permission.SET_TIME
— อนุญาตให้แอปพลิเคชันตั้งค่าเวลาของระบบ
รายงานความแตกต่างของ API
ดูรายละเอียดการเปลี่ยนแปลง API ทั้งหมดใน Android 2.2 (API ระดับ 8) ได้ที่รายงานความแตกต่างของ API