Google a lansat o platformă mobilă deschisă. 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):
- A fost adăugat un nou mod multi-fereastră, „Bule”. Acesta vă permite să lansați orice aplicație în ferestre flotante, similar notificărilor suprapuse pentru trimiterea de mesaje („bule”), dar nu este legat de o API specializată. Deschiderea unei aplicații într-o fereastră flotantă se realizează prin apăsarea lungă a pictogramei aplicației. Pe ecranele mai mari, pictogramele ferestrelor flotante apar într-o zonă separată din bara de activități. Aceste ferestre pot fi grupate, mutate și fixate pe ecran.

- Dezvoltarea platformelor pentru dispozitive cu ecrane mari, cum ar fi tablete, laptopuri, sisteme desktop și smartphone-uri cu ecrane pliabile, a continuat. Opțiunile activate anterior pentru dezactivarea noilor comportamente pe dispozitivele cu ecrane mai late de 600 pixeli (dp) au fost eliminate. Acest comportament era legat de ignorarea anumitor API-uri pentru gestionarea redimensionării și orientării ecranului (screenOrientation, resizeableActivity, [min|max]AspectRatio), precum și de plasarea adaptivă a aplicațiilor în ferestre redimensionabile și mobile.


- A fost adăugat API-ul EyeDropper, permițând aplicațiilor să obțină informații despre culoare pentru orice pixel de pe ecran fără a necesita permisiuni de captură de ecran. Securitatea este asigurată prin faptul că utilizatorul poate selecta zona care urmează să fie capturată cu culoarea prin intermediul unei interfețe eyedropper gestionate de platformă, care nu se află sub controlul aplicației. Aceasta înseamnă că aplicațiile nu pot solicita informații despre un anumit pixel sau recrea conținutul ecranului pixel cu pixel.

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

- API-ul PhotoPickerUiCustomizationParams a fost adăugat pentru a personaliza interfața selectorului de fotografii, permițându-i să se potrivească mai bine cu stilul aplicației de apelare. De exemplu, puteți schimba raportul de aspect al miniaturilor fotografiilor de la 1:1 (pătrat) la 9:16 (portret).

- Permisiunea USE_LOCATION_BUTTON a fost adăugată, permițându-vă să încorporați un buton de sistem în interfața aplicației pentru a acorda acces la date precise despre locație. Butonul este redat de sistem și, atunci când utilizatorul dă clic pe el, acordă acces la datele despre locație numai pe durata sesiunii curente.

- A fost adăugată o setare care vă permite să ascundeți afișarea numelor aplicațiilor sub pictogramele acestora.


- Designul barei de instrumente pentru înregistrarea screencast-urilor a fost modificat.

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

- Adăugată funcția Handoff API, care permite transferul stării unei aplicații către o alta din apropiere Androiddispozitiv (de exemplu, o tabletă) și să continuați să lucrați acolo.

