22 February 2020

สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 9.0 Pie (API 28)

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 9.0 Pie (API 28)

System 

Indoor positioning with Wi-Fi RTT

        เพิ่ม RTT API เพื่อรองรับการทำ Wi-Fi Round-trip-time (RTT) สำหรับการระบุตำแหน่งตัวเครื่องด้วยการใช้ Wi-Fi 

Display Cutout Support

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

Notification Enhancements

        เพิ่มความสามารถของ Notification โดยรองรับการสร้าง Notification ในรูปแบบของบทสนทนาให้มากขึ้น สามารถกำหนดข้อมูลเกี่ยวกับบุคคลในบทสนทนาและแนบรูปภาพ รวมไปถึงการจัดกลุ่มของบทสนทนาตามบุคคล

        มีการปรับปรุงและเพิ่มความสามารถที่เกี่ยวกับ Notification Channels  เช่น เพิ่ม Categoary สำหรับ Priority ใน Do not disturb และเพิ่มรูปแบบการบล็อคการแสดงผลของ Notification ในแบบต่างๆ

Multi-camera Support and Camera Updates

        Camera v2 API รองรับการใช้งานกล้องได้มากกว่า 1 ตัวพร้อมๆกัน สำหรับอุปกรณ์ที่มีกล้องหน้าหรือกล้องหลังมากกว่า 1 ตัว, รองรับภาพถ่ายจากกล้องที่เป็นแบบ Monochrome และรองรับการใช้งาน External ผ่าน USB อย่าง Flashlight และ Camera 

Image Decoder for Drawables and Bitmaps

        เพิ่ม Image Decoder API เพื่อใช้งานแทน Bitmap Factory API โดยมีรูปแบบการใช้งานที่ง่ายกว่าและยืดหยุ่นกว่า และรองรับกับไฟล์ภาพเคลื่อนไหวด้วย

Data Cost Sensitivity in Job Scheduler

        เพิ่มความสามารถใน Job Scheduler เพื่อให้สามารถเช็คข้อมูลต่างๆของอินเตอร์เน็ตมือถือได้ เพื่อให้รองรับกับ Job ที่เกี่ยวข้องการกับใช้งาน อินเตอร์เน็ตมือถือ

Neural Networks API 1.1

        เพิ่ม Element-wise Mathematical Operation กับ Array Operation ใหม่ๆเข้ามา และสามารถกำหนดให้การคำนวณค่าใดๆ ด้วยรูปแบบ IEEE 754 16-bit Floating-point ได้

Autofill Framework Improvements

        ปรับปรุงและเพิ่มคำสั่งสำหรับ Autofill Framework

Android Backup

        รองรับการเข้ารหัสตอน Backup ข้อมูลของแอปด้วยการใช้ PIN, Pattern หรือ Password ตามที่กำหนดไว้ใน Screen Unlock และจะต้องปลดล็อคอีกครั้งเมื่อต้องการ Restore ข้อมูลดังกล่าว

        และสามารถกำหนดข้อมูลในแอปที่ต้องการ Backup ได้ว่าข้อมูลไหนเป็นข้อมูลสำคัญและข้อมูลไหนเป็นข้อมูลทั่วไป

ART ahead-of-time conversion of DEX files

        ART Compiler จะเพิ่มประสิทธิภาพในการบีบอัดไฟล์ DEX โดยทำให้อยู่ในรูปของ Compact DEX ซึ่งจะช่วยให้แอปเริ่มทำงานได้ใจขึ้น ใช้พื้นที่น้อยลง และใช้ Memory น้อยลง ซึ่งจะเห็นผลได้ชัดกับบนอุปกรณ์ที่สเปคต่ำ

User Interface

Animation Image Drawable

        เพิ่มคลาส AnimatedImageDrawable เพื่อรองรับการแสดงไฟล์ภาพเคลื่อนไหว ซึ่งทำงานร่วมกับ Image Decofer API โดยมีรูปแบบการทำงานที่คล้ายกับ AnimatedVectorDrawable และเพิ่ม AAudio API เพื่อรองรับการการเสียงสำหรับแอปที่ใช้ในการสื่อสารที่ต้องการคุณภาพเสียงที่ดีแต่มี Latency ที่เพิ่มความสามารถใน Audio Effect API เพื่อรองรับการทำ Dynamic Processing 

