Android Q AMA Sažetak: Što je Google rekao o Androidu 10 na Redditu

Googleovi inženjeri su neki dan napravili AMA na Redditu. AMA se odnosio na Android Q beta. Evo sažetka onoga što smo naučili iz njihovih odgovora.

Prošle godine, Googleov tim za Android ugostio je Ask Me Anything (AMA) na Redditovom /r/AndroidDev subredditu za postavljanje pitanja o Pregled razvojnog programera za Android P. Ove je godine inženjerski tim koji radi na Androidu Q beta odgovarao na pitanja na Redditu. AMA započeo je 1. kolovoza u 12:00 PST i završio oko sat i pol kasnije. 33 Googleova inženjera bila su uključena u AMA, odgovorivši na gomilu pitanja u kratkom vremenu trajanja AMA. Evo našeg sažetka svih novih informacija koje smo naučili.

Android Q AMA: Sve što smo naučili od Googlea

Sudionici iz Android Q beta tima

  • Adam Cohen: TLM na Android pokretaču/sučelju sustava
  • Adam Powell: TLM on UI toolkit/framework; pogledi, životni ciklus, fragmenti, podrška libs
  • Alan Viverette: TLM, Jetpack / AndroidX
  • Allen Huang: PM za korisničko sučelje, pokretač, obavijesti, integracije pretraživanja i više!
  • Andrew Sappirstein: TLM na Android postavkama
  • Brahim Elbouchikhi: PM direktor za Android strojno učenje i kameru (NN API, ML Kit, CameraX, Camera Platform)
  • Chad Brubaker: softverski inženjer, sigurnost Android platforme
  • Charmaine D’Silva: PM za privatnost
  • Chet Haase: Glavni zagovornik Androida, odnosi s programerima
  • Diana Wong: PM, kompatibilnost aplikacije, upotreba API-ja koji nije SDK, ART, NDK
  • Dianne Hackborn: Voditelj tima za Android framework (resursi, upravitelj prozora, upravitelj aktivnosti, više korisnika, ispis, pristupačnost itd.)
  • E.K. Chung: Direktor UX-a
  • Ian Lake: Softverski inženjer, Jetpack (fragmenti, navigacija, komponente arhitekture)
  • Iliyan Malchev: Glavni softverski inženjer, Project Mainline
  • Jacob Lehrbaum: Direktor odnosa s programerima za Android
  • Jake Wharton: softverski inženjer, Jetpack
  • Jamal Eason: PM, Android Studio
  • Jeff Bailey: TLM, Android Open Source Project (AOSP)
  • Jeff Sharkey: softverski inženjer, Android Framework
  • Jeffrey van Gogh: Android Studio, kompajleri
  • Jen Chai: PM, Lokacija i kontekst, Auth, Auto Fill, ne-SDK API upotreba, ART
  • Karen Ng: Grupni PM za Android Developer Tools, Android Studio, Android Tookit i Jetpack
  • Paul Bankhead: Direktor upravljanja proizvodima, Google Play
  • Rohan Šah: Voditelj proizvoda, korisničko sučelje sustava Android
  • Romain Guy: Voditelj Android Toolkit/Jetpack tima
  • Sagar Kamdar: Direktor upravljanja proizvodima, Android
  • Sub K: Direktor inženjeringa, Android Connectivity
  • Selim Cinek: softverski inženjer, korisničko sučelje sustava Android
  • Stephanie Saad Cuthbertson: Viši direktor upravljanja proizvodima, Android
  • Sumir Kataria: Softverski inženjer, Jetpack (WorkManager)
  • Travis McCoy: PM, Android platforma
  • Trystan Upstill: Istaknuti inženjer, voditelj za korisničko sučelje i inteligenciju sustava Android
  • Vinit Modi: PM, Android kamera

Čitaj više

OEM-ovi više ne mogu zaustaviti aplikacije kada ih korisnik ukloni u nedavnim

Ako ste ikada koristili pametni telefon kineske marke, onda ste vjerojatno imali posla s dosadnim značajkama "optimizacije baterije" koje ugasi sve svoje omiljene aplikacije u pozadini. Ne samo da je ovo ponašanje neugodno za korisnike koji očekuju da će određene aplikacije nastaviti raditi u pozadini iz bilo kojeg razloga, ali također je neugodno za programere koji moraju trpjeti loše recenzije od korisnika koji ne razumiju da to nije aplikacija greška. Dok Google jest još ne baveći se u potpunosti ovim pitanjem (oni su odmahnuli rukom na to pitanje navodeći da je takvo ponašanje vjerojatno već krši zahtjeve dokumenta o definiciji kompatibilnosti Androida), tvrtka je poduzimanje radnji protiv jedne promjene ponašanja "uštede baterije" koju koriste neki proizvođači originalne opreme.

