Google je objavio otvorenu mobilnu platformu. 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):
- Dodan je novi način rada s više prozora, "Bubbles". Omogućuje vam pokretanje bilo koje aplikacije u plutajućim prozorima, slično prekrivajućim obavijestima za slanje poruka ("bubbles"), ali nije vezano za specijalizirani API. Otvaranje aplikacije u plutajućem prozoru postiže se dugim pritiskom na ikonu aplikacije. Na većim zaslonima, ikone plutajućih prozora pojavljuju se u zasebnom području na programskoj traci. Ove prozore moguće je grupirati, premještati i prikvačiti na zaslon.

- Razvoj platforme za uređaje s velikim zaslonima, kao što su tableti, prijenosna računala, stolna računala i pametni telefoni sa sklopivim zaslonima, nastavljen je. Prethodno omogućene opcije za onemogućavanje novog ponašanja na uređajima sa zaslonima širim od 600 piksela (dp) su uklonjene. Ovo ponašanje bilo je povezano s ignoriranjem određenih API-ja za upravljanje promjenom veličine i orijentacije zaslona (screenOrientation, resizeableActivity, [min|max]AspectRatio), kao i adaptivnim postavljanjem aplikacija u prozore promjenjive veličine i pokretne prozore.


- Dodan je API sustava EyeDropper koji aplikacijama omogućuje dobivanje informacija o boji za bilo koji piksel na zaslonu bez potrebe za dopuštenjima za snimanje zaslona. Sigurnost je osigurana tako što se korisniku omogućuje odabir područja za snimanje boja putem sučelja kapaljke kojim upravlja platforma, a koje nije pod kontrolom aplikacije. To znači da aplikacije ne mogu tražiti informacije o određenom pikselu ili ponovno stvarati sadržaj zaslona piksel po piksel.

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

- Dodan je PhotoPickerUiCustomizationParams API za prilagodbu sučelja za odabir fotografija, omogućujući mu da bolje odgovara stilu aplikacije koja poziva. Na primjer, možete promijeniti omjer slike minijatura fotografija s 1:1 (kvadrat) na 9:16 (portret).

- Dodana je dozvola USE_LOCATION_BUTTON koja vam omogućuje ugradnju sistemskog gumba u sučelje vaše aplikacije kako biste odobrili pristup podacima o preciznoj lokaciji. Gumb generira sustav i, kada ga korisnik klikne, odobrava pristup podacima o lokaciji samo za vrijeme trajanja trenutne sesije.

- Dodana je postavka koja omogućuje skrivanje prikaza naziva aplikacija ispod njihovih ikona.


- Dizajn alatne trake za snimanje screencasta je promijenjen.

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

- Dodan Handoff API koji omogućuje prijenos stanja aplikacije na drugu aplikaciju u blizini Android-uređaj (na primjer, tablet) i nastaviti raditi tamo.