- Au fost implementate ferestre andocate interactive care, spre deosebire de ferestrele tradiționale Picture-in-Picture, rămân interactive atunci când sunt andocate peste alte aplicații în modul desktop.
- Au fost adăugate două noi API-uri: API-ul UWB DL-TDOA pentru determinarea poziției unui dispozitiv în interiorul unei clădiri folosind Wi-Fi pentru navigare în interior; și API-ul Proximity Detection pentru detectarea dispozitivelor din apropiere prin Wi-Fi.
- A fost adăugat suport pentru formatul video VVC (Versatile Video Coding), cunoscut și sub numele de standardul de compresie video H.266, dezvoltat în comun de grupurile de lucru MPEG (ISO/IEC JTC 1) și VCEG (ITU-T), cu participarea unor companii precum Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm și Sony. H.266 înlocuiește H.265 (HEVC) și oferă transmisie și stocare de înaltă eficiență pentru toate rezoluțiile ecranului (de la SD și HD la 4K și 8K), acceptă videoclipuri High Dynamic Range (HDR) și videoclipuri panoramice la 360 de grade.
- A fost adăugată posibilitatea de a înregistra videoclipuri cu un nivel de calitate constant. Acest mod este configurat în obiectul MediaRecorder folosind metoda setVideoEncodingQuality(), permițându-vă să blocați nivelul de calitate indiferent de rata de biți.
- Добавлена поддержка формата изображений RAW14, применяемого в профессиональных цифровых камерах и обеспечивающего хранение 15 бит на цветовой канал.
- Добавлено поддержка формата HDR-видео Eclipsa Video.
- A fost adăugat un codificator software pentru formatul audio HE-AAC (High-Efficiency Advanced Audio Coding), care acceptă atât rate de biți mici, cât și mari.
- O nouă permisiune, ACCESS_LOCAL_NETWORK, a fost adăugată pentru a restricționa accesul aplicațiilor la rețeaua locală. Această permisiune permite aplicațiilor să identifice și să se conecteze la dispozitivele din rețeaua locală, cum ar fi dispozitivele inteligente pentru casă și sistemele multimedia. Această permisiune a fost adăugată pentru a împiedica aplicațiile rău intenționate să scaneze resursele rețelei locale, de exemplu, pentru a identifica în mod ascuns mediul utilizatorului.
- Protecția împotriva interceptării parolelor de unică folosință (OTP) și a codurilor de confirmare trimise prin SMS a fost extinsă. Majoritatea aplicațiilor au acum acces direct la aceste mesaje doar la trei ore după ce sunt primite. Cititorul de SMS implicit afișează aceste mesaje imediat.
- Реализована защита от звонков мошенников, представляющихся сотрудниками банка. Платформа может взаимодействовать с установленными банковскими приложениями для подтверждения того, что звонок инициирован банком. Также банки могут определять номера телефонов на которых допускаются только входящие звонки.
- Добавлена возможность предоставления приложениям временного доступа к данным о точном местоположении, действующего только в течение текущего сеанса работы с программой.
- Механизм защиты динамической загрузки кода (DCL, Dynamic Code Loading) расширен для применения с нативными библиотеками, загружаемыми через метод System.load(), а не только
файлами в форматах DEX и JAR. DCL позволяет избежать подстановки вредоносного кода в динамически загружаемые исполняемые файлы, благодаря выставлению для подобных файлов прав доступа, допускающих только чтение. - Mecanismul de Transparență a Certificatelor este activat în mod implicit, menținând un jurnal public al tuturor certificatelor emise și revocate,
- A fost introdusă capacitatea de a certifica pachetele APK cu o semnătură digitală bazată pe un algoritm hibrid care combină algoritmul clasic cu algoritmul ML-DSA, rezistent la forța brută pe un computer cuantic.
- Для приложений, работающих в фоновом режиме, ограничен доступ к API для воспроизведения звука, подключения к звуковым устройствам и изменения громкости. Подразумевается, что только активные приложения, с которыми в данный момент взаимодействует пользователь, могут начинать воспроизведение и менять громкость.
- S-a adăugat suport pentru criptarea hibridă bazată pe mecanismul HPKE (Hybrid Public Key Encryption, RFC 9180), care combină simplitatea transferului cheii în criptarea cheii publice cu performanța ridicată a criptării simetrice (datele sunt criptate cu o cheie simetrică rapidă, iar cheia în sine este criptată cu una asimetrică lentă).
- При вводе паролей и PIN-кодов при помощи физической клавиатуры по умолчанию отключено отображение последнего введённого символа по мере набора.
- Pentru a simplifica implementarea suportului pentru touchpad în jocuri, gestionarea evenimentelor mouse-ului și touchpad-ului a fost unificată. În mod implicit, evenimentele touchpad-ului legate de mișcările cursorului și gesturile de derulare sunt acum convertite în coordonate relative, la fel ca în cazul unui mouse. Accesul la coordonatele absolute este asigurat prin specificarea explicită a modului POINTER_CAPTURE_MODE_ABSOLUTE.
- Metoda getInitialRestingBounds() a fost adăugată la obiectul ChooserSession, permițându-vă să aflați poziția și dimensiunea finală a dialogului Chooser după ce animația se oprește și datele sunt încărcate.
- Au fost adăugate metodele getStreamingAppMaxDownlinkKbps și getStreamingAppMaxUplinkKbps pentru a determina lățimea de bandă maximă a canalului de comunicație în scopul selectării nivelului de calitate pentru streaming.
- O API a fost furnizată producătorilor de hardware pentru a crea extensii de cameră care permit funcții specifice aplicațiilor, cum ar fi motorul de îmbunătățire a detaliilor Super Resolution, modurile de reducere a zgomotului și optimizatoarele de calitate prin inteligență artificială.
- Adăugat API pentru obținerea de informații despre tipul camerei (cameră încorporată, cameră web USB sau cameră virtuală).
- A fost adăugat suport pentru aparatele auditive conectate prin Bluetooth Low Energy (BLE). Aceste dispozitive sunt acum clasificate în noua categorie TYPE_BLE_HEARING_AID, permițând aplicațiilor să facă distincția între aparatele auditive și căști și să controleze separat redarea sunetului sistemului (de exemplu, puteți reda notificări, tonuri de apel și alarme pe difuzorul încorporat al telefonului, în loc să le redați pe aparatul auditiv).
- Au fost adăugate setări separate pentru afișarea parolelor introduse pe tastatura fizică și pe ecranul tactil. În mod implicit, caracterele parolei introduse folosind tastatura fizică sunt ascunse imediat.
- Afișaj îmbunătățit al widget-urilor aplicației pe ecranele externe, luând în considerare diferențele de DPI la scalare.
- A fost adăugată solicitarea ACTION_VPN_APP_EXCLUSION_SETTINGS, care poate fi utilizată pentru a deschide un ecran de sistem cu setări ce permit unei aplicații să aibă acces la rețea ocolind tunelul VPN.
- A fost adăugat suport pentru caracteristicile limbajului OpenJDK 25 și clasele Java.
- Capacitățile API-ului camerei au fost extinse. Metoda updateOutputConfigurations() a fost adăugată la obiectul CameraCaptureSession pentru atașarea sau detașarea regiunilor de ieșire din mers, fără a fi nevoie să reconfigurați întreaga sesiune de captură a camerei. Această modificare permite comutarea fără probleme între diferite moduri ale camerei (de exemplu, înregistrare video și fotografiere). Atunci când se lucrează cu camere logice care acoperă mai mulți senzori fizici, a fost adăugată posibilitatea de a recupera metadatele pentru fiecare senzor, nu doar pentru cel principal.
- Atributul android:usesCleartextTraffic, care permitea aplicațiilor să transmită trafic necriptat, cum ar fi solicitările „http://”, a fost depreciat. Dacă este necesar trafic necriptat, ar trebui utilizate fișiere de configurare a securității separate.
- Au fost adăugate setări pentru gestionarea istoricului apelurilor VoIP, permițându-vă să controlați dacă informațiile sunt salvate în jurnale și dacă informațiile despre apelurile finalizate sunt afișate în interfață.
- API-ul Wi-Fi RTT (Round-Trip-Time) a fost extins pentru a oferi o estimare continuă a proximității față de punctele de acces și o detectare securizată a nodurilor peer-to-peer.
- Au fost adăugate profiluri noi la CompanionDeviceManager pentru solicitarea permisiunilor și activarea interacțiunilor aplicațiilor cu dispozitive medicale și dispozitive de urmărire a activității fizice.
- В 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%.
- Se propune o nouă implementare a cozii de mesaje android.os.MessageQueue, care funcționează fără blocări. Această nouă implementare îmbunătățește performanța și reduce pierderile de cadre.
- Приложениям, заявляющим о поддержке Android 17 и более новых выпусков, запрещено изменять значения полей, помеченных как «static final», что позволяет задействовать более агрессивные оптимизации производительности в runtime.
- Pentru a reduce consumul de memorie, dimensiunea machetelor de vizualizare a notificărilor personalizate a fost limitată.
- Declanșatoarele suplimentare TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM și TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE au fost adăugate la profilerul ProfilingManager pentru a colecta date utile pentru depanarea problemelor de performanță.
Sursa: opennet.ru












