วันนี้เราจะเปิดตัวเบต้าเวอร์ชันที่ 2 ของ Android 17 ซึ่งเป็นการสานต่องานของเราในการสร้างแพลตฟอร์มที่ให้ความสำคัญกับความเป็นส่วนตัว ความปลอดภัย และประสิทธิภาพที่ดียิ่งขึ้น การอัปเดตนี้จะมอบความสามารถใหม่ๆ มากมาย รวมถึง EyeDropper API และเครื่องมือเลือกรายชื่อติดต่อที่รักษาความเป็นส่วนตัว นอกจากนี้ เรายังเพิ่มการวัดระยะขั้นสูง, API การส่งต่อข้ามอุปกรณ์ และอื่นๆ อีกด้วย
การเปิดตัวครั้งนี้ยังคงเป็นการเปลี่ยนแปลงจังหวะการเปิดตัวของเรา โดยหลังจากเปิดตัว SDK เวอร์ชันหลักประจำปีในไตรมาสที่ 2 แล้ว เราจะอัปเดต SDK เวอร์ชันย่อย
ประสบการณ์ของผู้ใช้และ UI ของระบบ
ฟองอากาศ
บับเบิลเป็นฟีเจอร์โหมดการแสดงหน้าต่างที่มอบประสบการณ์ UI แบบลอยใหม่แยกจาก API บับเบิลข้อความ ผู้ใช้สร้างบับเบิลแอปในโทรศัพท์ อุปกรณ์พับได้ หรือแท็บเล็ตได้โดยกดไอคอนแอปค้างไว้ในตัวเรียกใช้ ในหน้าจอขนาดใหญ่จะมีแถบบับเบิลเป็นส่วนหนึ่งของแถบงาน ซึ่งผู้ใช้สามารถจัดระเบียบ ย้ายไปมาระหว่างบับเบิล และย้ายบับเบิลไปยังและจากจุดที่ตรึงไว้บนหน้าจอได้
คุณควรปฏิบัติตามหลักเกณฑ์ในการรองรับโหมดหลายหน้าต่างเพื่อให้มั่นใจว่าแอปจะทำงานเป็นบับเบิลได้อย่างถูกต้อง
ฟีเจอร์บับเบิลยังไม่พร้อมใช้งานอย่างเต็มรูปแบบในเวอร์ชันเบต้า 2 โดยฟีเจอร์นี้จะพร้อมใช้งานใน Android 17 เวอร์ชันในอนาคต
EyeDropper API
EyeDropper API ระดับระบบใหม่ช่วยให้แอปขอสีจากพิกเซลใดก็ได้บนจอแสดงผลโดยไม่ต้องมีสิทธิ์การจับภาพหน้าจอที่มีความละเอียดอ่อน
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
result -> if (result.resultCode == Activity.RESULT_OK) {
val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
// Use the picked color in your app
}
}
fun launchColorPicker() {
val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
eyeDropperLauncher.launch(intent)
}เครื่องมือเลือกรายชื่อติดต่อ
เครื่องมือเลือกรายชื่อติดต่อระดับระบบใหม่ผ่าน ACTION_PICK_CONTACTS จะให้สิทธิ์การอ่านชั่วคราวตามเซสชันแก่เฉพาะฟิลด์ข้อมูลที่ผู้ใช้ขอ ซึ่งช่วยลดความจำเป็นในการใช้สิทธิ์ READ_CONTACTS แบบกว้าง นอกจากนี้ยังอนุญาตให้เลือกจากโปรไฟล์ส่วนตัวหรือโปรไฟล์งานของอุปกรณ์ด้วย
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val uri = it.data?.data ?: return@rememberLauncherForActivityResult
// Handle result logic
processContactPickerResults(uri)
}
}
val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
putExtra(EXTRA_ALLOW_MULTIPLE, true)
putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}
contactPicker.launch(intent)ความเข้ากันได้ของการจับเคอร์เซอร์กับทัชแพดที่ง่ายขึ้น
ก่อนหน้านี้ ทัชแพดจะรายงานเหตุการณ์ในลักษณะที่แตกต่างจากเมาส์อย่างมากเมื่อแอปจับเคอร์เซอร์ โดยจะรายงานตำแหน่งของนิ้วบนแพดแทนการเคลื่อนไหวสัมพัทธ์ที่เมาส์จะรายงาน ซึ่งทำให้การรองรับทัชแพดอย่างเหมาะสมในเกมมุมมองบุคคลที่หนึ่งเป็นเรื่องยาก ตอนนี้โดยค่าเริ่มต้น ระบบจะจดจำการเคลื่อนที่ของเคอร์เซอร์และท่าทางการเลื่อนเมื่อมีการจับภาพทัชแพด และรายงานท่าทางเหล่านั้นเหมือนกับเหตุการณ์ของเมาส์ คุณยังคงขอข้อมูลตำแหน่งนิ้วแบบละเอียดแบบเดิมได้โดยขอให้บันทึกในโหมด "สัมบูรณ์" ใหม่อย่างชัดแจ้ง
// To request the new default relative mode (mouse-like events) // This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE view.requestPointerCapture() // To request the legacy absolute mode (raw touch coordinates) view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)
ขอบเขตการพักของตัวเลือกแบบอินเทอร์แอกทีฟ
การเรียกใช้ getInitialRestingBounds ใน ChooserSession ของ Android จะช่วยให้แอปของคุณระบุตำแหน่งเป้าหมายที่ Chooser ครอบครองหลังจากที่ภาพเคลื่อนไหวและการโหลดข้อมูลเสร็จสมบูรณ์ ซึ่งจะช่วยให้ปรับ UI ได้ดียิ่งขึ้น
การเชื่อมต่อและข้ามอุปกรณ์
การส่งต่อแอปข้ามอุปกรณ์
Handoff API ใหม่ช่วยให้คุณระบุสถานะแอปพลิเคชันที่จะกลับมาทำงานต่อในอุปกรณ์อื่น เช่น แท็บเล็ต Android ได้ เมื่อเลือกใช้ ระบบจะซิงค์สถานะผ่าน CompanionDeviceManager และแสดงคำแนะนำในการส่งต่อใน Launcher ของอุปกรณ์ที่อยู่ใกล้เคียงของผู้ใช้ ฟีเจอร์นี้ออกแบบมาเพื่อมอบความต่อเนื่องของงานที่ราบรื่น ช่วยให้ผู้ใช้สามารถทำงานต่อจากจุดที่ค้างไว้ในเวิร์กโฟลว์ทั่วทั้งระบบนิเวศของ Android ที่สำคัญคือ Handoff รองรับทั้งการเปลี่ยนจากแอปหนึ่งไปยังอีกแอปหนึ่ง และการเปลี่ยนจากแอปไปยังเว็บ ซึ่งช่วยให้มีความยืดหยุ่นสูงสุดและรับประกันประสบการณ์การใช้งานที่สมบูรณ์แม้ว่าจะไม่ได้ติดตั้งแอปที่มาพร้อมเครื่องในอุปกรณ์ที่รับก็ตาม
API การวัดระยะขั้นสูง
เรากำลังเพิ่มการรองรับเทคโนโลยีการวัดระยะใหม่ 2 เทคโนโลยี ได้แก่
- UWB DL-TDOA ซึ่งช่วยให้แอปใช้ UWB สำหรับการนำทางในอาคารได้ พื้นผิว API นี้เป็นไปตามข้อกำหนด DL-TDOA ของ FIRA (Fine Ranging Consortium) 4.0 และช่วยให้การนำทางในอาคารรักษาความเป็นส่วนตัวได้ (หลีกเลี่ยงการติดตามอุปกรณ์โดยแองเคอร์)
- การตรวจหาฮาร์ดแวร์ใกล้เคียง ซึ่งช่วยให้แอปใช้ข้อกำหนดการวัดระยะใหม่ที่ WFA (WiFi Alliance) นำมาใช้ เทคโนโลยีนี้ช่วยเพิ่มความน่าเชื่อถือและความแม่นยำเมื่อเทียบกับข้อกำหนดการวัดระยะที่อิงตาม Wi-Fi Aware ที่มีอยู่
การปรับปรุงแพ็กเกจอินเทอร์เน็ต
ตอนนี้แอปสามารถเรียกข้อมูลอัตราการรับส่งข้อมูลสูงสุดที่ผู้ให้บริการจัดสรรให้สำหรับแอปพลิเคชันการสตรีมได้แล้วโดยใช้ getStreamingAppMaxDownlinkKbps และ getStreamingAppMaxUplinkKbps เพื่อเพิ่มประสิทธิภาพคุณภาพสื่อ
ฟังก์ชันหลัก ความเป็นส่วนตัว และประสิทธิภาพ
การเข้าถึงเครือข่ายภายใน
Android 17 เปิดตัวสิทธิ์รันไทม์ ACCESS_LOCAL_NETWORK เพื่อปกป้องผู้ใช้จากการเข้าถึงเครือข่ายในระบบเดียวกันโดยไม่ได้รับอนุญาต เนื่องจากสิทธิ์นี้อยู่ภายใต้กลุ่มสิทธิ์ NEARBY_DEVICES ที่มีอยู่ ผู้ใช้ที่ให้สิทธิ์ NEARBY_DEVICES อื่นๆ ไปแล้วจะไม่ได้รับข้อความแจ้งอีก การประกาศและขอสิทธิ์นี้จะช่วยให้แอปค้นหาและเชื่อมต่อกับอุปกรณ์ในเครือข่ายเฉพาะที่ (LAN) ได้ เช่น อุปกรณ์สมาร์ทโฮมหรือเครื่องรับการแคสต์ ซึ่งจะช่วยป้องกันไม่ให้แอปที่เป็นอันตรายใช้ประโยชน์จากการเข้าถึงเครือข่ายภายในแบบไม่จำกัดเพื่อการติดตามผู้ใช้และการเก็บลายนิ้วมืออย่างลับๆ ตอนนี้แอปที่กำหนดเป้าหมายเป็น Android 17 ขึ้นไปจะมี 2 เส้นทางในการรักษาการสื่อสารกับอุปกรณ์ LAN ได้แก่ ใช้ตัวเลือกอุปกรณ์ที่ระบบเป็นสื่อกลางซึ่งรักษาความเป็นส่วนตัวเพื่อข้ามข้อความแจ้งขอสิทธิ์ หรือขอสิทธิ์ใหม่นี้อย่างชัดเจนในรันไทม์เพื่อรักษาการสื่อสารในเครือข่าย LAN
การออกอากาศการเปลี่ยนแปลงออฟเซ็ตเขตเวลา
ตอนนี้ Android มีเจตนาในการออกอากาศที่เชื่อถือได้ ACTION_TIMEZONE_OFFSET_CHANGED ซึ่งจะทริกเกอร์เมื่อออฟเซ็ตเขตเวลาของระบบเปลี่ยนแปลง เช่น ในช่วงการเปลี่ยนเวลาออมแสง ซึ่งจะช่วยเสริมเจตนาในการออกอากาศที่มีอยู่ ACTION_TIME_CHANGED และ ACTION_TIMEZONE_CHANGED ซึ่งจะทริกเกอร์เมื่อการประทับเวลา Unix เปลี่ยนแปลงและเมื่อรหัสเขตเวลาเปลี่ยนแปลงตามลำดับ
การจัดการและการจัดลำดับความสำคัญของ NPU
แอปที่กำหนดเป้าหมายเป็น Android 17 ซึ่งจำเป็นต้องเข้าถึง NPU โดยตรงต้องประกาศ FEATURE_NEURAL_PROCESSING_UNIT ในไฟล์ Manifest เพื่อไม่ให้ถูกบล็อกไม่ให้เข้าถึง NPU ซึ่งรวมถึงแอปที่ใช้ LiteRT NPU delegate, SDK เฉพาะของผู้ให้บริการ รวมถึง NNAPI ที่เลิกใช้งานแล้ว
รองรับ ICU 78 และ Unicode 17
ไลบรารีการปรับให้เป็นสากลหลักได้รับการอัปเดตเป็น ICU 78 ซึ่งขยายการรองรับสคริปต์ อักขระ และบล็อกอิโมจิใหม่ๆ รวมถึงเปิดใช้การจัดรูปแบบโดยตรงของออบเจ็กต์เวลา
การป้องกัน OTP ทาง SMS
Android กำลังขยายการป้องกัน OTP ทาง SMS โดยการหน่วงเวลาการเข้าถึงข้อความ SMS ที่มี OTP โดยอัตโนมัติ ก่อนหน้านี้ การป้องกันมุ่งเน้นที่รูปแบบ SMS Retriever เป็นหลัก ซึ่งการนำส่งข้อความที่มีแฮช SMS Retriever จะล่าช้าสำหรับแอปส่วนใหญ่เป็นเวลา 3 ชั่วโมง อย่างไรก็ตาม แอปบางแอป เช่น แอป SMS เริ่มต้น ฯลฯ และแอปที่ตรงกับแฮชจะได้รับการยกเว้นจากความล่าช้านี้ การอัปเดตนี้จะขยายการปกป้องไปยังข้อความ SMS ทั้งหมดที่มี OTP สำหรับแอปส่วนใหญ่ ข้อความ SMS ที่มี OTP จะเข้าถึงได้หลังจากผ่านไป 3 ชั่วโมงเพื่อช่วยป้องกันการลักลอบใช้ OTP ระบบจะระงับการออกอากาศ SMS_RECEIVED_ACTION และจะกรองการค้นหาฐานข้อมูลของผู้ให้บริการ SMS ข้อความ SMS จะพร้อมใช้งานในแอปเหล่านี้หลังจากผ่านไปตามระยะเวลาที่กำหนด
การเข้าถึงข้อความ SMS รูปแบบ WebOTP ที่ล่าช้า
หากแอปมีสิทธิ์อ่านข้อความ SMS แต่ไม่ใช่ผู้รับ OTP ที่ต้องการ (ตามที่กำหนดโดยการยืนยันโดเมน) คุณจะเข้าถึงข้อความ SMS รูปแบบ WebOTP ได้หลังจากผ่านไป 3 ชั่วโมงแล้วเท่านั้น การเปลี่ยนแปลงนี้ออกแบบมาเพื่อปรับปรุงความปลอดภัยของผู้ใช้โดยการตรวจสอบว่ามีเพียงแอปที่เชื่อมโยงกับโดเมนที่ระบุในข้อความเท่านั้นที่อ่านรหัสยืนยันโดยอัตโนมัติได้ การเปลี่ยนแปลงนี้มีผลกับแอปทั้งหมดไม่ว่าจะมีระดับ API เป้าหมายใดก็ตาม
การเข้าถึง SMS มาตรฐานที่มี OTP ล่าช้า
สำหรับข้อความ SMS ที่มี OTP ซึ่งไม่ได้ใช้รูปแบบ WebOTP หรือ SMS Retriever คุณจะเข้าถึง SMS ที่มี OTP ได้หลังจากผ่านไป 3 ชั่วโมงสำหรับแอปส่วนใหญ่ การเปลี่ยนแปลงนี้มีผลกับแอปที่กำหนดเป้าหมายเป็น Android 17 (API ระดับ 37) ขึ้นไปเท่านั้น
แอปบางแอป เช่น SMS เริ่มต้น แอปผู้ช่วย รวมถึงแอปคู่ของอุปกรณ์ที่เชื่อมต่อ ฯลฯ จะได้รับการยกเว้นจากการหน่วงเวลานี้
แอปทั้งหมดที่ต้องอ่านข้อความ SMS เพื่อดึงข้อมูล OTP ควรเปลี่ยนไปใช้ API ของ SMS Retriever หรือ SMS User Consent เพื่อให้มั่นใจว่าฟังก์ชันการทำงานจะยังคงดำเนินต่อไป
กำหนดการของ Android 17
เราจะเร่งดำเนินการจากเวอร์ชันเบต้านี้ไปสู่เป้าหมายความเสถียรของแพลตฟอร์มที่กำหนดไว้ในเดือนมีนาคม ในขั้นตอนนี้ เราจะส่งมอบ API ของ SDK/NDK ขั้นสุดท้าย ตั้งแต่นั้นเป็นต้นไป แอปของคุณจะกำหนดเป้าหมายเป็น SDK 37 และเผยแพร่ไปยัง Google Play เพื่อช่วยให้คุณทำการทดสอบและรวบรวมความคิดเห็นของผู้ใช้ได้ในช่วงหลายเดือนก่อนที่ Android 17 จะพร้อมใช้งานในเวอร์ชันสำหรับผู้ใช้ทั่วไป
ปีแห่งการเปิดตัว
เราวางแผนที่จะให้ Android 17 ได้รับการอัปเดตต่อไปในการเผยแพร่รายไตรมาส การเปิดตัวในไตรมาสที่ 2 ที่กำลังจะมาถึงเป็นการเปิดตัวเพียงครั้งเดียวที่เราจะแนะนำการเปลี่ยนแปลงลักษณะการทำงานที่ทำให้แอปหยุดทำงานตามแผน เราวางแผนที่จะเปิดตัว SDK เวอร์ชันย่อยในไตรมาสที่ 4 พร้อม API และฟีเจอร์เพิ่มเติม
เริ่มต้นใช้งาน Android 17
คุณลงทะเบียนอุปกรณ์ Pixel ที่รองรับเพื่อรับการอัปเดต Android รุ่นเบต้านี้และรุ่นต่อๆ ไปผ่านอากาศได้ หากไม่มีอุปกรณ์ Pixel คุณสามารถใช้อิมเมจระบบ 64 บิตกับโปรแกรมจำลองของ Android ใน Android Studio ได้
หากปัจจุบันคุณอยู่ในโปรแกรม Android รุ่นเบต้า ระบบจะเสนอการอัปเดตผ่านอากาศเป็นเบต้า 2 ให้คุณ
หากคุณใช้ Android 26Q1 เบต้าและต้องการใช้รุ่นที่เสถียรสุดท้ายของ 26Q1 และออกจากเบต้า คุณจะต้องไม่สนใจการอัปเดตผ่านอากาศเป็น 26Q2 เบต้า 2 และรอการเปิดตัว 26Q1
เราต้องการทราบความคิดเห็นของคุณ ดังนั้นโปรดรายงานปัญหาและส่งคำขอฟีเจอร์ในหน้าความคิดเห็น ยิ่งเราได้รับความคิดเห็นของคุณเร็วเท่าไหร่ เราก็จะนำไปปรับใช้ในงานของเราสำหรับการเปิดตัวเวอร์ชันสุดท้ายได้มากขึ้นเท่านั้น
เราขอแนะนำให้ใช้ตัวอย่างล่าสุดของ Android Studio (Panda) เพื่อให้ได้รับประสบการณ์การพัฒนาแอป Android 17 ที่ดีที่สุด เมื่อตั้งค่าแล้ว สิ่งที่คุณควรทำมีดังนี้
- คอมไพล์กับ SDK ใหม่ ทดสอบในสภาพแวดล้อม CI และรายงานปัญหาในเครื่องมือติดตามของเราในหน้าความคิดเห็น
- ทดสอบความเข้ากันได้ของแอปปัจจุบัน ดูว่าแอปได้รับผลกระทบจากการเปลี่ยนแปลงใน Android 17 หรือไม่ แล้วติดตั้งแอปในอุปกรณ์หรือโปรแกรมจำลองที่ใช้ Android 17 และทดสอบอย่างละเอียด
เราจะอัปเดตอิมเมจระบบรุ่นตัวอย่าง/เบต้าและ SDK เป็นประจำตลอดรอบการเผยแพร่ Android 17 เมื่อติดตั้งบิลด์เบต้าแล้ว คุณจะได้รับการอัปเดตในอนาคตโดยอัตโนมัติ
แบบไร้สายสำหรับการแสดงตัวอย่างและเวอร์ชันเบต้าทั้งหมดในอนาคต
ดูข้อมูลทั้งหมดได้ที่เว็บไซต์นักพัฒนาแอป Android 17
เข้าร่วมสนทนา
ขณะที่เรากำลังมุ่งสู่ความเสถียรของแพลตฟอร์มและความพร้อมให้บริการทั่วไปของ Android 17 ภายในปีนี้ ความคิดเห็นของคุณยังคงเป็นสิ่งที่มีค่าที่สุดสำหรับเรา ไม่ว่าคุณจะเป็นผู้ใช้รุ่นแรกในช่อง Canary หรือนักพัฒนาแอปที่ทดสอบใน Beta 2 โปรดเข้าร่วมชุมชนของเราและส่งความคิดเห็น เราพร้อมรับฟัง
-
ข่าวสารผลิตภัณฑ์Google I/O '26 มีการประกาศสำคัญ 17 รายการสำหรับนักพัฒนาแอป Android โดยมุ่งเน้นที่ประสิทธิภาพการทำงานที่นำโดยเอเจนต์, Compose First เป็นมาตรฐาน UI ของเรา รวมถึงสื่อประสิทธิภาพสูงและการพัฒนาแบบปรับเปลี่ยนได้สำหรับระบบนิเวศที่ขยายตัว
Matthew McCullough • อ่าน 8 นาที -
ข่าวสารผลิตภัณฑ์วันนี้ในระหว่าง The Android Show เราได้ประกาศว่า Android กำลังเปลี่ยนจากระบบปฏิบัติการไปเป็นระบบอัจฉริยะ ซึ่งจะสร้างโอกาสในการมีส่วนร่วมกับแอปของคุณมากขึ้น
Matthew McCullough • อ่าน 4 นาที -
ข่าวสารผลิตภัณฑ์วันนี้เราจะยกระดับการพัฒนา Android ด้วย Gemma 4 ซึ่งเป็นโมเดลโอเพนซอร์สที่ล้ำสมัยที่สุดของเราที่ออกแบบมาพร้อมความสามารถในการให้เหตุผลที่ซับซ้อนและการเรียกใช้เครื่องมือโดยอัตโนมัติ
Matthew McCullough • อ่าน 2 นาที
รับข้อมูลเชิงลึกด้านการพัฒนาแอป Android ล่าสุดส่งตรงถึงกล่องจดหมายของคุณทุกสัปดาห์