Google'i insenerid tegid eelmisel päeval Redditis AMA. AMA käsitles Android Q beetaversiooni. Siin on kokkuvõte sellest, mida me nende vastustest õppisime.
Eelmisel aastal korraldas Google'i Androidi meeskond Redditi /r/AndroidDev subredditis AMA (Ask Me Anything), et esitada küsimusi Android P arendaja eelvaade. Sel aastal vastas Android Q beetaversiooni kallal töötav insenerimeeskond Redditi küsimustele. AMA algas 1. augustil kell 12.00 PST ja lõppes umbes poolteist tundi hiljem. AMA-s osales 33 Google'i inseneri, kes vastasid AMA lühikese aja jooksul paljudele küsimustele. Siin on meie kokkuvõte kogu saadud uuest teabest.
Android Q AMA: kõik, mida me Google'ilt õppisime
Osalejad Android Q beetaversiooni meeskonnast
- Adam Cohen: TLM Androidi käivitusprogrammis / süsteemi kasutajaliideses
- Adam Powell: TLM kasutajaliidese tööriistakomplektil/raamistikul; vaated, elutsükkel, fragmendid, tugilibid
- Alan Viverette: TLM, Jetpack / AndroidX
- Allen Huang: PM kasutajaliidese, käivitusprogrammi, märguannete, otsinguintegratsioonide ja muu jaoks!
- Andrew Sappirstein: TLM Androidi seadetes
- Brahim Elbouchikhi: PM direktor Androidi masinõppe ja kaamera jaoks (NN API, ML-komplekt, CameraX, kaameraplatvorm)
- Chad Brubaker: tarkvarainsener, Androidi platvormi turvalisus
- Charmaine D’Silva: PM privaatsuse huvides
- Chet Haase: Androidi peaadvokaat, arendajasuhted
- Diana Wong: PM, rakenduste ühilduvus, mitte-SDK API kasutamine, ART, NDK
- Dianne Hackborn: Androidi raamistiku meeskonna haldur (ressursid, aknahaldur, tegevuste haldur, mitme kasutaja, printimine, juurdepääsetavus jne)
- E.K. Chung: UX direktor
- Ian Lake: Tarkvarainsener, Jetpack (fragmendid, navigeerimine, arhitektuurikomponendid)
- Iliyan Malchev: Peatarkvarainsener, projekti põhiliini
- Jacob Lehrbaum: Androidi arendajasuhete direktor
- Jake Wharton: tarkvarainsener, Jetpack
- Jamal Eason: PM, Android Studio
- Jeff Bailey: TLM, Androidi avatud lähtekoodiga projekt (AOSP)
- Jeff Sharkey: tarkvarainsener, Android Framework
- Jeffrey van Gogh: Android Studio, kompilaatorid
- Jen Chai: PM, asukoht ja kontekst, autentimine, automaatne täitmine, mitte-SDK API kasutus, ART
- Karen Ng: Grupi PM Androidi arendaja tööriistade, Android Studio, Android Tookiti ja Jetpacki jaoks
- Paul Bankhead: Google Play tootehalduse direktor
- Rohan Shah: Tootejuht, Androidi süsteemi kasutajaliides
- Romain Guy: Android Toolkiti/Jetpacki meeskonna juht
- Sagar Kamdar: Androidi tootehalduse direktor
- laupäev K: Androidi ühenduvuse inseneridirektor
- Selim Cinek: tarkvarainsener, Androidi süsteemi kasutajaliides
- Stephanie Saad Cuthbertson: Androidi tootehalduse vanemdirektor
- Sumir Kataria: Tarkvarainsener, Jetpack (WorkManager)
- Travis McCoy: PM, Androidi platvorm
- Trystan Upstill: Austatud insener, Androidi süsteemi kasutajaliidese ja intelligentsuse juht
- Vinit Modi: PM, Android kaamera
Loe rohkem
OEM-id ei saa enam rakendusi tappa, kui kasutaja need hiljuti minema pühib
Kui olete kunagi kasutanud mõne Hiina kaubamärgi nutitelefoni, olete tõenäoliselt tegelenud tüütu aku optimeerimise funktsioonidega, mis tapke taustal kõik oma lemmikrakendused. See käitumine pole mitte ainult tüütu kasutajatele, kes eeldavad, et teatud rakendused jätkavad mingil põhjusel taustal töötamist. kuid see on tüütu ka arendajatele, kes peavad kannatama halbade arvustuste all kasutajatelt, kes ei saa aru, et see pole rakenduse oma. süü. Kuigi Google on ikka veel ei käsitle seda küsimust täielikult (nad lehvitasid selle probleemiga, öeldes, et see käitumine on nii tõenäoliselt juba Androidi ühilduvuse määratlusdokumendi nõudeid rikkudes), ettevõte on tegutsema ühe "akut säästva" käitumise muudatuse vastu, mida mõned originaalseadmete tootjad kasutavad.
"Olukorra abistamiseks lisasime Android Q-sse CTS-testi, et tagada, et rakendus ei hukkuks, kui see rakendusest Hiljutised pühkida."
Android R võib tuua ekraanipiltidesse rohkem muudatusi, kui ootasime
Google kavatseb lisada ekraanipiltide kerimine Android R-is, kuid samal ajal Androidi meeskond on "vaadake tähelepanelikult, kuidas [nad] saavad R kogu ekraani [X] kogemust parandada." Seega võime vaadake ekraanipiltide (JA ekraanisaadete) käitumise muid täiustusi järgmises suuremas Androidi versioonis.
Android Q uue töölauarežiimi selgitamine
The esimene avalik beetaversioon Android Q tõi AOSP-le ja Pixel Launcherile peidetud töölauarežiimi liidese. Kuigi Google puudutas lühidalt seda funktsiooni Google'i I/O seansi ajal pole me kunagi Google'ilt otse kuulnud, kuidas uus funktsioon Androidi ökosüsteemi sobib. Google selgitab nüüd:
"Q AOSP-s on töölauarežiim arendajavalik, mis on suunatud rakenduste arendajatele. See võimaldab neil testida oma rakendusi mitme kuvariga ja vabavormingus aknarežiimi keskkondades. Varem ei olnud Androidi varuseadmetes mugavat viisi rakenduste käitumise testimiseks teisese kuvari ja vabalt muudetavate akendega. See funktsioon ei ole eraldi toodetud ja pole praegu mõeldud tavakasutajatele. Sellegipoolest on see Androidi platvormi lähtealus, et originaalseadmete tootjad saaksid uuendusi teha ja suurepäraseid tooteid valmistada.
Seega võime eeldada, et originaalseadmete tootjad tuginevad Android Q loomulikule töölauarežiimile. Näiteks OnePlus 7 Pro toetab kuvamist HDMI kaudu, seega on see võimalik Android Q-l põhinev OxygenOS 10 on tulevikus oma töölauarežiimi liides. Samuti loodame, et Google kasutab seda funktsiooni eelseisvaks kasutamiseks Pixel 4.
Ajapõhine tume režiim
Android Q toob lõpuks laialdaselt nõutud funktsiooni: kogu süsteemi hõlmav tume režiim. Praegu saab tumeda režiimi lubada käsitsi seadetes või kiirseadete paani kaudu või automaatselt aktiveerida, kui akusäästja on lubatud. Enne Android Q-d oli võimalus lubada tume režiim kellaaja alusel, kuid see valik oli aegunud. Chris Banesi sõnul:
"Selle AppCompat v1.1.0 puhul on mitu põhjust, miks see on aegunud (ei eemaldata): selleks peavad rakendused taotlema asukohaload on täpsed ja isegi kehtiva asukoha korral saab päikesetõusu/loojangu aja arvutada lollakas."
Küsimusele nende vigade kohta ütleb hr Banes, et "päikesetõusu/päikeseloojangu arvutamine on kurikuulsalt keeruline, eriti lähedal asuvates kohtades põhja-/lõunapoolused." Kasutaja toob esile, et Night Light, mis on saadaval alates Android 7.1 Nougatist, saab automaatselt sisse lülitada sõltuvalt päikeseloojangust/päikesetõusust kavad. Seejärel teatab hr Banes, et kuna Night Light kasutab CalendarAstronomeri alates ICU4J, kasutab see "suurt kooditükki, millest me ei tahaks, et AppCompat sõltuks". Meeskond aga teeb olek et see funktsioon on "miski, mida [nad] uurivad".
Kohustuslik Camera2 API/Camera HAL3 tugi Android Q käivitusseadmetele
Google tutvustas Camera2 API-d, et paremini määratleda, kuidas rakendused saavad teie nutitelefoniga ühendatud üksikute kaameratega suhelda. Kuigi Google julgustab nutitelefonide müüjad "arendajatele avaldama kõik oma füüsilised kaamerad", paljud müüjad otsustavad seda mitte teha, kuigi "API ise ei ole takistades neid täna." See tähendab, et paljud kolmandate osapoolte kaamerarakendused ei saa kasutada kaasaegsete kaamerate teisest või kolmandat moodulit. nutitelefonid. Siiski tehakse edusamme, kuna Android Q on paranenud LOGICAL_MULTI_CAMERA, API, mis annab arendajatele parema juurdepääsu seadme kõikidele kaameratele ja annab originaalseadmete tootjatele kontrolli energiatarbimise ja mitme kaamera oleku haldamise üle.
Lisaks ütleb Google, et nad on lisanud nõuded kõikidele seadmetele, mis käivituvad Android Q-ga, et toetada Camera2 API/Camera HAL3. Vinit Modi sõnul:
"Alates Android P-st on HALv3/camera2 natiivseks kasutamiseks vajalikud uued 1 GB või enama RAM-iga tarnitavad seadmed. Android Q-st alates peavad kõik uued seadmed toetama HALv3/camera2. Kahjuks on versiooniuuendused HALv1-lt HALv3-le õhu kaudu üsna keerulised ja neil võivad olla ootamatud tagajärjed, mistõttu pidime piirama ulatust uute seadmetega.
Huvitav on Modi avaldus tavaliste RAM-i Android P käivitusseadmete kohta on vastuolus mida Google meile varem rääkis ja mis on veebis Image Test Suite'i lehel avaldatud.
Dünaamiline rakenduste teemastamine Jetpack Compose'iga
Sony OMS-i teemaraamistik lisati AOSP-le üsna mitu väljalaset tagasi, kuid see on ainult mõeldud originaalseadmete tootjatele millele toetuda. Me juba teame seda Google on vastu käitusaja ressursside ülekatete kasutamine kasutajate poolt teemarakendustele, kuid arendajate jaoks on see ettevõte lootes et selle Jetpack Compose'i kasutajaliides raamistik toob välja "huvitavaid lähenemisviise dünaamilisele teemale".
Vulkan-taustaprogramm Skia jaoks kasutajaliidese renderdamiseks
Eelmisel aastal, märkasime arutelu Google'i inseneride seas, kes räägivad oma plaanidest lasta Androidi raamistikul kasutada kasutajaliidese renderdamiseks Vulkani graafika API-d. Kuigi nüüd on võimalik lubada Vulkani riistvarakiirendusega taustaprogrammi ilma telefonita krahh, pole me Google'ilt kuulnud konkreetseid plaane selle kohta, millal nad kavatsevad need kasutusele võtta muudatusi. See AMA ei vasta sellele küsimusele, kuid vähemalt on meil kinnitus, et see on endiselt töös. Romain Guy sõnul:
"Meeskond on töötanud Androidi kasutatava 2D-renderdaja Skia jaoks Vulkani taustaprogrammi kallal, kuid see pole praegu vaikimisi lubatud. Kasutajaliides ja Canvas läbivad endiselt OpenGL ES-i."
Android Q žestiriba dünaamilisemaks muutmine
Mõned XDA kasutajad arvavad seda endiselt Androidi uued žestid on segaduses, aga ma isiklikult arvan, et nendega on kõik korras. Kui aga Android Q uute liigutustega natuke aega mängite, märkate, et liigutusriba ei liigu sõrmega. See jääb ka ekraanidele, kus seda pole vaja, näiteks avakuvale või hiljutiste rakenduste ülevaatele. Allen Huang ütleb et nad on "täiesti nõus, et on olemas võimalused" muuta "navigatsiooniliin vähem staatiliseks". Edasi ütleb ta et "see on midagi, mille kallal me töötame – aga ka tasakaalustame, et see ei häiriks ilmumine/kadumine."
Storage Access Frameworki täiustused
Paljud Android Q muudatused on oluliselt parandanud platvormi turvalisus ja privaatsus. Üks selline muudatus, nimega "Scoped Storage", piirab rakenduste juurdepääsu välismälu failidele mõistlikul viisil; muusikarakendused ei peaks näiteks teie galeriid nägema. Android Q-s töötavad failihalduri rakendused peavad tavapärase töö jätkamiseks kasutama API-t nimega Storage Access Framework, kuid mõned arendajad peavad seda API-t halvemaks sellele, mis oli varem saadaval. Jeff Sharkey Google'ist ütleb meeskond on käsitlenud mõnda järgmistest arendajate kaebustest:
"Tegime viimastes Android Q beetaversioonides SAF-i jõudluse parandusi; kas saaksite oma võrdlusaluseid uusima beetaversiooniga võrrelda? Samuti veenduge, et kasutate hulgitoimingute tegemisel ContentProviderClienti.
Project Treble täiustas Android Pie kasutuselevõttu võrreldes Android Oreoga
Oleme juba näinud, kuidas Project Treble, Androidi raamistiku suur madala taseme ümberarhitekteerimine, on parandanud Android OS-i uuemate versioonide kasutuselevõttu. Google tunnustab Treble'i selle taga, et nutitelefonide müüjad liitusid sellega Android P beeta eelmisel aastal ja Android Q beeta sellel aastal. Iliyan Malchev, projekti Treble juht ja Põhiliin insener, ütleb et Android Pie kasutuselevõtt oli 2018. aasta lõpus "3 korda" suurem kui Android Oreo.
Samas kommentaaris õrritab Dick Dougherty, et Androidi versiooni levitabeli jaoks on töös veel kasulikke mõõdikuid. Graafik oli viimati uuendatud mais, kuid selle andmed on ajakirjanikele kasulikumad kui rakenduste arendajatele.
Ekraani salvestamine on endiselt WIP
Varajased Android Q beetaversioonid lisasid põhilise ekraanisalvesti funktsioonilipu, kuid platvorm ise on oluliselt parandanud ekraani salvestamise kasulikkust. võimaldab rakendustel jäädvustada heli teistest rakendustest. Stephanie Saad Cuthbertson ütles, et meeskond kaalub, "kuidas saaksime veel eile ekraanisalvestusvajadusi paremini teha." Muud nutitelefonide kaubamärgid nagu OnePlus, ASUSel, Huaweil ja Samsungil on tugevad ekraanisalvestid, mis suudavad salvestada sisemist heli, nii et Google mängib siin järele.
Tume teema Kõik asjad!
Juhuks, kui see vahele jäi, lisab Google enamikule nende rakendustele tumeda režiimi. Stephanie Saad Cuthbertson ütleb eeldada, et kõik "peamised rakendused" toetavad tumedat teemat "ametliku [Android Q] väljaande järgi". Isegi Google Chrome, mis praegu sunnib lehe uuesti laadima, kui kogu süsteemi hõlmav tume teema on lubatud, värskendatakse nii, et seda ei värskendata enam, kui teema on muutunud.
Jah, kolmanda osapoole käivitusprogrammid töötavad žestidega (lõpuks)
Androidi žestid on omamoodi katki, kui kasutate kolmanda osapoole käivitusprogrammi. Selle põhjuseks on asjaolu, et hiljutine rakenduste kasutajaliides sisaldub aktsiakäivitusrakenduses ja Google seda veel ei teinud töötas välja viisi, kuidas saada samad sujuvad üleminekud, mida näeme žeste kasutamisel Pixeliga Käivitaja. Adam Cohen kinnitab Google kavatseb need probleemid lahendada "võimalikult kiiresti pärast avaldamist". Veel ütleb ta seda Kokkusobimatust lahendatakse Q-järgses värskenduses ja see lisatakse uutele seadmetele, mis käivituvad koos K."
Dünaamilised/loogilised partitsioonid ei ole siin selleks, et tappa kohandatud ROM-e
Selleks, et toetada Dünaamilised süsteemivärskendused Android Q-s kasutavad teatud seadmed, nagu Google Pixel 3 ja Pixel 3 XL, loogilisi partitsioone. Nende partitsioonide suurust saab dünaamiliselt muuta. Sellel muudatusel on juurjuurdepääsu tööle saamine on osutunud keeruliseks, ja mõned arendajad tunnevad muret kohandatud ROMide sihtimise pärast. Iliyan Malchev kinnitab meile, et eesmärk ei ole kohandatud ROM-e piirata. Nagu selgitab ta:
"Dünaamilised partitsioonid ei ole mõeldud selleks, et piirata seda, mida saate kohandatud ROM-idega teha. Need on lihtsalt lahendus fikseeritud partitsioonisuuruste probleemile ja turvalise viisi puudumisele seadmete ümberjaotamiseks OTA. Enne dünaamilisi partitsioone, kui OEM tegi suuruse määramisel vea nt. süsteemi partitsiooni, siis nemad see valik piiraks, muutes seadme uuendamise pärast teatud ajavahemikku praktiliselt võimatuks punkt. Mõned originaalseadmete tootjad jagavad oma seadmed OTA-s harjumuspäraselt ümber, kuid seda a) Androidis ametlikult ei toetata ja b) partitsioonitabeli muutmist peetakse üsna riskantseks. Dünaamiliste partitsioonide eesmärk on probleemi leevendada, luues füüsilise partitsioonitabeli ja OS-i vaheliste kaudse taseme. See omakorda võimaldab meil OTA-s partitsioonide suurusi ohutult reguleerida. Mis puutub kohandatud ROM-idesse, siis ei tohiks te oma võimete osas olla enam kui praegu piiratud. Kohandatud ROM-ide toetamine on ja on see, mida iga originaalseadmete tootja otsustab lubada.
Projekti põhiliin – ART moodul ja tugi pikkus
Mainline on Google'i uus algatus, mille eesmärk on standardida teatud teegid ja paketid, et neid saaks värskendada platvormi värskendustest sõltumatult. Mõned on mõelnud, miks Android Runtime (ART) ei ole veel põhimoodul, kuid mulle öeldi Google I/O-s, et ART modulariseerimisega seotud keerukus ei võimaldanud neil lisada seda ühe esialgse APEX-i paketina. Nagu selgitas nii Iliyan Malchev kui Diana Wong:
"Käitusaja värskenduste tegemine (eriti jõudluse ja GC parandused ning põhiteegid) on kindlasti midagi, mida me põhiliini kontekstis uurime. Näeme palju eeliseid, kui suudame need värskendused ühtlustada kõigis seadmetes ja põhiliiniga mitmes versioonis. See on ka tohutu tehniline väljakutse, kuna mõtleme sellele, kuidas seda arendajate jaoks kõige paremini teha, ja tõenäoliselt on see mitmeaastane pingutus. Seda ei saa Mainline praegu teha, kuid kindlasti midagi, millele me mõtleme."
Kui järgite AOSP Gerritit, näete, et Google on seda siiski teinud raske tööl Runtime APEXi tegemine. Praegu tundub, et nad on Bionicu ja ART/libcore'i poolitamine eraldi APEX-moodulitesse.
Projekti Mainline'i eeliste kohta küsis üks kasutaja Mainline'i värskenduste pikkuse kohta. Vastuseks Iliyan Malchev ütleb et "see on poliitikaküsimus, mida me alles hindame, kuid tahame värskendada seadme põhimooduleid nii kaua kui võimalik." XDA tunnustatud arendaja luca020400 uuris, kas pakutakse eelehitatud Mainline mooduleid, et kohandatud ROM-i arendajad saaksid värskendusi liita, ja vastuseks Jeff Bailey kordab et "AOSP-st eraldatavatel moodulitel on lähteväljaanded, mis vastavad iga mooduli väljalasele." Näeme juba AOSP-s uute APEX-moodulite, näiteks APEX-moodulite edenemist Närvivõrkude API.
CameraX kohtub ML Kitiga
Selle aasta I/O-l tutvustas Google CameraX Jetpacki raamatukogu. See teek on loodud selleks, et hõlbustada arendajatel Androidi Camera2 API toetamist, säilitades samal ajal ühilduvuse kuni Android Lollipopini. Vinit Modi kiusab millega ettevõte tegeleb CameraX-i integreerimisega ML komplekt, Google'i masinõppe Firebase SDK, et arendajad saaksid analüüsimiseks pildiraame ML-komplekti sisestada.
CameraX tarnija laiendused ja väljalaskekuupäev
Kaamerarakenduse arendaja kahetseb asjaolu, et täiustatud kaamerafunktsioonid, nagu Google Pixeli öövaade, pole kolmandate osapoolte kaamerarakendustele juurdepääsetavad. See peaks olema lahendatav CameraX müüja laiendustega, millele Jeff Sharkey Google'ist ütleb et "kõik Pixeli seadmed on optimeeritud CameraX Core'i jaoks." Ta kiusab, et "laienduste aspekti toetatakse uutes ja tulevastes seadmetes." Lisaks on Google "töötab mitme tootjaga, et viia nende seadmete võimalused nii arendajate kui ka kasutajateni." Kuigi see pole otseselt kinnitatud, on võimalik, et näeme funktsioone meeldib Öine vaade peal Google Pixel 4 muutuvad kättesaadavaks kolmandate osapoolte kaamerarakendustele, mis kasutavad CameraX teeki.
Hr Sharkey teatab, et Google sihib beetaversiooni selle aasta lõpuks.
Mäluhalduse täiustused Android Q-s
Pixel 3 oli hämmingus selle eest mitmeid käivitamisjärgseid probleeme, kuid Google on nende probleemide lahendamiseks teinud palju lansseerimisjärgsed värskendused. Mäluhaldus on olnud üks Pixel 3 nõrgemaid külgi, kuid Android Q väljalaskes peaks asi natuke parem olema. Selim Cineki sõnul:
"Näiteks SystemUI-s tegime Q-s mitmesuguseid suuri ümbertöötlemispüüdlusi, et vähendada teatiste ja muude pindade RAM-i kasutamist."
Kas me saame lõpuks traadita ADB?
Kui soovite oma telefoni juhtmevabalt siluda, peate oma seadme juurima. Jamal Eason Android Studio meeskonnast ütleb et nad tegelevad praegu selle funktsiooni teostatavuse küsimusega.
Kas Google testib ikka veel tahvelarvutites?
XDA tunnustatud arendaja Luk1337 küsis, kas Google testib ikka veel tahvelarvutites AOSP UX-i. See on õiglane küsimus, arvestades heade Androidi tahvelarvutite puudus ja vead olemas praegustes väljaannetes. Allen Huang ütleb et Google ikka "testib ja teeb parandusi igal aastal" ja et ettevõte teeb tihedat koostööd partneritega, "et tagada hea Android-tahvelarvuti kasutuskogemus".
Redditis on kogu lõimes palju rohkem postitusi. See, mida ma siin käsitlesin, võtab kokku kogu uue teabe, mille saime, kuid mitmed Google'i töötajad (eriti Dianne Hackborn) uurivad oma X-funktsiooni katkestamise või Y-i mitterakendamise põhjuseid luba. Soovitan teil lugeda täielikku AMA-d, kui soovite Androidi meeskonna otsuste tegemist natuke paremini mõista.
Lugege täielikku AMA-d saidil /r/AndroidDev