- Implementirani su interaktivni usidreni prozori koji, za razliku od tradicionalnih prozora "slika u slici", ostaju interaktivni kada su usidreni preko drugih aplikacija u načinu rada radne površine.
- Dodana su dva nova API-ja: UWB DL-TDOA API za određivanje položaja uređaja unutar zgrade pomoću Wi-Fi-ja za navigaciju u zatvorenom prostoru; i Proximity Detection API za otkrivanje uređaja u blizini putem Wi-Fi-ja.
- Dodana je podrška za VVC (Versatile Video Coding) video format, također poznat kao H.266 standard video kompresije, koji su zajednički razvile radne skupine MPEG (ISO/IEC JTC 1) i VCEG (ITU-T), uz sudjelovanje tvrtki kao što su Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm i Sony. H.266 zamjenjuje H.265 (HEVC) i pruža visokoučinkovit prijenos i pohranu za sve rezolucije zaslona (od SD i HD do 4K i 8K), podržava video visokog dinamičkog raspona (HDR) i panoramski video od 360 stupnjeva.
- Dodana je mogućnost snimanja videa s konstantnom razinom kvalitete. Ovaj način rada konfigurira se u objektu MediaRecorder pomoću metode setVideoEncodingQuality(), što vam omogućuje zaključavanje razine kvalitete bez obzira na brzinu prijenosa.
- Добавлена поддержка формата изображений RAW14, применяемого в профессиональных цифровых камерах и обеспечивающего хранение 15 бит на цветовой канал.
- Добавлено поддержка формата HDR-видео Eclipsa Video.
- Dodan softverski koder za audio format HE-AAC (High-Efficiency Advanced Audio Coding), koji podržava i niske i visoke brzine prijenosa.
- Dodano je novo dopuštenje, ACCESS_LOCAL_NETWORK, za ograničavanje pristupa aplikacija lokalnoj mreži. Ovo dopuštenje omogućuje aplikacijama prepoznavanje i povezivanje s uređajima na lokalnoj mreži, kao što su pametni kućni uređaji i multimedijski sustavi. Ovo dopuštenje dodano je kako bi se spriječilo zlonamjernim aplikacijama da skeniraju resurse lokalne mreže, na primjer, kako bi prikriveno identificirale korisničko okruženje.
- Proširena je zaštita od presretanja jednokratnih lozinki (OTP-ova) i potvrdnih kodova poslanih putem SMS-a. Većina aplikacija sada ima izravan pristup tim porukama tek tri sata nakon što su primljene. Zadani čitač SMS-ova odmah prikazuje te poruke.
- Реализована защита от звонков мошенников, представляющихся сотрудниками банка. Платформа может взаимодействовать с установленными банковскими приложениями для подтверждения того, что звонок инициирован банком. Также банки могут определять номера телефонов на которых допускаются только входящие звонки.
- Добавлена возможность предоставления приложениям временного доступа к данным о точном местоположении, действующего только в течение текущего сеанса работы с программой.
- Механизм защиты динамической загрузки кода (DCL, Dynamic Code Loading) расширен для применения с нативными библиотеками, загружаемыми через метод System.load(), а не только
файлами в форматах DEX и JAR. DCL позволяет избежать подстановки вредоносного кода в динамически загружаемые исполняемые файлы, благодаря выставлению для подобных файлов прав доступа, допускающих только чтение. - Mehanizam transparentnosti certifikata omogućen je prema zadanim postavkama, održavajući javni zapisnik svih izdanih i opozvanih certifikata,
- Uvedena je mogućnost certificiranja APK paketa digitalnim potpisom temeljenim na hibridnom algoritmu koji kombinira klasični algoritam s ML-DSA algoritmom, otpornim na brutalnu silu na kvantnom računalu.
- Для приложений, работающих в фоновом режиме, ограничен доступ к API для воспроизведения звука, подключения к звуковым устройствам и изменения громкости. Подразумевается, что только активные приложения, с которыми в данный момент взаимодействует пользователь, могут начинать воспроизведение и менять громкость.
- Dodana je podrška za hibridno šifriranje temeljeno na mehanizmu HPKE (Hybrid Public Key Encryption, RFC 9180), koji kombinira jednostavnost prijenosa ključa kod šifriranja javnim ključem s visokim performansama simetričnog šifriranja (podaci su šifrirani brzim simetričnim ključem, a sam ključ je šifriran sporim asimetričnim ključem).
- При вводе паролей и PIN-кодов при помощи физической клавиатуры по умолчанию отключено отображение последнего введённого символа по мере набора.
- Kako bi se pojednostavila implementacija podrške za dodirnu plohu u igrama, objedinjeno je rukovanje događajima miša i dodirne ploče. Prema zadanim postavkama, događaji dodirne ploče povezani s pokretima pokazivača i gestama pomicanja sada se pretvaraju u relativne koordinate, baš kao i za miš. Pristup apsolutnim koordinatama omogućuje se eksplicitnim navođenjem načina rada POINTER_CAPTURE_MODE_ABSOLUTE.
- Metoda getInitialRestingBounds() dodana je objektu ChooserSession, što vam omogućuje da saznate konačnu poziciju i veličinu dijaloga Chooser nakon što se animacija zaustavi i podaci učitaju.
- Dodane su metode getStreamingAppMaxDownlinkKbps i getStreamingAppMaxUplinkKbps za određivanje maksimalne propusnosti komunikacijskog kanala u svrhu odabira razine kvalitete za streaming.
- Proizvođačima hardvera pružen je API za izradu proširenja za kamere koja omogućuju značajke specifične za aplikacije, kao što su mehanizam za poboljšanje detalja Super Resolution, načini smanjenja šuma i optimizatori kvalitete umjetne inteligencije.
- Dodan API za dobivanje informacija o vrsti kamere (ugrađena kamera, USB web kamera ili virtualna kamera).
- Dodana je podrška za slušne aparate povezane putem Bluetooth Low Energy (BLE). Ti uređaji sada su klasificirani u novu kategoriju TYPE_BLE_HEARING_AID, što aplikacijama omogućuje razlikovanje slušnih aparata i slušalica te zasebno upravljanje reprodukcijom zvuka sustava (na primjer, obavijesti, melodije zvona i alarme možete reproducirati na ugrađenom zvučniku telefona umjesto na slušnom aparatu).
- Dodane su zasebne postavke za prikaz lozinki unesenih na fizičkoj tipkovnici i na zaslonu osjetljivom na dodir. Prema zadanim postavkama, znakovi lozinke uneseni pomoću fizičke tipkovnice odmah se skrivaju.
- Poboljšan prikaz widgeta aplikacija na vanjskim zaslonima uzimajući u obzir razlike u DPI-ju prilikom skaliranja.
- Dodan je zahtjev ACTION_VPN_APP_EXCLUSION_SETTINGS, koji se može koristiti za otvaranje sistemskog zaslona s postavkama koje aplikaciji omogućuju pristup mreži zaobilazeći VPN tunel.
- Dodana je podrška za jezične značajke OpenJDK 25 i Java klase.
- Mogućnosti API-ja kamere su proširene. Objektu CameraCaptureSession dodana je metoda updateOutputConfigurations() za trenutno spajanje ili odspajanje izlaznih područja bez potrebe za ponovnom konfiguracijom cijele sesije snimanja kamerom. Ova promjena omogućuje besprijekorno prebacivanje između različitih načina rada kamere (na primjer, snimanje videa i snimanje fotografija). Pri radu s logičkim kamerama koje obuhvaćaju više fizičkih senzora, dodana je mogućnost dohvaćanja metapodataka za svaki senzor, a ne samo za primarni.
- Atribut android:usesCleartextTraffic, koji je aplikacijama omogućavao prijenos nešifriranog prometa, poput zahtjeva "http://", više nije odobren. Ako je potreban nešifrirani promet, treba koristiti zasebne datoteke za konfiguraciju sigurnosti.
- Dodane su postavke za upravljanje povijesti VoIP poziva, što vam omogućuje kontrolu spremaju li se informacije u zapisnike i prikazuju li se informacije o završenim pozivima u sučelju.
- Wi-Fi RTT (Round-Trip-Time) API je proširen kako bi omogućio kontinuiranu procjenu blizine pristupnih točaka i sigurno otkrivanje peer-to-peer čvorova.
- U CompanionDeviceManager dodani su novi profili za traženje dopuštenja i omogućavanje interakcije aplikacije s medicinskim uređajima i fitness trackerima.
- В 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%.
- Predlaže se nova implementacija reda čekanja poruka android.os.MessageQueue, koja radi bez zaključavanja. Ova nova implementacija poboljšava performanse i smanjuje gubitak okvira.
- Приложениям, заявляющим о поддержке Android 17 и более новых выпусков, запрещено изменять значения полей, помеченных как «static final», что позволяет задействовать более агрессивные оптимизации производительности в runtime.
- Kako bi se smanjila potrošnja memorije, veličina prilagođenih izgleda obavijesti je ograničena.
- Dodatni okidači TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM i TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE dodani su profileru ProfilingManager za prikupljanje podataka korisnih za otklanjanje pogrešaka u performansama.
Izvor: opennet.ru












