Google ได้เปิดตัวแพลตฟอร์มมือถือแบบเปิดแล้ว Android 17. Связанные с новым выпуском исходные тексты размещены в Git-репозитории проекта (ветка android-17.0.0_r1). Сборки прошивки подготовлены для устройств Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel 9/9a/9 Pro/9 Pro XL/9 Pro Fold, Pixel 10/10 Pro/10 Pro XL/10 Pro Fold, Pixel Fold и Pixel Tablet. Предварительные сборки прошивок доступны для устройств HONOR, iQOO, Lenovo, OnePlus, OPPO, realme, Sharp, vivo и Xiaomi. В процессе формирования универсальные сборки GSI (Generic System Images), подходящие для разных устройств на базе архитектур ARM64 и x86_64.
Среди изменений (1, 2, 3):
- เพิ่มโหมดหลายหน้าต่างใหม่ "Bubbles" ซึ่งช่วยให้คุณเปิดแอปพลิเคชันใดก็ได้ในหน้าต่างลอย คล้ายกับการแจ้งเตือนแบบซ้อนทับสำหรับการส่งข้อความ ("bubbles") แต่ไม่จำเป็นต้องใช้ API เฉพาะ การเปิดแอปพลิเคชันในหน้าต่างลอยทำได้โดยการกดไอคอนแอปพลิเคชันค้างไว้ บนหน้าจอขนาดใหญ่ ไอคอนหน้าต่างลอยจะปรากฏในพื้นที่แยกต่างหากบนแถบงาน หน้าต่างเหล่านี้สามารถจัดกลุ่ม ย้าย และตรึงไว้กับหน้าจอได้

- การพัฒนาแพลตฟอร์มสำหรับอุปกรณ์ที่มีหน้าจอขนาดใหญ่ เช่น แท็บเล็ต แล็ปท็อป คอมพิวเตอร์ตั้งโต๊ะ และสมาร์ทโฟนที่มีหน้าจอพับได้ ยังคงดำเนินต่อไป ตัวเลือกที่เคยเปิดใช้งานสำหรับการปิดใช้งานพฤติกรรมใหม่บนอุปกรณ์ที่มีหน้าจอกว้างกว่า 600 พิกเซล (dp) ได้ถูกลบออกแล้ว พฤติกรรมนี้เกี่ยวข้องกับการละเว้น API บางตัวสำหรับการจัดการการปรับขนาดและการวางแนวหน้าจอ (screenOrientation, resizeableActivity, AspectRatio) รวมถึงการจัดวางแอปพลิเคชันแบบปรับได้ในหน้าต่างที่ปรับขนาดและเคลื่อนย้ายได้


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

- Добавлен системный интерфейс выбора контакта из адресной книги, доступ к которому предоставляется при получении полномочия ACTION_PICK_CONTACTS. Интерфейс позволяет обойтись без предоставления полномочия READ_CONTACTS, позволяющего прочитать все контактные данные. При вызове нового интерфейса пользователь принимает решение о том, какую именно информацию из адресной книги передать приложению с возможностью выбора только отдельных полей.

- มีการเพิ่ม API PhotoPickerUiCustomizationParams เพื่อปรับแต่งอินเทอร์เฟซตัวเลือกรูปภาพ ทำให้เข้ากับสไตล์ของแอปพลิเคชันที่เรียกใช้งานได้ดียิ่งขึ้น ตัวอย่างเช่น คุณสามารถเปลี่ยนอัตราส่วนของภาพขนาดย่อจาก 1:1 (สี่เหลี่ยมจัตุรัส) เป็น 9:16 (แนวตั้ง) ได้

- ได้เพิ่มสิทธิ์ USE_LOCATION_BUTTON แล้ว ซึ่งช่วยให้คุณสามารถฝังปุ่มระบบลงในอินเทอร์เฟซของแอปเพื่ออนุญาตการเข้าถึงข้อมูลตำแหน่งที่แม่นยำได้ ปุ่มนี้จะถูกสร้างขึ้นโดยระบบ และเมื่อผู้ใช้คลิก จะอนุญาตการเข้าถึงข้อมูลตำแหน่งเฉพาะในช่วงเวลาของการใช้งานปัจจุบันเท่านั้น

