22 February 2020

สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 6.0 Marshmallow (API 23)

Created on Saturday, February 22, 2020


        บทความนี้เป็นหนึ่งในซีรีย์บันทึกการเปลี่ยนแปลงของฟีเจอร์และ API ในแอนดรอยด์แต่ละเวอร์ชัน สำหรับผู้ที่หลงเข้ามาอ่านคนใดต้องการดูของเวอร์ชันอื่นๆ สามารถกดดูได้จากลิ้งข้างล่างนี้ได้เลย

สารบัญ

        • Android 11 (API 30)
        • Android 10 (API 29)
        • Android 9.0 Pie (API 28)
        • Android 8.1 Oreo (API 27)
        • Android 8.0 Oreo (API 26)
        • Android 7.1 Nougat (API 25)
        • Android 7.0 Nougat (API 24)
        • Android 6.0 Marshmallow (API 23)
        • Android 5.1 Lollipop (API 22)
        • Android 5.0 Lollipop (API 21)
        • Android 4.4 KitKat (API 19)

Android 6.0 Marshmallow (API 23)

Security

Fingerprint Authentication

        รองรับการใช้งาน Fingerprint Scanner ผ่าน FingerprintManager API

Confirm Credential

        สามารถเรียกหน้า Authentication โดยอิงจากรูปแบบที่ผู้ใช้ใช้งานในหน้า Screen Unlock และสามารถกำหนดระยะเวลาในการ Re-authentication

System

App Linking

        ระบบ Intent แบบใหม่บนแอนดรอยด์ที่จะรู้ได้ทันทีว่า Web Domain นั้นเป็นของแอปไหน เพื่อที่เวลาเปิด URL ของ Domain นั้นๆแล้วเด้งไปเปิดแอปได้ทันที

Adoptable Storage Devices

        สามารถเปลี่ยน SD Card ให้ทำงานเป็นเหมือน Internal Storage จึงสามารถติดตั้งแอปลงใน SD Card ได้โดยตรง ทำให้คำสั่งสำหรับ Internal Storage มีการอัปเดตใหม่ เพราะว่าสามารถมี Internal Storage ได้มากกว่า 1 ตัว รวมไปถึงกำหนดใน Android Manifest ได้ว่าจะให้ติดตั้งแอปลงใน SD Card เมื่อเป็น Internal Storage หรือไม่

Multimedia

4K Display Mode

        รองรับการแสดงผลที่ความละเอียด 4K บนอุปกรณ์ที่รองรับ โดยที่ UI จะแสดงอยู่บนความละเอียดเดิม (มักจะกำหนดไว้ที่ 1080p) แต่ว่า SurfaceView จะถูกแสดงผลอยู่บนความละเอียดสูงสุด (แสดงผลเป็น 4K)

Support for MIDI

        รองรับ MIDI Protocol ผ่าน MIDI API เพื่อรับส่งข้อมูลแบบ MIDI ผ่านทาง USB หรือ Bluetooth LE 

Create Digital Audio Capture and Playback Objects

        รองรับการบันทึกเสียงที่สามารถกำหนด Source และ Sink ของเสียงในเครื่องได้

APIs to Associate Audio and Input Devices

        สามารถค้นหาอุปกรณ์ต่างๆที่เชื่อมต่ออยู่และมีไมโครโฟนในตัวเพื่อสามาถใช้แทนไมโครโฟนในตัวเครื่องได้

List of All Audio Devices

        สามารถดึงข้อมูลของเครื่องเสียงที่เชื่อมต่ออยู่ ผ่าน AudioManager API

Flashlight API

        สามารถสั่ง Camera Flash ในเครื่องให้เปิดค้างไว้เป็น Torch Mode ได้

Reprocessing Camera2 API

        Camera2 API รองรับ YUV และ Private Opaque เพื่อทำ Image Reprocessing ใน Camera Capture Session ได้

Updated ImageWriter Objects and Image Reader Class

        เพิ่ม ImageWriter API เพื่อใช้ในการสร้างข้อมูลภาพเพื่อเพิ่มลงไปใน Surface ที่จะถูก Component อื่นๆไปเรียกใช้งานอีกที (เช่น Surface ที่อยู่ใน SurfaceView ที่ถูกเรียกใช้งานจาก Camera2 API)

User Input

Voice Interactions

        เพิ่ม Voice Interaction API สำหรับเรียกใช้งาน Voice Actions เพื่อให้แอปรองรับการสั่งงานแอปด้วยเสียงได้

Assist API

        สามารถส่งข้อมูลจากแอปไปให้ Google Assistant ได้ และสามารถจำกัดข้อมูลในแอปที่ไม่ต้องการให้ Google Assistant เข้าถึงได้

Bluetooth Stylus Support

        สามารถรองรับการใช้งาน Bluetooth Stylus กับแอปได้ผ่านคลาส View, GestureDetector และ MotionEvent 

User Interface

Themeable ColorStateLists

        สามารถใช้ ColorStateList กับ Theme Attribute ได้แล้ว และ getColorStateList() กับ getColor() ในคลาส Resources ถูกประกาศ Deprecated เพื่อให้เปลี่ยนไปใช้จากคลาส Context แทน

Wireless & Connectivity

Hotspot 2.0

        รองรับการใช้งาน Hotspot 2.0 โดยสามารถเรียกใช้งานได้ผ่านคลาส WifiEnterpriseConfig 

Improved Bluetooth Low Energy Scanning

        เพิ่มคำสั่ง setCallbackType() เพื่อให้ระบบแจ้งเตือนเมื่อเจออุปกรณ์ที่เป็น Bluetooth LE

สรุป

        ก็ต้องยอมรับว่าในแต่ละเวอร์ชันก็มีอะไรเพิ่มเข้ามาเยอะแยะมากมาย เพื่อช่วยให้ผู้ใช้สะดวกสบายและสามารถทำอะไรได้มากขึ้น แต่ในอีกมุมหนึ่ง ก็ส่งผลให้นักพัฒนาต้องหมั่นปรับตัวตามอยู่ตลอดเวลาเพื่อให้แอปของผู้ที่หลงเข้ามาอ่านนั้นยังคงใช้งานได้ปกติสุข