Inžinieri Google minulý deň urobili AMA na Reddite. AMA sa týkala beta verzie systému Android Q. Tu je súhrn toho, čo sme sa naučili z ich odpovedí.
Minulý rok tím Google pre Android usporiadal Ask Me Anything (AMA) na webe Reddit /r/AndroidDev subreddit, aby položil otázky týkajúce sa Ukážka vývojára systému Android P. Tento rok inžiniersky tím pracujúci na beta verzii Android Q odpovedal na otázky na Reddite. AMA začalo 1. augusta o 12:00 PST a skončilo sa približne o hodinu a pol neskôr. Do AMA bolo zapojených 33 inžinierov Google, ktorí odpovedali na množstvo otázok v krátkom čase, keď AMA trvala. Tu je náš súhrn všetkých nových informácií, ktoré sme sa dozvedeli.
Android Q AMA: Všetko, čo sme sa naučili od Googlu
Účastníci z beta tímu Android Q
- Adam Cohen: TLM v spúšťači systému Android / používateľskom rozhraní systému
- Adam Powell: TLM na súprave/rámci používateľského rozhrania; zobrazenia, životný cyklus, fragmenty, podpora lib
- Alan Viverette: TLM, Jetpack / AndroidX
- Allen Huang: PM pre používateľské rozhranie, spúšťač, upozornenia, integrácie vyhľadávania a ďalšie!
- Andrew Sappirstein: TLM v nastaveniach systému Android
- Brahim Elbouchikhi: PM Director for Android Machine Learning and Camera (NN API, ML Kit, CameraX, Camera Platform)
- Chad Brubaker: Softvérový inžinier, zabezpečenie platformy Android
- Charmaine D'Silva: PM pre súkromie
- Chet Haase: Hlavný advokát systému Android, vzťahy s vývojármi
- Diana Wongová: PM, kompatibilita aplikácií, používanie rozhrania API bez SDK, ART, NDK
- Dianne Hackborn: Manažér rámcového tímu Android (zdroje, správca okien, správca aktivít, viac používateľov, tlač, dostupnosť atď.)
- E.K. Chung: Riaditeľ UX
- Ian Lake: Softvérový inžinier, Jetpack (fragmenty, navigácia, komponenty architektúry)
- Iliyan Malchev: Hlavný softvérový inžinier, Project Mainline
- Jacob Lerbaum: Riaditeľ pre vzťahy s vývojármi pre Android
- Jake Wharton: Softvérový inžinier, Jetpack
- Jamal Eason: PM, Android Studio
- Jeff Bailey: TLM, Android Open Source Project (AOSP)
- Jeff Sharkey: Softvérový inžinier, Android Framework
- Jeffrey van Gogh: Android Studio, kompilátory
- Jen Chai: PM, umiestnenie a kontext, overenie, automatické dopĺňanie, použitie rozhrania API bez súpravy SDK, ART
- Karen Ng: Group PM for Android Developer Tools, Android Studio, Android Tookit a Jetpack
- Paul Bankhead: Riaditeľ produktového manažmentu, Google Play
- Rohan Shah: Produktový manažér, používateľské rozhranie systému Android
- Romain Guy: Manažér tímu Android Toolkit/Jetpack
- Sagar Kamdar: Riaditeľ produktového manažmentu, Android
- So K: Riaditeľ inžinierstva, Android Connectivity
- Selim Cinek: Softvérový inžinier, používateľské rozhranie systému Android
- Stephanie Saad Cuthbertson: Hlavný riaditeľ produktového manažmentu, Android
- Sumir Kataria: Softvérový inžinier, Jetpack (WorkManager)
- Travis McCoy: PM, platforma Android
- Trystan Upstill: Významný inžinier, vedúci pre používateľské rozhranie a inteligenciu systému Android
- Vinit Modi: PM, fotoaparát Android
čítaj viac
Výrobcovia OEM už nemôžu zabíjať aplikácie, keď ich používateľ nedávno odtiahol
Ak ste niekedy používali smartfón čínskej značky, určite ste sa stretli s nepríjemnými funkciami „optimalizácie batérie“, ktoré zabite všetky svoje obľúbené aplikácie na pozadí. Toto správanie je nepríjemné nielen pre používateľov, ktorí očakávajú, že určité aplikácie budú z akéhokoľvek dôvodu naďalej bežať na pozadí, ale je to tiež nepríjemné pre vývojárov, ktorí musia trpieť zlými recenziami od používateľov, ktorí nechápu, že to nie je aplikácia chyba. Kým Google je stále nerieši túto záležitosť úplne (ručne odmietli problém vyhlásením, že toto správanie je pravdepodobne už v rozpore s požiadavkami dokumentu definície kompatibility systému Android). je prijatie opatrení proti jednej zmene správania pri „šetrení batérie“, ktorú používajú niektorí výrobcovia pôvodného zariadenia.
"Aby sme vám pomohli so situáciou, pridali sme test CTS v systéme Android Q, aby sme zaistili, že aplikácia nebude zabitá pri prejdení z Nedávnych."
Android R môže priniesť viac zmien na snímkach obrazovky, ako sme očakávali
Google plánuje pridať posúvanie snímok obrazovky v systéme Android R, ale zároveň, Android tím je "Bližšie sa pozrieme na to, ako [môžu] zlepšiť celý zážitok z obrazovky [X] pre R." Takže môžeme pozrite si ďalšie vylepšenia správania sa snímky obrazovky (A obrazovky) v ďalšej hlavnej verzii systému Android.
Objasnenie nového režimu pracovnej plochy systému Android Q
The prvé verejné beta vydanie Android Q priniesol skryté rozhranie režimu pracovnej plochy pre AOSP a Pixel Launcher. Hoci Google sa krátko dotkol funkcie počas relácie Google I/O sme nikdy priamo od Googlu nepočuli, ako nová funkcia zapadá do ekosystému Androidu. Google teraz objasňuje:
„V Q AOSP je „režim stolného počítača“ vývojárska možnosť určená pre vývojárov aplikácií. Umožňuje im testovať svoje aplikácie v prostrediach s viacerými displejmi a režimom voľnej formy. Predtým neexistoval žiadny pohodlný spôsob, ako otestovať správanie aplikácie na sekundárnom displeji a s oknami s voľne nastaviteľnou veľkosťou v systéme Android. Táto funkcia sa nevyrába sama o sebe a v súčasnosti nie je určená pre bežných používateľov. Napriek tomu je základnou líniou platformy Android pre výrobcov OEM, aby inovovali a vyrábali skvelé produkty.“
Môžeme teda očakávať, že OEM budú stavať na natívnom režime pracovnej plochy Android Q. Napríklad, OnePlus 7 Pro podporuje výstup cez HDMI, tak je to možné OxygenOS 10 založený na systéme Android Q bude mať v budúcnosti svoje vlastné rozhranie režimu pracovnej plochy. Tiež dúfame, že Google bude stavať na tejto funkcii pre nadchádzajúce Pixel 4.
Tmavý režim založený na čase
Android Q konečne prináša široko žiadanú funkciu: tmavý režim v celom systéme. V súčasnosti je možné tmavý režim povoliť manuálne v Nastaveniach alebo prostredníctvom dlaždice Rýchle nastavenia, prípadne ho možno aktivovať automaticky, keď je zapnutý šetrič batérie. Pred Androidom Q existovala možnosť povoliť tmavý režim na základe dennej doby, ale táto možnosť bola zastaraná. Podľa Chrisa Banesa:
"Existuje niekoľko dôvodov, prečo je toto zastarané (nie je odstránené) v AppCompat v1.1.0: vyžaduje, aby aplikácie požadovali povolenia polohy, aby boli presné, a dokonca aj s platnou polohou môžu byť výpočty času východu a západu slnka bugina."
Na otázku o týchto chybách pán Banes uvádza, že „výpočet východu/západu slnka je notoricky zložitý, najmä pre miesta blízko severný/južný pól." Používateľ zobrazí, že nočné svetlo, ktoré je k dispozícii od Androidu 7.1 Nougat, možno automaticky prepínať podľa západu/východu slnka rozvrhy. Pán Banes potom uvádza, že od Night Light používa CalendarAstronomer od ICU4J, používa "veľký kus kódu, na ktorom by sme nechceli, aby bol AppCompat závislý." Tým však áno štát že táto funkcia je „niečo, čo [budú] skúmať“.
Povinná podpora Camera2 API/Camera HAL3 pre spúšťacie zariadenia Android Q
Google predstavil Camera2 API, aby lepšie definoval, ako môžu aplikácie interagovať s jednotlivými kamerami pripojenými k vášmu smartfónu. Zatiaľ čo Google povzbudzuje predajcov smartfónov, aby „vystavili všetky svoje fyzické fotoaparáty vývojárom“, mnohí predajcovia sa rozhodnú tak neurobiť, aj keď „samotné rozhranie API nie je To znamená, že mnoho aplikácií pre fotoaparáty tretích strán nemôže používať moduly sekundárnych alebo terciárnych fotoaparátov na moderných smartfóny. So zlepšením systému Android Q však dochádza k pokroku LOGICAL_MULTI_CAMERA, API, ktoré poskytuje vývojárom lepší prístup ku všetkým kamerám na zariadení a ktoré dáva výrobcom OEM kontrolu nad spotrebou energie a správou viacerých stavov kamier.
Okrem toho Google hovorí, že pridal požiadavky pre všetky zariadenia spustené so systémom Android Q, aby natívne podporovali Camera2 API/Camera HAL3. Podľa Vinita Modiho:
„Počnúc systémom Android P sú na natívne používanie HALv3/kamera2 potrebné nové zariadenia dodávané s 1 GB alebo viac RAM. Android Q a novší musia všetky nové zariadenia natívne podporovať HALv3/kamera2. Aktualizácie z HALv1 na HALv3 sú, žiaľ, pomerne zložité vzduchom a môžu mať neočakávané následky, preto sme museli obmedziť rozsah na nové zariadenia."
Je zaujímavé, že Modiho vyhlásenie o bežných spúšťacích zariadeniach RAM Android P odporuje to, čo nám už skôr povedal Google a čo je zverejnené na stránke Image Test Suite online.
Dynamická tématika aplikácií s Jetpack Compose
Tématický rámec Sony OMS bol pridaný do AOSP pred niekoľkými vydaniami, ale je to len určené pre OEM stavať na. To už vieme Google je proti používanie prekrytí zdrojov runtime používateľmi do tematických aplikácií, ale pre vývojárov je to spoločnosť dúfajúc že jeho Jetpack Compose UI rámec prinesie „zaujímavé prístupy k dynamickému tematickému riešeniu“.
Vulkan-backend pre Skia na vykreslenie používateľského rozhrania
Minulý rok, zbadali sme diskusiu medzi inžiniermi Google, ktorí hovoria o svojich plánoch, aby rámec Android používal grafické rozhranie API Vulkan na vykresľovanie používateľského rozhrania. Aj keď je teraz možné povoliť hardvérovo akcelerovaný backend Vulkan bez vášho telefónu zrútili, nepočuli sme od spoločnosti Google žiadne konkrétne plány o tom, kedy ich plánujú uviesť na trh zmeny. Táto AMA na túto otázku neodpovedá, ale aspoň máme potvrdenie, že sa na nej stále pracuje. Podľa Romaina Guya:
„Tím pracoval na backende Vulkan pre Skia, 2D renderer, ktorý používa Android, ale momentálne nie je štandardne povolený. UI a Canvas stále prechádzajú cez OpenGL ES."
Zvýšte dynamiku panela gest v systéme Android Q
Niektorí na XDA si to stále myslia Nové gestá Androidu sú neporiadok, ale osobne si myslím, že sú v pohode. Ak sa však trochu pohráte s novými gestami v systéme Android Q, všimnete si, že panel gest sa nehýbe prstom. Drží sa aj na obrazovkách, kde to nie je potrebné, ako je napríklad domovská obrazovka alebo prehľad nedávnych aplikácií. Allen Huang hovorí že „úplne súhlasia s tým, že existujú príležitosti“, aby bola „navigačná čiara menej statická“. Ďalej hovorí že „je to niečo, na čom pracujeme – ale zároveň to vyvažujeme, aby to nepôsobilo rušivo objaviť/zmiznúť“.
Vylepšenia systému Storage Access Framework
Mnohé zmeny v systéme Android Q výrazne zlepšili bezpečnosť a súkromie platformy. Jedna takáto zmena s názvom „Scoped Storage“ obmedzuje prístup aplikácií k súborom na externom úložisku spôsobom, ktorý dáva zmysel; hudobné aplikácie by napríklad nemali potrebovať vidieť vašu galériu. Aplikácie správcu súborov spustené v systéme Android Q musia používať rozhranie API nazývané Storage Access Framework, aby mohli pokračovať v normálnej činnosti, ale niektorí vývojári považujú toto API za menejcenné k tomu, čo bolo predtým k dispozícii. Jeff Sharkey zo spoločnosti Google hovorí tím riešil niektoré z týchto sťažností vývojárov:
„V najnovších verziách systému Android Q Beta sme urobili niekoľko vylepšení výkonu SAF; mohli by ste porovnať svoje benchmarky s najnovšou beta verziou? Tiež sa uistite, že používate ContentProviderClient pri spúšťaní akýchkoľvek hromadných operácií."
Project Treble zlepšil prijatie Android Pie oproti Androidu Oreo
Už sme videli, ako Project Treble, hlavná nízkoúrovňová prestavba rámca Android, zlepšila prijatie novších verzií OS Android. Google pripisuje spoločnosti Treble za to, že sa pridali predajcovia smartfónov Android P beta minulý rok a Android Q beta tento rok. Iliyan Malchev, vedúci projektu Treble a Hlavná línia inžinier, hovorí že prijatie Android Pie bolo na konci roka 2018 „3-krát“ v porovnaní s Androidom Oreo.
V tom istom komentári Dick Dougherty tvrdí, že v tabuľke distribúcie verzií systému Android sa pripravujú užitočnejšie metriky. Graf bol naposledy aktualizované v máji, ale jeho údaje sú užitočnejšie pre novinárov ako pre vývojárov aplikácií.
Nahrávanie obrazovky je stále WIP
Skoré beta verzie systému Android Q pridali príznak funkcie pre základný záznamník obrazovky, ale samotná platforma výrazne zlepšila užitočnosť záznamu obrazovky umožňuje aplikáciám zachytiť zvuk z iných aplikácií. Stephanie Saad Cuthbertsonová povedala, že tím zvažoval, "ako by sme mohli urobiť lepšie, pokiaľ ide o potreby nahrávania obrazovky ešte včera." Ostatné značky smartfónov ako napr OnePlus, ASUS, Huawei a Samsung majú robustné rekordéry obrazovky, ktoré dokážu zaznamenať interný zvuk, takže Google sa tu bude hrať.
Dark Theme All The Things!
V prípade, že ste to zmeškali, Google pridáva tmavý režim do väčšiny svojich aplikácií. Stephanie Saad Cuthbertson hovorí očakávať, že všetky „hlavné aplikácie“ budú podporovať temnú tému „od oficiálneho vydania [Android Q]“. Dokonca aj Google Chrome, ktorý v súčasnosti vynúti opätovné načítanie stránky, keď je povolená celosystémová tmavá téma, bude aktualizovaný tak, aby sa už neobnovoval, keď je téma zapnutá zmenené.
Áno, spúšťače tretích strán budú fungovať s gestami (nakoniec)
Gestá Androidu sú akési nefunkčné pri použití spúšťača tretej strany. Je to preto, že používateľské rozhranie najnovších aplikácií je obsiahnuté v aplikácii spúšťača akcií, zatiaľ čo Google nie vypracovali spôsob, ako dosiahnuť rovnaké plynulé prechody, aké vidíme pri používaní gest so základným pixelom Spúšťač. Adam Cohen potvrdzuje Google plánuje tieto problémy riešiť „čo najrýchlejšie po vydaní“. Ďalej hovorí, že nekompatibilita "bude vyriešená v aktualizácii po Q a spätne portovaná pre nové zariadenia spustené s Q."
Dynamické/logické oddiely tu nie sú na to, aby zabíjali vlastné ROM
S cieľom podporiť Dynamické aktualizácie systému v systéme Android Q niektoré zariadenia, ako napríklad Google Pixel 3 a Pixel 3 XL, využívajú logické oddiely. Veľkosť týchto oddielov je možné dynamicky meniť. Táto zmena má ukázalo sa, že je náročné zabezpečiť fungovanie rootovského prístupua niektorí vývojári sa obávajú, že sa zameriavajú na vlastné ROM. Iliyan Malchev nás uisťuje, že zámerom nie je obmedziť vlastné ROM. Ako vysvetľuje:
"Dynamické oddiely nie sú určené na to, aby obmedzovali to, čo môžete robiť s vlastnými ROM. Sú jednoducho riešenie problému pevných veľkostí oddielov a nedostatku bezpečného spôsobu prerozdeľovania zariadení OTA. Ak sa pred dynamickými oddielmi výrobca OEM pomýlil pri dimenzovaní napr. systémový oddiel, potom oni by bola obmedzená touto voľbou, takže by bolo prakticky nemožné upgradovať zariadenie po určitom čase bod. Niektorí výrobcovia OEM robia prerozdelenie svojich zariadení na OTA ako vec praxe, ale toto a) nie je oficiálne podporované v systéme Android ab) zmena tabuľky oddielov sa považuje za dosť riskantnú. Dynamické oddiely majú za cieľ zmierniť problém zavedením úrovne presmerovania medzi tabuľkou fyzických oddielov a operačnými systémami. To nám zase umožňuje bezpečne upravovať veľkosti oddielov na OTA. Čo sa týka vlastných ROM, nemali by ste byť o nič viac ako dnes obmedzovaní tým, čo môžete robiť. Podpora vlastných ROM je a bude niečo, čo sa rozhodne umožniť každý jednotlivý OEM."
Hlavná línia projektu – ART modul a dĺžka podpory
Mainline je nová iniciatíva spoločnosti Google, ktorej cieľom je štandardizovať určité knižnice a balíky, aby ich bolo možné aktualizovať nezávisle od aktualizácií platformy. Niektorí sa čudovali, prečo Android Runtime (ART) ešte nie je modul hlavnej línie, ale na Google I/O mi povedali, že zložitosť modularizácie ART im zabránila zaradiť ho ako jeden z počiatočných balíkov APEX. Ako vysvetlil Iliyan Malchev a Diana Wong:
„Vykonávanie aktualizácií modulu Runtime (najmä opravy výkonu a GC a základných knižníc) je určite niečo, čo skúmame v kontexte hlavnej línie. Môžeme vidieť veľa výhod, ktoré prináša možnosť konzistentnosti týchto aktualizácií na všetkých zariadeniach a vo viacerých vydaniach s hlavnou radou. Je to tiež obrovská technická výzva, pretože premýšľame o tom, ako to najlepšie urobiť pre vývojárov, a pravdepodobne ide o viacročné úsilie. Nie je to niečo, čo momentálne môže Mainline urobiť, ale určite o tom uvažujeme."
Ak budete postupovať podľa AOSP Gerrit, uvidíte, že Google aj tak bol tvrdo v práci vytvorenie Runtime APEX. V súčasnosti sa zdá, že sú rozdelenie Bionic a ART/libcore do samostatných modulov APEX.
Pokiaľ ide o prínos Project Mainline, jeden používateľ sa pýtal na dĺžku aktualizácií Mainline. V reakcii na to Iliyan Malchev hovorí že "toto je otázka zásad, ktorú stále vyhodnocujeme, ale chceme aktualizovať moduly hlavnej línie na zariadení tak dlho, ako to bude možné." XDA uznávaný vývojár luca020400 spýtal sa, či budú poskytnuté vopred zostavené moduly hlavnej línie, aby mohli vývojári vlastných ROM zlúčiť aktualizácie, a v reakcii na to Jeff Bailey opakuje že "moduly, ktoré sa oddeľujú od AOSP, budú mať vydania zdroja zodpovedajúce každému vydaniu modulu." Už môžeme vidieť vývoj nových modulov APEX v AOSP, ako je napríklad modul pre API neurónových sietí.
CameraX spĺňa ML Kit
Na tohtoročnom I/O Google predstavil Knižnica CameraX Jetpack. Táto knižnica je navrhnutá tak, aby uľahčila vývojárom podporu rozhrania Android Camera2 API pri zachovaní kompatibility až po Android Lollipop. Vinit Modi dráždi s ktorým spoločnosť pracuje na integrácii CameraX Súprava ML, súpravu Firebase SDK od Googlu pre strojové učenie, takže vývojári môžu vkladať snímky do súpravy ML Kit na analýzu.
Rozšírenia dodávateľa CameraX a dátum vydania
Vývojár aplikácie pre fotoaparát sa sťažuje na skutočnosť, že pokročilé funkcie fotoaparátu, ako je nočné videnie Google Pixel, nie sú dostupné pre aplikácie fotoaparátu tretích strán. Riešiť to majú vraj rozšírenia od dodávateľov CameraX, ku ktorým sa pridal Jeff Sharkey z Google hovorí že „všetky zariadenia Pixel sú optimalizované pre CameraX Core“. Tvrdí, že "aspekt Rozšírenia bude podporovaný na nových a pripravovaných zariadeniach." Okrem toho, Google je "spolupráca s niekoľkými výrobcami, aby sme mohli priniesť možnosti svojich zariadení vývojárom aj používateľom." Aj keď to nie je priamo potvrdené, je možné, že uvidíme funkcie Páči sa mi to Nočný pohľad na Google Pixel 4 budú dostupné pre aplikácie fotoaparátu tretích strán, ktoré používajú knižnicu CameraX.
Pán Sharkey uvádza, že Google plánuje beta verziu na koniec tohto roka.
Vylepšenia správy pamäte v systéme Android Q
Pixel 3 bol kritizovaný za to, že má množstvo problémov po spustení, ale Google urobil veľa na vyriešenie týchto problémov prostredníctvom mnohých aktualizácie po uvedení. Správa pamäte bola jednou z najslabších stránok Pixel 3, ale vo vydaní Android Q by to malo byť o niečo lepšie. Podľa Selima Cinka:
"Napríklad v SystemUI sme mali rôzne veľké refaktoringové snahy v Q, aby sme znížili využitie pamäte RAM upozorneniami a inými povrchmi."
Dočkáme sa konečne bezdrôtového ADB?
Ak chcete bezdrôtovo ladiť telefón, budete musieť rootovať svoje zariadenie. Jamal Eason z tímu Android Studio hovorí že momentálne riešia realizovateľnosť tejto funkcie.
Testuje Google stále na tabletoch?
XDA uznávaný vývojár Luk1337 spýtal, či Google stále testuje AOSP UX na tabletoch. Je to spravodlivá otázka vzhľadom na nedostatok dobrých tabletov s Androidom a prítomné chyby v aktuálnych vydaniach. Allen Huang hovorí že spoločnosť Google stále „každý rok testuje a robí opravy“ a že spoločnosť úzko spolupracuje s partnermi, „aby zabezpečila dobrý zážitok z používania tabletu Android“.
V celom vlákne na Reddite je oveľa viac príspevkov. To, čo som tu uviedol, zhŕňa všetky nové informácie, ktoré sme sa dozvedeli, ale niekoľko zamestnancov spoločnosti Google (obzvlášť Dianne Hackborn) sa zaoberali úvahami o znížení funkcie X alebo neimplementácii Y povolenie. Ak chcete trochu lepšie porozumieť rozhodovaniu tímu Android, odporúčam vám prečítať si celé AMA.
Prečítajte si celé AMA na /r/AndroidDev