"Kako bismo pomogli u ovoj situaciji, dodali smo CTS test u Android Q kako bismo osigurali da se aplikacija ne ugasi nakon prelaska iz Nedavnih."

Android R bi mogao donijeti više promjena na snimkama zaslona nego što smo očekivali

Google planira dodati pomicanje snimaka zaslona u Androidu R, ali u isto vrijeme, Android tim je "pomno promatrati kako [oni] mogu poboljšati cijelo iskustvo zaslona [X] za R." Dakle, možemo pogledajte druga poboljšanja ponašanja snimke zaslona (I prikaza zaslona) u sljedećoj velikoj verziji Androida.

Pojašnjavanje novog načina rada radne površine za Android Q

The prvo javno beta izdanje Androida Q donio je sučelje skrivenog načina rada radne površine za AOSP i Pixel Launcher. Iako Google ukratko se dotaknuo značajke tijekom Google I/O sesije, nikada nismo čuli izravno od Googlea kako se nova značajka uklapa u Android ekosustav. Google sada pojašnjava:

"U Q AOSP-u 'desktop mode' je razvojna opcija namijenjena programerima aplikacija. Omogućuje im da testiraju svoje aplikacije u okruženjima s više zaslona i slobodnim prozorima. Ranije nije postojao praktičan način testiranja ponašanja aplikacije na sekundarnom zaslonu i s prozorima koji mogu slobodno mijenjati veličinu na standardnom Androidu. Ova se značajka ne proizvodi samostalno i trenutačno nije namijenjena običnim korisnicima. Unatoč tome, to je osnova Android platforme za OEM proizvođače za inovacije i izradu sjajnih proizvoda."

Prema tome, možemo očekivati ​​da će OEM-ovi graditi na izvornom desktop modu Androida Q. Na primjer, OnePlus 7 Pro podržava prikaz preko HDMI-ja, pa je moguće da OxygenOS 10 temeljen na Androidu Q će u budućnosti imati vlastito sučelje za radnu površinu. Također se nadamo da će Google nadograđivati ​​značajku za nadolazeće Pixel 4.

Tamni način rada temeljen na vremenu

Android Q konačno donosi široko traženu značajku: tamni način rada za cijeli sustav. Trenutačno se tamni način rada može ručno omogućiti u Postavkama ili putem pločice Brze postavke ili se može automatski aktivirati kada je omogućena Štednja baterije. Prije Androida Q postojala je opcija za uključivanje mračnog načina rada na temelju doba dana, ali ta je opcija zastarjela. Prema Chrisu Banesu:

"Postoji nekoliko razloga zašto je ovo zastarjelo (nije uklonjeno) u AppCompat v1.1.0: zahtijeva da aplikacije zahtijevaju dozvole za lokaciju da budu točne, a čak i uz valjanu lokaciju izračuni vremena izlaska/zalaska sunca mogu biti lud."

Na pitanje o ovim greškama, g. Banes navodi da je "izračunavanje izlaska/zalaska sunca notorno teško, posebno za lokacije blizu sjeverni/južni pol." Korisnik prikazuje noćno svjetlo, dostupno od Androida 7.1 Nougat, koje se može automatski uključivati ​​na temelju zalaska/izlaska sunca rasporedi. G. Banes zatim navodi da budući da Night Light koristi CalendarAstronomer iz ICU4J, koristi "veliki dio koda o kojem ne bismo željeli da AppCompat ovisi." Međutim, tim radi država da je ova značajka "nešto što će [oni] istražiti."

Obavezna Camera2 API/Camera HAL3 podrška za Android Q uređaje za pokretanje

Google je predstavio Camera2 API kako bi bolje definirao kako aplikacije mogu komunicirati s pojedinačnim kamerama povezanim s vašim pametnim telefonom. Dok Google potiče dobavljači pametnih telefona da "sve svoje fizičke kamere izlože programerima", mnogi dobavljači to ne žele učiniti iako "sam API nije sprječavajući ih danas." To znači da mnoge aplikacije za kamere trećih strana ne mogu koristiti sekundarne ili tercijarne module kamere na modernim pametni telefoni. Međutim, napredak je postignut jer se Android Q poboljšao LOGIČKA_MULTI_KAMERA, API koji programerima daje bolji pristup svim kamerama na uređaju i koji proizvođačima originalne opreme daje kontrolu nad potrošnjom energije i upravljanjem višestrukim stanjima kamera.

