Googlovi inženirji so prejšnji dan izvedli AMA na Redditu. AMA se je nanašal na Android Q beta. Tukaj je povzetek tega, kar smo se naučili iz njihovih odgovorov.
Lansko leto je Googlova ekipa za Android gostila Ask Me Anything (AMA) na Redditovem podredditu /r/AndroidDev za vprašanja o Predogled za razvijalce za Android P. Letos je inženirska ekipa, ki je delala na Androidu Q beta, odgovarjala na vprašanja na Redditu. AMA se je začel 1. avgusta ob 12. uri po pacifiškem standardnem času in končal približno uro in pol kasneje. Pri AMA je sodelovalo 33 Googlovih inženirjev, ki so v kratkem času trajanja AMA odgovorili na kup vprašanj. Tukaj je naš povzetek vseh novih informacij, ki smo jih izvedeli.
Android Q AMA: Vse, kar smo se naučili od Googla
Udeleženci iz ekipe Android Q beta
- Adam Cohen: TLM v zaganjalniku Android/sistemski uporabniški vmesnik
- Adam Powell: TLM na kompletu orodij/ogrodju uporabniškega vmesnika; pogledi, življenjski cikel, fragmenti, podpora knjiž
- Alan Viverette: TLM, Jetpack / AndroidX
- Allen Huang: PM za uporabniški vmesnik, zaganjalnik, obvestila, integracije iskanja in več!
- Andrew Sappirstein: TLM v nastavitvah za Android
- Brahim Elbučiki: PM direktor za Android strojno učenje in kamero (NN API, ML Kit, CameraX, Camera Platform)
- Chad Brubaker: programski inženir, varnost platforme Android
- Charmaine D'Silva: PM za zasebnost
- Chet Haase: Glavni zagovornik Androida, odnosi z razvijalci
- Diana Wong: PM, združljivost aplikacij, uporaba API-ja, ki ni SDK, ART, NDK
- Dianne Hackborn: Vodja skupine za okvir Android (Viri, upravitelj oken, upravitelj dejavnosti, več uporabnikov, tiskanje, dostopnost itd.)
- E.K. Chung: Direktor UX
- Ian Lake: Programski inženir, Jetpack (fragmenti, navigacija, komponente arhitekture)
- Ilijan Malčev: Glavni programski inženir, Project Mainline
- Jakob Lehrbaum: Direktor odnosov z razvijalci za Android
- Jake Wharton: programski inženir, Jetpack
- Jamal Eason: PM, Android Studio
- Jeff Bailey: TLM, odprtokodni projekt Android (AOSP)
- Jeff Sharkey: programski inženir, Android Framework
- Jeffrey van Gogh: Android Studio, Prevajalniki
- Jen Chai: PM, lokacija in kontekst, avtorizacija, samodejno izpolnjevanje, uporaba API-ja, ki ni SDK, ART
- Karen Ng: Group PM za orodja za razvijalce Android, Android Studio, Android Tookit in Jetpack
- Paul Bankhead: Direktor produktnega upravljanja, Google Play
- Rohan Shah: Produktni vodja, uporabniški vmesnik sistema Android
- Romain Guy: Vodja ekipe Android Toolkit/Jetpack
- Sagar Kamdar: Direktor produktnega upravljanja, Android
- Sob K: Direktor inženiringa, povezljivost Android
- Selim Cinek: programski inženir, uporabniški vmesnik sistema Android
- Stephanie Saad Cuthbertson: Višji direktor produktnega upravljanja, Android
- Sumir Kataria: Programski inženir, Jetpack (WorkManager)
- Travis McCoy: PM, platforma Android
- Trystan Upstill: Ugledni inženir, vodja uporabniškega vmesnika sistema Android in inteligence
- Vinit Modi: PM, kamera Android
Preberi več
Proizvajalci originalne opreme ne morejo več uničiti aplikacij, ko jih uporabnik v nedavnih povleče stran
Če ste že kdaj uporabljali pametni telefon kitajske znamke, potem ste verjetno imeli opravka z nadležnimi funkcijami »optimizacije baterije«, ki uniči vse svoje najljubše aplikacije v ozadju. Ne le, da je to vedenje moteče za uporabnike, ki pričakujejo, da bodo nekatere aplikacije iz kakršnega koli razloga še naprej delovale v ozadju, vendar je tudi moteče za razvijalce, ki morajo trpeti slabe ocene uporabnikov, ki ne razumejo, da to ni aplikacija napaka. Medtem ko je Google še vedno te zadeve ne obravnavajo v celoti (odmahnili so z roko in izjavili, da je to vedenje verjetno že krši zahteve dokumenta o združljivosti z Androidom), podjetje je ukrepanje proti eni spremembi vedenja "varčevanja z baterijo", ki jo uporabljajo nekateri proizvajalci originalne opreme.
"Za pomoč pri tej situaciji smo dodali test CTS v Android Q, da zagotovimo, da se aplikacija ne uniči, ko jo povlečete iz Recents."
Android R lahko prinese več sprememb pri posnetkih zaslona, kot smo pričakovali
Google namerava dodati premikanje posnetkov zaslona v sistemu Android R, a hkrati tudi Ekipa za Android je "pobliže si ogledajo, kako [lahko] izboljšajo celotno izkušnjo zaslona [X] za R." Tako lahko oglejte si druge izboljšave vedenja posnetka zaslona (IN predvajanja zaslona) v naslednji večji različici Androida.
Razjasnitev novega namiznega načina Androida Q
The prva javna izdaja beta Androida Q je v AOSP in Pixel Launcher prinesel skriti vmesnik namiznega načina. Čeprav Google na kratko dotaknil funkcije med sejo Google I/O nismo nikoli slišali neposredno od Googla, kako se nova funkcija prilega ekosistemu Android. Google zdaj pojasnjuje:
»V Q AOSP je 'namizni način' razvijalska možnost, namenjena razvijalcem aplikacij. Omogoča jim, da preizkusijo svoje aplikacije v okoljih z več zasloni in okenskim načinom proste oblike. Prej ni bilo priročnega načina za preizkušanje vedenja aplikacije na sekundarnem zaslonu in z okni, ki jih je mogoče poljubno spreminjati v standardnem sistemu Android. Ta funkcija ni izdelana sama in trenutno ni namenjena rednim uporabnikom. Kljub temu je osnova platforme Android za proizvajalce originalne opreme za inovacije in izdelavo odličnih izdelkov."
Tako lahko pričakujemo, da bodo proizvajalci originalne opreme gradili na izvornem namiznem načinu Androida Q. Na primer, OnePlus 7 Pro podpira prikaz prek HDMI, torej je možno, da OxygenOS 10, ki temelji na sistemu Android Q bo v prihodnosti imel svoj vmesnik namiznega načina. Prav tako upamo, da bo Google gradil na tej funkciji za prihodnje Pixel 4.
Temni način, ki temelji na času
Android Q končno prinaša zelo zahtevano funkcijo: sistemski temni način. Trenutno je temni način mogoče ročno omogočiti v nastavitvah ali prek ploščice hitrih nastavitev ali pa se samodejno aktivira, ko je omogočeno varčevanje z baterijo. Pred Androidom Q je obstajala možnost omogočiti temni način glede na čas dneva, vendar je bila ta možnost zastarela. Po mnenju Chrisa Banesa:
"Obstaja nekaj razlogov, zakaj je to zastarelo (ni odstranjeno) v AppCompat v1.1.0: zahteva, da aplikacije zahtevajo da so dovoljenja za lokacijo natančna in tudi z veljavno lokacijo so lahko izračuni časa sončnega vzhoda/zahoda buggy."
Ko so ga vprašali o teh hroščih, gospod Banes navaja, da je "izračun sončnega vzhoda/zahoda zelo težak, zlasti za lokacije blizu severni/južni pol." Uporabnik prikaže, da je nočno svetlobo, ki je na voljo od Androida 7.1 Nougat, mogoče samodejno preklapljati glede na sončni zahod/sončni vzhod urniki. G. Banes nato navaja, da od Night Light uporablja CalendarAstronomer iz ICU4J, uporablja "velik kos kode, od katerega ne bi želeli, da bi bil odvisen AppCompat." Vendar ekipa to počne država da je ta funkcija "nekaj, kar [bodo] preučili."
Obvezna podpora Camera2 API/Camera HAL3 za naprave za zagon Android Q
Google je predstavil Camera2 API, da bi bolje opredelil, kako lahko aplikacije komunicirajo s posameznimi kamerami, povezanimi z vašim pametnim telefonom. Medtem ko Google spodbuja prodajalci pametnih telefonov, da »vse svoje fizične kamere izpostavijo razvijalcem«, se mnogi prodajalci odločijo, da tega ne storijo, čeprav »sam API ni jih danes preprečuje." To pomeni, da številne aplikacije za kamere drugih proizvajalcev ne morejo uporabljati sekundarnih ali terciarnih modulov kamere na sodobnih pametni telefoni. Vendar pa je napredek dosežen, saj se je Android Q izboljšal LOGIČNA_VEČKAMERA, API, ki razvijalcem omogoča boljši dostop do vseh kamer v napravi in proizvajalcem originalne opreme omogoča nadzor nad porabo energije in upravljanjem več stanj kamer.
Poleg tega Google pravi, da so dodali zahteve za vse naprave, ki se zaženejo z Androidom Q, da izvorno podpirajo Camera2 API/Camera HAL3. Po mnenju Vinita Modija:
»Začenši z Androidom P, morajo nove naprave, ki so dobavljene z 1 GB ali več RAM-a, izvorno uporabljati HALv3/camera2. Android Q in naprej morajo vse nove naprave izvorno podpirati HALv3/camera2. Na žalost so nadgradnje s HALv1 na HALv3 precej zapletene po zraku in imajo lahko nepričakovane posledice, zato smo morali omejiti obseg na nove naprave."
Zanimiva je Modijeva izjava o napravah za zagon običajnega RAM-a Android P nasprotuje kar nam je prej povedal Google in kar je objavljeno na spletni strani Image Test Suite.
Dinamično tematiziranje aplikacij z Jetpack Compose
Sonyjevo tematsko ogrodje OMS je bilo dodano AOSP že kar nekaj izdaj nazaj, vendar je samo namenjen proizvajalcem originalne opreme graditi na. To že vemo Google je proti uporabniki uporabljajo prekrivne vire izvajalnega časa za tematske aplikacije, za razvijalce pa je podjetje v upanju da je Uporabniški vmesnik Jetpack Compose okvir bo ponudil "zanimive pristope k dinamičnemu tematiziranju."
Vulkan-backend za Skia za upodabljanje uporabniškega vmesnika
Lansko leto, opazili smo razpravo med Googlovimi inženirji, ki govorijo o svojih načrtih, da bi okvir Android uporabljal grafični API Vulkan za upodabljanje uporabniškega vmesnika. Medtem ko je zdaj mogoče omogočiti strojno pospešeno zaledje Vulkan brez vašega telefona sesuje, od Googla nismo slišali nobenih konkretnih načrtov o tem, kdaj jih nameravajo uvesti spremembe. Ta AMA ne odgovarja na to vprašanje, vendar imamo vsaj potrditev, da je še vedno v pripravi. Po mnenju Romaina Guya:
»Ekipa je delala na ozadju Vulkan za Skia, 2D upodabljalnik, ki ga uporablja Android, vendar trenutno ni privzeto omogočen. Uporabniški vmesnik in Canvas še vedno uporabljata OpenGL ES."
Izdelava vrstice s potezami Androida Q bolj dinamična
Nekateri na XDA še vedno tako mislijo Nove poteze Androida so zmešnjava, ampak osebno menim, da so v redu. Če pa se malo poigrate z novimi potezami v sistemu Android Q, boste opazili, da se vrstica s potezami ne premika s prstom. Prav tako ostane na zaslonih, kjer ni potreben, na primer na domačem zaslonu ali pregledu nedavnih aplikacij. Allen Huang pravi da se "popolnoma strinjajo, da obstajajo možnosti", da naredijo "navigacijsko vrstico manj statično." Nadalje pravi da je "to nekaj, na čemer delamo - vendar tudi uravnoteženje, da ni moteče pojavljanje/izginjanje."
Izboljšave ogrodja za dostop do shrambe
Številne spremembe v sistemu Android Q so močno izboljšale varnost in zasebnost platforme. Ena taka sprememba, imenovana "Scoped Storage", omejuje dostop aplikacij do datotek v zunanjem pomnilniku na smiseln način; glasbenim aplikacijam na primer ne bi bilo treba videti vaše galerije. Aplikacije za upravljanje datotek, ki se izvajajo v sistemu Android Q, morajo uporabljati API, imenovan Storage Access Framework, da še naprej delujejo kot običajno, vendar nekateri razvijalci vidijo ta API kot slabšega tistemu, kar je bilo prej na voljo. Jeff Sharkey iz Googla pravi ekipa je obravnavala nekatere od teh pritožb razvijalcev:
»V najnovejših izdajah Android Q Beta smo naredili nekaj izboljšav delovanja SAF; ali lahko preverite svoje primerjalne vrednosti glede na najnovejšo različico beta? Prepričajte se tudi, da uporabljate ContentProviderClient, ko izvajate kakršne koli množične operacije."
Projekt Treble je izboljšal sprejemanje Android Pie v primerjavi z Androidom Oreo
Videli smo že, kako je Project Treble, velika nizkostopenjska prenova ogrodja Android, izboljšala sprejemanje novejših različic OS Android. Google pripisuje Treble za množico prodajalcev pametnih telefonov, ki se pridružujejo Android P beta lani in Android Q beta to leto. Iliyan Malchev, vodja projekta Treble in Glavna linija inženir, pravi da je bilo sprejetje Android Pie konec leta 2018 "3-krat" večje kot Android Oreo.
V istem komentarju Dick Dougherty draži, da so v pripravi še uporabnejše meritve za tabelo distribucije različic Androida. Grafikon je bil nazadnje posodobljeno maja, vendar so njegovi podatki bolj uporabni za novinarje kot razvijalce aplikacij.
Snemanje zaslona je še vedno WIP
Zgodnje beta različice Androida Q so dodale zastavico funkcije za osnovni snemalnik zaslona, vendar je platforma sama močno izboljšala uporabnost snemanja zaslona, ki aplikacijam omogoča zajemanje zvoka iz drugih aplikacij. Stephanie Saad Cuthbertson je dejala, da je ekipa razmišljala, "kako bi lahko izboljšali potrebe po snemanju zaslona še včeraj." Druge znamke pametnih telefonov, kot so OnePlus, ASUS, Huawei in Samsung imajo robustne snemalnike zaslona, ki lahko snemajo notranji zvok, tako da bo Google tukaj dohiteval.
Temna tema Vse stvari!
Če ste zamudili, Google dodaja temni način večini svojih aplikacij. Stephanie Saad Cuthbertson pravi pričakovati, da bodo vse "glavne aplikacije" podpirale temno temo "z uradno izdajo [Android Q]." Tudi Google Chrome, ki trenutno prisili ponovno nalaganje strani, ko je temna tema za celoten sistem omogočena, bo posodobljena tako, da se ne bo več osveževala, ko bo tema spremenjeno.
Da, zaganjalniki tretjih oseb bodo delovali s potezami (sčasoma)
Poteze Androida so nekako pokvarjen, ko uporabljate zaganjalnik drugega proizvajalca. To je zato, ker je uporabniški vmesnik nedavnih aplikacij vsebovan v aplikaciji za zagon zalog, Google pa še ni izdelal način za enake brezhibne prehode, kot jih vidimo pri uporabi potez s standardnim Pixelom Zaganjalnik. Adam Cohen potrjuje Googlovi načrti za reševanje teh težav "čim hitreje po izdaji." Nadalje pravi, da nezdružljivost "bo obravnavana v posodobitvi po Q in prenesena nazaj za nove naprave, ki se zaženejo s Q."
Dinamične/logične particije niso tukaj, da bi ubijale ROM-e po meri
Da bi podprli Dinamične posodobitve sistema v sistemu Android Q nekatere naprave, kot sta Google Pixel 3 in Pixel 3 XL, uporabljajo logične particije. Velikost teh particij je mogoče dinamično spreminjati. Ta sprememba ima dokazano zahtevno vzpostaviti korenski dostop, nekateri razvijalci pa so zaskrbljeni, da so tarča prilagojeni ROM-i. Iliyan Malchev nam zagotavlja, da namen ni omejitev ROM-ov po meri. Kot pojasnjuje:
"Dinamične particije niso namenjene omejevanju tega, kar lahko storite z ROM-i po meri. So preprosto rešitev za problem fiksnih velikosti particij in pomanjkanja varnega načina za ponovno razdelitev naprav OTA. Če je proizvajalec originalne opreme pred dinamičnimi particijami naredil napako pri dimenzioniranju, npr. sistemsko particijo, nato pa bi bil zaradi te izbire omejen, zaradi česar bi bilo praktično nemogoče nadgraditi napravo po določenem času točka. Nekateri proizvajalci originalne opreme v praksi znova razdelijo svoje naprave na OTA, vendar to a) ni uradno podprto v Androidu in b) spreminjanje particijske tabele velja za precej tvegano. Namen dinamičnih particij je ublažiti težavo z uvedbo ravni posrednosti med tabelo fizičnih particij in OS. To nam nato omogoča varno prilagajanje velikosti particij na OTA. Kar zadeva ROM-e po meri, ne bi smeli biti nič bolj omejeni, kot ste danes, s tem, kar lahko storite. Podpora ROM-om po meri je in ostaja nekaj, kar se vsak posamezni OEM odloči omogočiti."
Glavna linija projekta – modul ART in dolžina podpore
Mainline je nova Googlova pobuda, katere namen je standardizirati določene knjižnice in pakete, tako da jih je mogoče posodabljati neodvisno od posodobitev platforme. Nekateri so se spraševali, zakaj Android Runtime (ART) še ni glavni modul, vendar so mi na Google I/O povedali, da zapletenost modularizacije ART jim je preprečila, da bi ga vključili kot enega od začetnih paketov APEX. Kot pojasnil avtorja Iliyan Malchev in Diana Wong:
»Posodobitve izvajalnega okolja (zlasti zmogljivosti in popravkov GC ter osnovnih knjižnic) so vsekakor nekaj, kar raziskujemo v kontekstu glavne linije. Vidimo lahko veliko prednosti, če lahko naredimo te posodobitve skladne v vseh napravah in v več izdajah z glavno povezavo. To je tudi velik tehnični izziv, ko razmišljamo o tem, kako bi to naredili kar najbolje za razvijalce, in verjetno večletno prizadevanje. To ni nekaj, kar bi Mainline trenutno lahko naredil, vsekakor pa nekaj, o čemer razmišljamo."
Če sledite AOSP Gerrit, boste videli, da je Google kljub temu bil trdo pri delu izdelava Runtime APEX. Trenutno se zdi, da so delitev Bionic in ART/libcore v ločene module APEX.
Glede prednosti Project Mainline je en uporabnik vprašal o dolžini posodobitev Mainline. V odgovor Iliyan Malchev pravi da je "to vprašanje politike, ki ga še ocenjujemo, vendar želimo module Mainline na napravi posodabljati čim dlje." XDA priznani razvijalec luca020400 vprašal, ali bodo na voljo vnaprej zgrajeni moduli Mainline, tako da lahko razvijalci ROM-a po meri združijo posodobitve, in v odgovor Jeff Bailey ponavlja da bodo "moduli, ki se odcepijo od AOSP, imeli izvorne izdaje, ki se ujemajo z vsako izdajo modula." Že lahko vidimo napredovanje novih modulov APEX v AOSP, kot je eden za API za nevronske mreže.
CameraX sreča ML Kit
Na I/O letos je Google predstavil Knjižnica CameraX Jetpack. Ta knjižnica je zasnovana tako, da razvijalcem olajša podporo za Android Camera2 API, hkrati pa ohranja združljivost vse do Android Lollipop. Vinit Modi draži s katerim podjetje dela na integraciji CameraX Komplet ML, Googlov komplet za razvoj programske opreme za strojno učenje Firebase, tako da lahko razvijalci posredujejo slikovne okvirje v ML Kit za analizo.
Razširitve prodajalca CameraX in datum izdaje
Razvijalec aplikacije za kamero obžaluje dejstvo, da napredne funkcije kamere, kot je Night Sight Google Pixel, niso dostopne aplikacijam za kamero tretjih oseb. To naj bi bilo rešljivo z razširitvami ponudnika CameraX, za katere je Jeff Sharkey iz Googla pravi da so "vse naprave Pixel optimizirane za CameraX Core." Draži, da bo "videk razširitev podprt na novih in prihajajočih napravah." Poleg tega je Google "sodelovati z več proizvajalci, da bi lahko predstavili zmogljivosti svojih naprav razvijalcem in uporabnikom." Čeprav ni neposredno potrjeno, je možno, da bomo morda videli funkcije kot Nočni pogled na Google Pixel 4 postanejo na voljo aplikacijam za kamere drugih proizvajalcev, ki uporabljajo knjižnico CameraX.
G. Sharkey navaja, da Google cilja na izdajo beta za konec tega leta.
Izboljšave upravljanja pomnilnika v sistemu Android Q
Pixel 3 je bil kritiziran, ker je imel številne težave po lansiranju, vendar je Google naredil veliko za reševanje teh težav prek številnih posodobitve po zagonu. Upravljanje pomnilnika je bilo eden najšibkejših vidikov Pixela 3, vendar bi morale biti stvari v izdaji Android Q nekoliko boljše. Po mnenju Selima Cineka:
"V SystemUI smo na primer imeli različne velike poskuse refaktoriranja v Q, da bi zmanjšali uporabo RAM-a za obvestila in druge površine."
Bomo končno dobili brezžični ADB?
Če želite brezžično odpraviti napake v telefonu, boste morali svojo napravo rootati. Jamal Eason iz ekipe Android Studio pravi da trenutno obravnavajo izvedljivost te funkcije.
Ali Google še vedno testira na tablicah?
XDA priznani razvijalec Luk1337 vprašal, ali Google še vedno preizkuša AOSP UX na tablicah. To je pošteno vprašanje glede na pomanjkanje dobrih tabličnih računalnikov Android in prisotni hrošči v trenutnih izdajah. Allen Huang pravi da Google še vedno "vsako leto testira in izvaja popravke" in da podjetje tesno sodeluje s partnerji, "da bi zagotovili dobro izkušnjo s tabličnim računalnikom Android."
V celotni temi na Redditu je veliko več objav. To, kar sem tukaj zajel, povzema vse nove informacije, ki smo jih izvedeli, vendar več Googlovih delavcev (zlasti Dianne Hackborn) se poglobite v svoje razloge za zmanjšanje funkcije X ali neizvajanje Y dovoljenje. Priporočam, da preberete celotno AMA, če želite nekoliko bolje razumeti odločanje ekipe za Android.
Preberite celotno AMA na /r/AndroidDev