สรุปการเปลี่ยนแปลงของ Feature และ API ใน Android 10 (API 29)
บทความนี้เป็นหนึ่งในซีรีย์บันทึกการเปลี่ยนแปลงของฟีเจอร์และ API ในแอนดรอยด์แต่ละเวอร์ชัน สำหรับผู้ที่หลงเข้ามาอ่านคนใดต้องการดูของเวอร์ชันอื่นๆ สามารถกดดูได้จากลิ้งข้างล่างนี้ได้เลย
สารบัญ
- 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)
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 อยู่
สรุป
ก็ต้องยอมรับว่าในแต่ละเวอร์ชันก็มีอะไรเพิ่มเข้ามาเยอะแยะมากมาย เพื่อช่วยให้ผู้ใช้สะดวกสบายและสามารถทำอะไรได้มากขึ้น แต่ในอีกมุมหนึ่ง ก็ส่งผลให้นักพัฒนาต้องหมั่นปรับตัวตามอยู่ตลอดเวลาเพื่อให้แอปของผู้ที่หลงเข้ามาอ่านนั้นยังคงใช้งานได้ปกติสุข