Nadalje, Google kaže da su dodali zahtjeve za sve uređaje koji se pokreću s Androidom Q da nativno podržavaju Camera2 API/Camera HAL3. Prema Vinit Modiju:

"Počevši od Androida P, novi uređaji koji se isporučuju s 1 GB ili više RAM-a moraju nativno koristiti HALv3/camera2. Android Q nadalje, svi novi uređaji moraju nativno podržavati HALv3/camera2. Nažalost, nadogradnje s HALv1 na HALv3 prilično su složene bežično i mogu imati neočekivane posljedice stoga smo morali ograničiti opseg na nove uređaje."

Zanimljivo, Modijeva izjava o normalnim RAM Android P uređajima za pokretanje proturječi što nam je ranije rekao Google i što je objavljeno na stranici Image Test Suite online.

Dinamičko tematiziranje aplikacije uz Jetpack Compose

Sonyjev OMS tematski okvir dodan je AOSP-u unatrag dosta izdanja, ali to je samo namijenjen OEM proizvođačima nadograđivati ​​se. To već znamo Google je protiv korištenje slojeva resursa za vrijeme izvođenja od strane korisnika za teme aplikacija, ali za programere, tvrtka je nadajući se da je njegov Jetpack Compose UI Framework će iznijeti "zanimljive pristupe dinamičkom tematiziranju".

Vulkan-backend za Skia za renderiranje korisničkog sučelja

Prošle godine, uočili smo raspravu među Googleovim inženjerima koji govore o svojim planovima da Android okvir koristi Vulkan grafički API za renderiranje korisničkog sučelja. Iako je sada moguće omogućiti Vulkan hardverski ubrzanu pozadinu bez vašeg telefona rušenja, nismo čuli nikakve konkretne planove od Googlea o tome kada planiraju ovo lansirati promjene. Ova AMA ne daje odgovor na to pitanje, ali barem imamo potvrdu da je još uvijek u izradi. Prema Romainu Guyu:

"Tim je radio na Vulkan pozadini za Skia, 2D renderer koji koristi Android, ali trenutno nije omogućen prema zadanim postavkama. UI i Canvas i dalje prolaze kroz OpenGL ES."

Učiniti traku pokreta Androida Q dinamičnijom

Neki na XDA još uvijek to misle Androidove nove geste su pravi haos, ali ja osobno mislim da su dobro. No, ako se malo poigrate s novim gestama u Androidu Q, primijetit ćete da se traka gesti ne pomiče vašim prstom. Također ostaje na zaslonima gdje nije potreban, poput početnog zaslona ili pregleda nedavnih aplikacija. Allen Huang kaže da se "potpuno slažu da postoje mogućnosti" da se "navigacijska linija učini manje statičnom". On dalje kaže da je "ovo nešto na čemu radimo - ali i na balansiranju tako da ne bude ometajuće pojavljivanje/nestajanje."

Poboljšanja okvira za pristup pohrani

Mnoge promjene u Androidu Q znatno su poboljšale sigurnost i privatnost platforme. Jedna takva promjena, nazvana "Scoped Storage", ograničava pristup aplikacija datotekama na vanjskoj pohrani na način koji ima smisla; glazbene aplikacije ne bi trebale vidjeti vašu galeriju, na primjer. Aplikacije za upravljanje datotekama koje se izvode u sustavu Android Q moraju koristiti API pod nazivom Storage Access Framework kako bi nastavile normalno raditi, ali neki programeri vide ovaj API kao inferioran na ono što je ranije bilo dostupno. Jeff Sharkey iz Googlea kaže tim je riješio neke od ovih pritužbi programera:

"Napravili smo neka poboljšanja performansi SAF-a u najnovijim Android Q Beta izdanjima; možete li provjeriti svoje referentne vrijednosti u odnosu na najnoviju beta verziju? Također provjerite koristite li ContentProviderClient kada izvodite skupne operacije."

Project Treble poboljšao je usvajanje Android Pie u odnosu na Android Oreo

Već smo vidjeli kako je Project Treble, velika rearhitektura okvira Android na niskoj razini, poboljšala prihvaćanje novijih verzija OS-a Android. Google smatra da Treble stoji iza niza dobavljača pametnih telefona koji se pridružuju Android P beta prošle godine i Android Q beta ove godine. Iliyan Malchev, voditelj projekta Treble i Glavna linija inženjer, kaže da je usvajanje Android Pie bilo "3 puta" veće od usvajanja Androida Oreo krajem 2018.

