22 February 2020

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

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 10 (API 29)

System

Autofill improvements

        ปรับปรุงการทำงานของ Autofill Framework เช่น รองรับการซ่อน/แสดงข้อมูลในช่อง Password, สามารถอัพเดท Password ได้แล้ว เป็นต้น

Roles

        เพิ่มรูปแบบการอนุญาตให้แอปเข้าถึงข้อมูลและเรียกใช้งานฟังก์ชันต่างๆของระบบแอนดรอยด์โดยแยกเป็น Role ต่างๆตามที่ระบบของแอนดรอยด์ได้กำหนดไว้

User Interface

Surface control API

        เพิ่ม Surface Control API สำหรับ Surface ที่จำเป็นต้องจัดการกับ Buffer Source และ Metadata สำหรับกำหนดรูปแบบในการแสดง Buffer บน Surface พร้อมๆกัน

WebView hung renderer detection

        เพิ่ม WebView Renderer Client  API สำหรับจัดการกับกรณีที่ Renderer ของ WebView มีปัญหาไม่สามารถทำงานได้

Settings panels

        รองรับการแสดงหน้าต่าง Settings ในรูปแบบของ Panel เพื่อให้ผู้ใช้สามารถตั้งค่าใน Settings ได้โดยไม่จำเป็นต้องสลับแอป โดยสามารถแสดงได้แค่หน้า Internet, NFC และ Volume ของ Settings ได้เท่านั้น

Sharing improvements

        เพิ่ม Sharing Shortcuts API เพื่อมาแทนที่ Direct Share API ซึ่งเปลี่ยนรูปแบบการแชร์ข้อมูลจากแบบ Pull Model มาเป็น Push Model แทน ซึ่งจะช่วยให้ระบบสามารถแชร์ข้อมูลไปยังปลายทางได้ไวขึ้น

Connectivity

Wi-Fi Network Connection API

        รองรับการเชื่อมต่อแบบ Peer-to-peer ซึ่งจะช่วยให้สามารถทำแอปที่ต้องการให้ผู้ใช้เปลี่ยน Wi-Fi Access Point ให้กับอปุกรณ์เชื่อมต่ออยู่ได้ เหมาะสำหรับอุปกรณ์อย่าง Chromecast หรือ Google Home

Wi-Fi Network Suggestion API

        แสดงหน้าต่างเชื่อมต่อ Wi-Fi Access Point โดยกำหนด Wi-Fi ที่ต้องการให้เชื่อมต่อได้ 

Improvements to Wi-Fi High-performance and Low-latency Modes

        สามารถเปิดใช้งาน Low-latency Mode เพื่อให้ใช้งาน Wi-Fi ด้วยประสิทธิภาพที่สูงสุดและมี Latency ต่ำ โดยจะใช้งานได้ก็ต่อเมื่อแอปทำงานอยู่บน Foreground และเปิดหน้าจออยู่ ซึ่งจะมีเหมาะกับแอปที่ต้องการเชื่อมต่อกับ Server ด้วยความ Real-time อย่างเช่นเกม

Specialized Lookups in DNS Resolver

        รองรับ DNS over TLS ในตัว

Wi-Fi Easy Connect

        สามารถส่ง Wi-Fi Credential ให้กับอุปกรณ์อื่นๆผ่าน URI ซึ่งจะอยู้ในรูปแบบของ QR Code, Blutooth LE หรือ NFC

Wi-Fi Direct Connection API

        Wi-Fi Direct สามารถเชื่อมต่อได้เร็วขึ้นโดยใช้ข้อมูลที่กำหนดไว้ล่วงหน้า ซึ่งข้อมูลดังกล่าวจะถูกส่งผ่าน Bluetooth หรือ NFC

Bluetooth LE Connection Oriented Channels (CoC)

        สามารถเชื่อมต่อผ่าน BLE CoC เพื่อส่งข้อมูลขนาดใหญ่ระหว่างอุปกรณ์ที่รองรับ BLE

Telephony

Call Quality Improvements

        สามารถเช็คค่า Quality ของการโทรแบบ IP Multimedia Subsystem (IMS) 

Call Screening and Caller ID

        เนื่องจากระบบของแอนดรอยด์สามารถป้องกันการโทรสแปมได้ ซึ่งการโทรเข้าจะเป็นแบบเสียงเงียบ แต่ข้อมูลการโทรเข้าก็จะยังคงเก็บไว้ใน Call Log ของเครื่องนั้นๆ ซึ่งแอปสามารถดึงข้อมูลการโทรโดยยกเว้นข้อมูลที่เป็นการโทรสแปมได้

Call Redirection Service API

        ยกเลิกการใช้ Broadcast Receiver ที่ชื่อว่า NEW_OUTGOING_CALL เปลี่ยนไปใช้ Call Redirection Service API แทน 

Media and graphics

Native MIDI API

        เพิ่ม Android Native MIDI API เพื่อรองรับ MIDI ผ่าน C/C++

Media Codec Info Improvements

        เพิ่มข้อมูลต่างๆใน Media Codec มากขึ้น

Monochrome Camera support

        รองรับกล้องแบบ Monochrome 

Dynamic Depth Format

        เมื่อถ่ายภาพด้วยกล้องจะสามารถเก็บข้อมูลความลึก (Depth Metadata) ของภาพนั้นๆได้ โดยจะแยกเป็นอีกไฟล์หนึ่ง โดยเป็นข้อมูลแบบ Dynamic Depth Format (DDF) โดยแอปสามารถเลือกได้ว่าต้องการแค่ JPG หรือว่า JPG + Depth เพื่อนำไปทำ Post-processing ตามที่ต้องการได้โดยไม่กระทบกับไฟล์ต้นฉบับ

ANGLE

        รองรับการใช้งาน Almost Native Graphics Layer Engine (ANGLE) เพื่อให้ Native Graphic Engine ทำงานอยู่บน Vulkan 

Security

Improved Biometric Authentication Dialogs

        ปรับปรุงในเรื่องของการใช้ Biometric Authentication ให้สามารถบอกกับระบบของแอนดรอยด์ได้ว่าจะไม่จำเป็นต้องยืนยันตัวตนซ้ำถ้าเคยทำไปเรียบร้อยแล้ว และมี Fallback สำหรับกรณีที่ผู้ใช้ยืนยันตัวตนไม่ผ่าน

Run Embedded DEX Code Directly from APK

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

TLS 1.3 Support

        รองรับ TLS 1.3

Public Conscrypt API

        ในเวอร์ชันก่อนๆ การเรียกใช้ Conscrypt จะต้องทำ Reflection ถึงจะเรียกใช้งานได้ ซึ่งในเวอร์ชันนี้จะเป็น Public API แต่ว่ายังเป็นระดับ Greylist และอาจจะถูกจำกัดการเรียกใช้งานในอนาคต

Accessibility

Accessibility shortcut for physical keyboards

        สามารถเปิด/ปิด Accessibility Shortcut บน Physical Keyboard ด้วยการกดปุ่ม Control + Alt + Z

Soft keyboard controller enhancement

        Accessibility สามารถเรียก Software Keyboard ขึ้นมาได้ถึงแม้ว่าจะมีการเชื่อมต่อ Hardware Keyboard อยู่


สรุป

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