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

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

สารบัญ

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 อยู่

สรุป

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