U istom komentaru, Dick Dougherty zadirkuje da se radi na više korisnih metrika za grafikon distribucije verzija Androida. Grafikon je bio zadnji put ažurirano u svibnju, ali njegovi podaci korisniji su novinarima nego programerima aplikacija.

Snimanje zaslona i dalje je WIP

Rane beta verzije Androida Q dodale su oznaku značajke za osnovni snimač zaslona, ​​ali je sama platforma znatno poboljšala korisnost snimanja zaslona dopuštajući aplikacijama snimanje zvuka iz drugih aplikacija. Stephanie Saad Cuthbertson rekla je da tim razmatra "kako bismo mogli učiniti bolje u pogledu potreba za snimanjem ekrana još jučer." Druge marke pametnih telefona poput OnePlus, ASUS, Huawei i Samsung imaju robusne snimače zaslona koji mogu snimati interni zvuk, tako da će Google ovdje igrati nadoknadu.

Tamna tema Sve stvari!

U slučaju da ste propustili, Google dodaje tamni način rada u većinu svojih aplikacija. Stephanie Saad Cuthbertson kaže očekivati ​​da sve "glavne aplikacije" podržavaju tamnu temu "službenim [Android Q] izdanjem." Čak i Google Chrome, koji trenutno prisiljava ponovno učitavanje stranice kada je omogućena tamna tema za cijeli sustav, ažurirat će se da se više ne osvježava kada je tema promijenjeno.

Da, pokretači trećih strana radit će s gestama (na kraju)

Androidove geste su nekako pokvaren kada koristite pokretač treće strane. To je zato što je sučelje nedavnih aplikacija sadržano u aplikaciji za pokretanje dionica, a Google još nije razradio je način za iste besprijekorne prijelaze koje vidimo kada koristimo geste sa standardnim Pixelom Pokretač. Adam Cohen potvrđuje Google planira riješiti te probleme "što je prije moguće nakon objave." On dalje kaže da nekompatibilnost "riješit će se u ažuriranju nakon Q-a i vratiti za nove uređaje koji se pokreću s Q."

Dinamičke/logičke particije nisu tu da ubiju prilagođene ROM-ove

U cilju podrške Dinamičko ažuriranje sustava u Androidu Q, određeni uređaji poput Google Pixel 3 i Pixel 3 XL koriste logičke particije. Ovim se particijama može dinamički mijenjati veličina. Ova promjena ima pokazalo se izazovnim za pokretanje root pristupa, a neki programeri su zabrinuti da su ciljani prilagođeni ROM-ovi. Iliyan Malchev nas uvjerava da namjera nije ograničiti prilagođene ROM-ove. Kao objašnjava on:

"Dinamičke particije nisu namijenjene ograničavanju onoga što možete učiniti s prilagođenim ROM-ovima. One su jednostavno rješenje problema fiksnih veličina particija i nedostatka sigurnog načina za ponovno particioniranje uređaja OTA. Prije dinamičkih particija, ako je OEM pogriješio u dimenzioniranju, npr. sistemsku particiju, zatim oni bi bio ograničen tim izborom, čineći praktički nemogućom nadogradnju uređaja nakon određenog vremena točka. Neki proizvođači originalne opreme iz prakse ponovno particioniraju svoje uređaje na OTA-i, ali to a) nije službeno podržano u Androidu i b) mijenjanje tablice particija smatra se prilično rizičnim. Dinamičke particije imaju za cilj ublažiti problem uvođenjem razine neizravnosti između tablice fizičkih particija i OS-a. To nam zauzvrat omogućuje sigurno podešavanje veličine particija na OTA-i. Što se tiče prilagođenih ROM-ova, ne biste trebali biti više ograničeni onim što možete učiniti nego danas. Podrška za prilagođene ROM-ove jest i nastavlja biti nešto što svaki OEM odlučuje omogućiti."

Glavni projekt - ART modul i duljina podrške

Mainline je nova inicijativa Googlea koja ima za cilj standardizirati određene biblioteke i pakete kako bi se mogli ažurirati neovisno o ažuriranjima platforme. Neki su se pitali zašto Android Runtime (ART) još nije Mainline modul, ali rečeno mi je na Google I/O da složenost uključena u modularizaciju ART-a spriječila ih je da ga uključe kao jedan od početnih APEX paketa. Kao objasnio od Iliyana Malcheva i Diane Wong:

"Ažuriranje Runtimea (osobito performansi i GC popravaka i osnovnih biblioteka) definitivno je nešto što istražujemo u kontekstu glavne linije. Vidimo puno prednosti mogućnosti da ova ažuriranja budu dosljedna na svim uređajima i u više izdanja s glavnom linijom. To je također veliki tehnički izazov dok razmišljamo o tome kako to učiniti najbolje za programere, a vjerojatno i višegodišnji napor. To nije nešto što Mainline trenutno može učiniti, ali svakako nešto o čemu razmišljamo."

