ระดับ 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