- มีการเพิ่มการตั้งค่าที่ช่วยให้คุณซ่อนการแสดงชื่อแอปพลิเคชันใต้ไอคอนได้แล้ว


- ดีไซน์ของแถบเครื่องมือสำหรับการบันทึกหน้าจอได้ถูกเปลี่ยนแปลงแล้ว

- Добавлена поддержка экранных реакций (Screen Reactions), совмещающих запись видео с передней камеры с созданием скринкаста для наложения своих комментариев к действиям на экране.
- Добавлен режим для игр на устройствах со складными экранами, при котором одна половина раскладного экрана используется для отображения игрового процесса, а другая для виртуального геймпада.

- เพิ่ม API Handoff ซึ่งช่วยให้คุณสามารถถ่ายโอนสถานะของแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชันหนึ่งที่อยู่ใกล้เคียงได้ Android-ใช้อุปกรณ์ (เช่น แท็บเล็ต) และทำงานต่อบนอุปกรณ์นั้น

- มีการนำหน้าต่างแบบโต้ตอบที่ยึดติดกับโครงสร้างมาใช้ ซึ่งแตกต่างจากหน้าต่าง Picture-in-Picture แบบดั้งเดิม ตรงที่ยังคงสามารถโต้ตอบได้แม้จะยึดติดกับแอปพลิเคชันอื่นในโหมดเดสก์ท็อป
- มีการเพิ่ม API ใหม่สองรายการ ได้แก่ API UWB DL-TDOA สำหรับกำหนดตำแหน่งของอุปกรณ์ภายในอาคารโดยใช้ Wi-Fi สำหรับการนำทางภายในอาคาร และ API การตรวจจับระยะใกล้สำหรับตรวจจับอุปกรณ์ใกล้เคียงผ่าน Wi-Fi
- ได้เพิ่มการรองรับรูปแบบวิดีโอ VVC (Versatile Video Coding) หรือที่รู้จักกันในชื่อมาตรฐานการบีบอัดวิดีโอ H.266 ซึ่งพัฒนาขึ้นโดยกลุ่มทำงาน MPEG (ISO/IEC JTC 1) และ VCEG (ITU-T) ร่วมกัน โดยมีบริษัทต่างๆ เช่น Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm และ Sony เข้าร่วม H.266 มาแทนที่ H.265 (HEVC) และให้ประสิทธิภาพการส่งและจัดเก็บสูงสำหรับความละเอียดหน้าจอทุกระดับ (ตั้งแต่ SD และ HD ไปจนถึง 4K และ 8K) รองรับวิดีโอ High Dynamic Range (HDR) และวิดีโอพาโนรามา 360 องศา
- เพิ่มความสามารถในการบันทึกวิดีโอด้วยคุณภาพระดับคงที่ โหมดนี้กำหนดค่าได้ในอ็อบเจ็กต์ MediaRecorder โดยใช้เมธอด setVideoEncodingQuality() ซึ่งช่วยให้คุณล็อกระดับคุณภาพได้โดยไม่คำนึงถึงบิตเรต
- Добавлена поддержка формата изображений RAW14, применяемого в профессиональных цифровых камерах и обеспечивающего хранение 15 бит на цветовой канал.
- Добавлено поддержка формата HDR-видео Eclipsa Video.
- เพิ่มตัวเข้ารหัสซอฟต์แวร์สำหรับรูปแบบเสียง HE-AAC (High-Efficiency Advanced Audio Coding) ซึ่งรองรับทั้งบิตเรตต่ำและสูง
- มีการเพิ่มสิทธิ์ใหม่ ACCESS_LOCAL_NETWORK เพื่อจำกัดการเข้าถึงเครือข่ายภายในของแอป สิทธิ์นี้อนุญาตให้แอปสามารถระบุและเชื่อมต่อกับอุปกรณ์ในเครือข่ายภายใน เช่น อุปกรณ์สมาร์ทโฮมและระบบมัลติมีเดีย สิทธิ์นี้ถูกเพิ่มเข้ามาเพื่อป้องกันแอปที่เป็นอันตรายจากการสแกนทรัพยากรเครือข่ายภายใน เช่น เพื่อระบุสภาพแวดล้อมของผู้ใช้โดยไม่ได้รับอนุญาต
- ระบบป้องกันการดักฟังรหัสผ่านแบบใช้ครั้งเดียว (OTP) และรหัสยืนยันที่ส่งผ่านทาง SMS ได้รับการปรับปรุงให้ดียิ่งขึ้นแล้ว แอปส่วนใหญ่จะสามารถเข้าถึงข้อความเหล่านี้ได้โดยตรงหลังจากได้รับข้อความไปแล้วสามชั่วโมงเท่านั้น ส่วนโปรแกรมอ่าน SMS ทั่วไปจะแสดงข้อความเหล่านี้ทันที
- Реализована защита от звонков мошенников, представляющихся сотрудниками банка. Платформа может взаимодействовать с установленными банковскими приложениями для подтверждения того, что звонок инициирован банком. Также банки могут определять номера телефонов на которых допускаются только входящие звонки.
- Добавлена возможность предоставления приложениям временного доступа к данным о точном местоположении, действующего только в течение текущего сеанса работы с программой.
- Механизм защиты динамической загрузки кода (DCL, Dynamic Code Loading) расширен для применения с нативными библиотеками, загружаемыми через метод System.load(), а не только
файлами в форматах DEX и JAR. DCL позволяет избежать подстановки вредоносного кода в динамически загружаемые исполняемые файлы, благодаря выставлению для подобных файлов прав доступа, допускающих только чтение. - กลไกความโปร่งใสของใบรับรองถูกเปิดใช้งานโดยค่าเริ่มต้น ซึ่งจะเก็บรักษาบันทึกสาธารณะของใบรับรองที่ออกและเพิกถอนทั้งหมด
- ได้มีการนำเสนอความสามารถในการรับรองแพ็กเกจ APK ด้วยลายเซ็นดิจิทัลโดยใช้อัลกอริธึมแบบไฮบริด ซึ่งผสมผสานอัลกอริธึมแบบคลาสสิกเข้ากับอัลกอริธึม ML-DSA ที่ทนทานต่อการโจมตีแบบเดาสุ่มบนคอมพิวเตอร์ควอนตัม
- Для приложений, работающих в фоновом режиме, ограничен доступ к API для воспроизведения звука, подключения к звуковым устройствам и изменения громкости. Подразумевается, что только активные приложения, с которыми в данный момент взаимодействует пользователь, могут начинать воспроизведение и менять громкость.
- เพิ่มการรองรับการเข้ารหัสแบบไฮบริดโดยใช้กลไก HPKE (Hybrid Public Key Encryption, RFC 9180) ซึ่งผสมผสานความสะดวกในการถ่ายโอนคีย์ในการเข้ารหัสแบบคีย์สาธารณะเข้ากับประสิทธิภาพสูงของการเข้ารหัสแบบสมมาตร (ข้อมูลจะถูกเข้ารหัสด้วยคีย์สมมาตรที่รวดเร็ว และตัวคีย์เองจะถูกเข้ารหัสด้วยคีย์อสมมาตรที่ช้า)
- При вводе паролей и PIN-кодов при помощи физической клавиатуры по умолчанию отключено отображение последнего введённого символа по мере набора.
- เพื่อลดความซับซ้อนในการใช้งานทัชแพดในเกม การจัดการเหตุการณ์ของเมาส์และทัชแพดจึงถูกรวมเข้าด้วยกัน โดยค่าเริ่มต้น เหตุการณ์ทัชแพดที่เกี่ยวข้องกับการเคลื่อนที่ของตัวชี้และการเลื่อนจะถูกแปลงเป็นพิกัดสัมพัทธ์ เช่นเดียวกับเมาส์ การเข้าถึงพิกัดสัมบูรณ์ทำได้โดยการระบุโหมด POINTER_CAPTURE_MODE_ABSOLUTE อย่างชัดเจน
- เมธอด getInitialRestingBounds() ได้ถูกเพิ่มเข้าไปในอ็อบเจ็กต์ ChooserSession แล้ว ทำให้คุณสามารถตรวจสอบตำแหน่งและขนาดสุดท้ายของไดอะล็อก Chooser ได้หลังจากที่แอนิเมชันหยุดทำงานและโหลดข้อมูลเสร็จแล้ว
- เพิ่มเมธอด getStreamingAppMaxDownlinkKbps และ getStreamingAppMaxUplinkKbps เพื่อตรวจสอบแบนด์วิดท์สูงสุดของช่องทางการสื่อสารสำหรับการเลือกคุณภาพการสตรีมมิ่ง
- มีการจัดเตรียม API ให้กับผู้ผลิตฮาร์ดแวร์เพื่อสร้างส่วนขยายกล้องที่ช่วยให้สามารถใช้งานคุณสมบัติเฉพาะด้านได้ เช่น กลไกการเพิ่มรายละเอียดความละเอียดสูงพิเศษ โหมดลดสัญญาณรบกวน และตัวปรับคุณภาพด้วย AI
- เพิ่ม API สำหรับรับข้อมูลเกี่ยวกับประเภทของกล้อง (กล้องในตัว, เว็บแคม USB หรือกล้องเสมือน)
- ได้เพิ่มการรองรับเครื่องช่วยฟังที่เชื่อมต่อผ่าน Bluetooth Low Energy (BLE) แล้ว อุปกรณ์เหล่านี้ถูกจัดอยู่ในหมวดหมู่ใหม่ TYPE_BLE_HEARING_AID ทำให้แอปสามารถแยกแยะระหว่างเครื่องช่วยฟังและหูฟัง และควบคุมการเล่นเสียงของระบบแยกต่างหากได้ (ตัวอย่างเช่น คุณสามารถเล่นการแจ้งเตือน เสียงเรียกเข้า และเสียงปลุกผ่านลำโพงในตัวของโทรศัพท์แทนที่จะเป็นเครื่องช่วยฟัง)
- มีการเพิ่มการตั้งค่าแยกต่างหากสำหรับการแสดงรหัสผ่านที่ป้อนผ่านแป้นพิมพ์จริงและบนหน้าจอสัมผัส โดยค่าเริ่มต้น ตัวอักษรของรหัสผ่านที่ป้อนโดยใช้แป้นพิมพ์จริงจะถูกซ่อนไว้ทันที
- ปรับปรุงการแสดงผลวิดเจ็ตแอปบนหน้าจอภายนอกโดยคำนึงถึงความแตกต่างของ DPI เมื่อทำการปรับขนาด
- เพิ่มคำขอ ACTION_VPN_APP_EXCLUSION_SETTINGS ซึ่งสามารถใช้เพื่อเปิดหน้าจอระบบที่มีการตั้งค่าที่อนุญาตให้แอปพลิเคชันเข้าถึงเครือข่ายโดยไม่ต้องผ่านอุโมงค์ VPN
- เพิ่มการรองรับคุณสมบัติภาษา OpenJDK 25 และคลาส Java
- ความสามารถของ API กล้องได้รับการขยายเพิ่มเติมแล้ว มีการเพิ่มเมธอด updateOutputConfigurations() ลงในอ็อบเจ็กต์ CameraCaptureSession เพื่อเชื่อมต่อหรือถอดพื้นที่เอาต์พุตได้ทันทีโดยไม่ต้องกำหนดค่าเซสชันการจับภาพกล้องใหม่ทั้งหมด การเปลี่ยนแปลงนี้ช่วยให้สามารถสลับระหว่างโหมดกล้องต่างๆ ได้อย่างราบรื่น (เช่น การบันทึกวิดีโอและการถ่ายภาพ) เมื่อทำงานกับกล้องเชิงตรรกะที่ครอบคลุมเซ็นเซอร์ทางกายภาพหลายตัว ความสามารถในการดึงข้อมูลเมตาสำหรับแต่ละเซ็นเซอร์ ไม่ใช่แค่เซ็นเซอร์หลักเท่านั้น ได้ถูกเพิ่มเข้ามาแล้ว
- แอตทริบิวต์ android:usesCleartextTraffic ซึ่งอนุญาตให้แอปพลิเคชันส่งข้อมูลที่ไม่เข้ารหัส เช่น คำขอ "http://" นั้นถูกยกเลิกแล้ว หากต้องการส่งข้อมูลที่ไม่เข้ารหัส ควรใช้ไฟล์การกำหนดค่าความปลอดภัยแยกต่างหาก
- เพิ่มการตั้งค่าสำหรับการจัดการประวัติการโทร VoIP ซึ่งช่วยให้คุณควบคุมได้ว่าจะบันทึกข้อมูลลงในบันทึกหรือไม่ และจะแสดงข้อมูลเกี่ยวกับการโทรที่เสร็จสมบูรณ์ในอินเทอร์เฟซหรือไม่
- API Wi-Fi RTT (Round-Trip-Time) ได้รับการขยายเพิ่มเติมเพื่อให้สามารถประมาณค่าความใกล้เคียงของจุดเชื่อมต่อได้อย่างต่อเนื่อง และตรวจจับโหนดแบบ peer-to-peer ที่ปลอดภัย
- มีการเพิ่มโปรไฟล์ใหม่ใน CompanionDeviceManager เพื่อใช้ในการขอสิทธิ์และเปิดใช้งานการโต้ตอบของแอปกับอุปกรณ์ทางการแพทย์และอุปกรณ์ติดตามการออกกำลังกาย
- В Android Runtime (ART) реализован поколенческий сборщик мусора (Generational Concurrent Mark-Compact Garbage Collector), использующий раздельную обработку «старых» и «молодых» объектов, что повышает эффективность очистки недавно созданных объектов с небольшим временем жизни. Применение поколенческого сборщика мусора уменьшает риск приостановок во время выделения ресурсов и снижает нагрузку на CPU, что повышает эффективность потребления энергии.
- Реализовано ограничение на максимальный объём оперативной памяти, которое может занимать приложение. При превышении лимита, вычисляемого на основе имеющегося в устройстве ОЗУ, приложение принудительно завершается. Для сокращения размера потребляемой памяти предложен R8 Optimizer, упаковывающий имена классов, методов и полей, а также удаляющий неиспользуемый код и ресурсы.
- При сборке ядра Linux включена оптимизация AutoFDO (Auto-Feedback-Directed Optimization), использующая результаты профилирования c информацией о частоте выполнения различных участков кода для повышения производительности часто выполняемых операций. В проведённых тестах включение AutoFDO для ядра привело к сокращению времени загрузки на 2.1%, ускорению первого запуска программ на 4.3%, повышению эффективности системных вызовов на 9.3%, сокращению времени выполнения mmap-транзакций Binder на 12.3%, HwBinder на 20% и Binder RPC на 21.7%.
- มีการนำเสนอการใช้งานคิวข้อความ android.os.MessageQueue รูปแบบใหม่ ซึ่งทำงานโดยไม่ต้องใช้กลไกการล็อก การใช้งานรูปแบบใหม่นี้ช่วยเพิ่มประสิทธิภาพและลดการสูญเสียเฟรม
- Приложениям, заявляющим о поддержке Android 17 и более новых выпусков, запрещено изменять значения полей, помеченных как «static final», что позволяет задействовать более агрессивные оптимизации производительности в runtime.
- เพื่อลดการใช้หน่วยความจำ ขนาดของเลย์เอาต์การแสดงผลการแจ้งเตือนแบบกำหนดเองจึงถูกจำกัดไว้
- มีการเพิ่มทริกเกอร์เพิ่มเติม ได้แก่ TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM และ TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE ลงในโปรไฟล์เลอร์ ProfilingManager เพื่อรวบรวมข้อมูลที่เป็นประโยชน์สำหรับการแก้ไขปัญหาด้านประสิทธิภาพ
ที่มา: opennet.ru