Ako pratite AOSP Gerrit, vidjet ćete da je Google ipak bio teško na poslu izrada Runtime APEX-a. Trenutno se čini da jesu razdvajanje Bionic i ART/libcore u zasebne APEX module.

Što se tiče prednosti Project Mainline, jedan je korisnik pitao o duljini Mainline ažuriranja. Kao odgovor, Iliyan Malchev kaže da je "ovo pitanje politike koje još uvijek procjenjujemo, ali želimo ažurirati glavne module na uređaju što je duže moguće." XDA priznati programer luca020400 raspitao se hoće li unaprijed izgrađeni moduli Mainline biti dostavljeni kako bi programeri prilagođenih ROM-ova mogli spojiti ažuriranja, a kao odgovor, Jeff Bailey ponavlja da će "moduli koji se odvajaju od AOSP-a imati izvorna izdanja koja odgovaraju svakom izdanju modula." Već možemo vidjeti napredak novih APEX modula u AOSP-u, kao što je onaj za API za neuronske mreže.

CameraX susreće ML Kit

Na I/O ovogodišnjem, Google je predstavio Biblioteka CameraX Jetpack. Ova je biblioteka osmišljena kako bi programerima olakšala podršku za Androidov Camera2 API, a istovremeno zadržala kompatibilnost sve do Android Lollipopa. Vinit Modi zadirkuje s kojima tvrtka radi na integraciji CameraX-a ML Kit, Googleov Firebase SDK za strojno učenje, tako da programeri mogu unijeti okvire slika u ML Kit za analizu.

Proširenja dobavljača CameraX i datum izdavanja

Razvojni programer aplikacije za kameru žali se na činjenicu da napredne značajke kamere poput Night Sighta Google Pixela nisu dostupne aplikacijama za kameru trećih strana. Ovo bi trebalo biti rješivo s ekstenzijama dobavljača CameraX, na što Jeff Sharkey iz Googlea kaže da su "svi Pixel uređaji optimizirani za CameraX Core." On zadirkuje da će "aspekt proširenja biti podržan na novim i nadolazećim uređajima." Nadalje, Google je "suradnja s nekoliko proizvođača kako bismo mogli pružiti mogućnosti svojih uređaja programerima i korisnicima." Iako nije izravno potvrđeno, moguće je da ćemo vidjeti značajke Kao Noćni nišan na Google Pixel 4 postaju dostupni aplikacijama kamera trećih strana koje koriste biblioteku CameraX.

G. Sharkey navodi da Google planira beta izdanje za kraj ove godine.

Poboljšanja upravljanja memorijom u Androidu Q

Pixel 3 je kritikovan zbog toga što ima brojna pitanja nakon pokretanja, no Google je učinio mnogo na rješavanju tih problema putem brojnih ažuriranja nakon pokretanja. Upravljanje memorijom je jedan od najslabijih aspekata Pixela 3, ali stvari bi trebale biti malo bolje u izdanju Androida Q. Prema riječima Selima Cineka:

"Na primjer, u SystemUI-u, imali smo razne velike napore u refaktoriranju u Qu kako bismo smanjili korištenje RAM-a za obavijesti i druge površine."

Hoćemo li konačno dobiti bežični ADB?

Ako želite bežično otkloniti pogreške na telefonu, morat ćete rootati svoj uređaj. Jamal Eason iz Android Studio tima kaže da trenutno razmatraju izvedivost ove značajke.

Testira li Google još uvijek na tabletima?

XDA priznati programer Luk1337 upitao testira li Google još uvijek AOSP UX na tabletima. To je pošteno pitanje s obzirom na nedostatak dobrih Android tableta i prisutne bube u trenutnim izdanjima. Allen Huang kaže da Google još uvijek "testira i radi popravke svake godine" i da tvrtka blisko surađuje s partnerima "kako bi osigurala dobro iskustvo Android tableta."


Ima još puno objava u cijeloj temi na Redditu. Ono što sam ovdje opisao sažima sve nove informacije koje smo saznali, ali nekoliko Googleovih zaposlenika (osobito Dianne Hackborn) ući u njihovo razmišljanje iza rezanja značajke X ili neprovođenja Y dopuštenje. Preporučujem da pročitate cijeli AMA ako želite malo bolje razumjeti donošenje odluka Android tima.

Pročitajte cijeli AMA na /r/AndroidDev