Text

        รองรับการทำ Precomputed Text บน Background Tread, สามารถเรียกแว่นขยายผ่าน Magnifier API เพื่อขยายขนาดข้อความที่แสดงผล, เพิ่มความสามารถใน Text Classifier สำหรับวิเคราะห์ข้อความด้วย Machine Learning เพื่อบอกว่าข้อความดังกล่าวเป็นข้อมูลแบบไหน และเพิ่มคำสั่งต่างๆใน Text View เพื่อให้จัดการกับการจัด Layout ได้ง่ายขึ้น

Media

HDR VP9 Video, HEIF Image Compression and Media APIs

        รองรับการเล่นวีดีโอแบบ High Dynamic Range (HDR) VP9 Profile 2 และการแสดงไฟล์ภาพแบบ High Efficiency Image File (HEIF/HEIC)

Security

Android Protected Confirmation

        เพิ่ม Android Protected Confirmation เพื่อใช้ในการยืนยันกับผู้ใช้ในเวลาที่ทำอะไรบางอย่างที่ต้องการแสดงข้อมูลบางอย่างที่ต้องการความปลอดภัย เช่นการทำ Payment Transaction ต่างๆ

Unified Biometric Authentication Dialog

        เพิ่ม Biometric Prompt API เพื่อเป็นตัวกลางในการเข้าใช้งานการยืนยันตัวตนด้วยข้อมูลทางชีวภาพ เช่น Fingerprint, Retina Scanner หรือเซ็นเซอร์แบบอื่นๆ โดยไม่ต้องเรียกคำสั่งเพื่อใช้งานแยกกัน 

Hardware Security Module

        รองรับการทำงานของ StrongBox Keymaster ที่เป็นชื่อเรียกโมดูลด้านความปลอดภัยที่มี CPU, Storage และความสามารถอื่นๆที่เกี่ยวกับความปลอดภัยในตัวที่สามารถทำงานร่วมกับ Trusted Execution Environment (TEE)  ได้

Secure Key Import Into Keystore

        เพิ่มความปลอดภัยในการถอดรหัสข้อมูลด้วยการเพิ่ม Encrpyted Key ใส่ไว้ใน Keystore ที่เป็นแบบ ASN.1-encoed Key ซึ่งจะช่วยให้ข้อมูลที่อยู่ในนั้นเมื่อถูกโหลดเข้า Memory เครื่องจะแสดงเป็นข้อมูลที่ถูกเข้ารหัสอยู่ และจะมีการใช้ Keybaster เพื่อถอดรหัสในภายหลัง โดยจะรองรับกับเครื่องที่รองรับ Keymaster 4 ขึ้นไป

APK Signature Scheme with Key Rotation

        รองรับ APK Signature Scheme v3 ที่มีการเพิ่ม Proof-of-rotation Record เข้าไปใน Signing Block ในแต่ละ Signing Certificate ซึ่งจะช่วยให้แอปสามารถใช้ Signing Certificate ตัวใหม่ได้ โดยที่ Signing Certificate ตัวนั้นจะต้องมีการเชื่อมกับ Signing Certificate ที่อยู่ใน APK ตัวก่อนหน้า 

Option to Allow Key Decryption Only on Unlocked Devices

        สามารถระบุได้ว่าจะให้ Keystore ทำการถอดรหัสข้อมูลก็ต่อเมื่อทำการปลดล็อคหน้าจอเท่านั้น ซึ่งจะช่วยป้องกันไม่ให้ข้อมูลถูกถอดรหัสเมื่อเครื่องหายหรือถูกขโมย

Legacy Encryption Support

        อุปกรณ์แอนดรอยด์ที่รองรับ Keymaster 4 สามารถใช้ Triple Data Encryption Algorithm (Triple DES) สำหรับระบบที่เป็น Legacy ได้

Deprecation of WPS

        Wi-Fi Protected Setup (WPS) ถูกประกาศ Deprecated ด้วยเหตุผลด้านความปลอดภัย

สรุป

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