Android Q AMA Shrnutí: Co Google řekl o Androidu 10 na Redditu

Inženýři společnosti Google nedávno provedli AMA na Redditu. AMA se týkala beta verze Androidu Q. Zde je shrnutí toho, co jsme se z jejich odpovědí dozvěděli.

V minulém roce uspořádal tým společnosti Google pro Android na subredditu /r/AndroidDev Redditu Ask Me Anything (AMA), kde byly kladeny otázky týkající se Android P Developer Preview. Tento rok inženýrský tým pracující na beta verzi Android Q odpovídal na otázky na Redditu. AMA začalo 1. srpna ve 12:00 PST a skončilo asi o hodinu a půl později. Do AMA se zapojilo 33 inženýrů Google, kteří během krátké doby trvání AMA odpověděli na spoustu otázek. Zde je náš souhrn všech nových informací, které jsme se dozvěděli.

Android Q AMA: Vše, co jsme se naučili od Googlu

Účastníci z týmu Android Q beta

  • Adam Cohen: TLM na Android Launcher / systémové uživatelské rozhraní
  • Adam Powell: TLM v sadě nástrojů/rámci uživatelského rozhraní; zobrazení, životní cyklus, fragmenty, podpora lib
  • Alan Viverette: TLM, Jetpack / AndroidX
  • Allen Huang: PM pro uživatelské rozhraní, spouštěč, oznámení, integrace vyhledávání a další!
  • Andrew Sappirstein: TLM v nastavení systému Android
  • Brahim Elbouchikhi: PM Director for Android Machine Learning and Camera (NN API, ML Kit, CameraX, Camera Platform)
  • Chad Brubaker: Softwarový inženýr, zabezpečení platformy Android
  • Charmaine D'Silva: PM pro soukromí
  • Chet Haase: Hlavní advokát systému Android, vztahy s vývojáři
  • Diana Wongová: PM, kompatibilita aplikací, použití rozhraní API bez SDK, ART, NDK
  • Dianne Hackbornová: Manažer týmu frameworku Android (zdroje, správce oken, správce činností, více uživatelů, tisk, usnadnění atd.)
  • E.K. Chung: Ředitel UX
  • Ian Lake: Softwarový inženýr, Jetpack (Fragmenty, Navigace, Komponenty architektury)
  • Iliyan Malchev: Hlavní softwarový inženýr, Project Mainline
  • Jacob Lerbaum: Ředitel pro vztahy s vývojáři pro Android
  • Jake Wharton: softwarový inženýr, Jetpack
  • Jamal Eason: PM, Android Studio
  • Jeff Bailey: TLM, Android Open Source Project (AOSP)
  • Jeff Sharkey: Softwarový inženýr, Android Framework
  • Jeffrey van Gogh: Android Studio, kompilátory
  • Jen Chai: PM, umístění a kontext, ověření, automatické vyplňování, použití jiného než SDK API, ART
  • Karen Ng: Group PM for Android Developer Tools, Android Studio, Android Tookit a Jetpack
  • Paul Bankhead: Ředitel produktového managementu, Google Play
  • Rohan Shah: Produktový manažer, uživatelské rozhraní systému Android
  • Romain Guy: Manažer týmu Android Toolkit/Jetpack
  • Sagar Kamdar: Ředitel produktového managementu, Android
  • So K: Ředitel inženýrství, Android Connectivity
  • Selim Cinek: Softwarový inženýr, uživatelské rozhraní systému Android
  • Stephanie Saad Cuthbertsonová: Senior Director of Product Management, Android
  • Sumir Kataria: Softwarový inženýr, Jetpack (WorkManager)
  • Travis McCoy: PM, platforma Android
  • Trystan Upstill: Významný inženýr, vedoucí pro uživatelské rozhraní a inteligenci systému Android
  • Vinit Modi: PM, fotoaparát Android

Přečtěte si více

Výrobci OEM již nemohou zabíjet aplikace, když je uživatel v poslední době odtáhne

Pokud jste někdy používali smartphone od čínské značky, pak jste pravděpodobně řešili nepříjemné funkce „optimalizace baterie“, které zabít všechny své oblíbené aplikace na pozadí. Nejen, že je toto chování nepříjemné pro uživatele, kteří očekávají, že některé aplikace budou z jakéhokoli důvodu nadále běžet na pozadí, ale je to také nepříjemné pro vývojáře, kteří musí trpět špatnými recenzemi od uživatelů, kteří nechápou, že to není aplikace chyba. Zatímco Google ano ještě pořád plně neřeší tuto záležitost (odmítli problém tím, že uvedli, že toto chování je pravděpodobně již v rozporu s požadavky dokumentu Definice kompatibility systému Android). je podniknout akci proti jedné změně chování „úspory baterie“, kterou používají někteří výrobci OEM.

"Abychom situaci pomohli vyřešit, přidali jsme test CTS v Android Q, abychom zajistili, že aplikace nebude zabita při přetažení z Nedávných."

Android R může přinést více změn na snímcích obrazovky, než jsme čekali

Google plánuje přidat posouvání snímků obrazovky v Android R, ale zároveň, Android tým je "Podrobně se podíváme na to, jak [mohou] zlepšit zážitek z celé obrazovky [X] pro R." Takže můžeme podívejte se na další vylepšení chování snímku obrazovky (A screencast) v další hlavní verzi systému Android.

Objasnění nového režimu plochy Android Q

The první veřejná beta verze Android Q přinesl skryté rozhraní režimu plochy pro AOSP a Pixel Launcher. I když Google se krátce dotkl funkce během relace Google I/O jsme nikdy přímo od Googlu neslyšeli, jak nová funkce zapadá do ekosystému Androidu. Google nyní objasňuje:

„V Q AOSP je ‚desktop mode‘ možnost pro vývojáře určená pro vývojáře aplikací. Umožňuje jim otestovat své aplikace v prostředích s více displeji a v režimu volného okna. Dříve neexistoval žádný pohodlný způsob, jak otestovat chování aplikace na sekundárním displeji a s volně měnitelnými okny na Androidu. Tato funkce se nevyrábí samostatně a v současné době není určena pro běžné uživatele. Nicméně je to základní linie platformy Android pro OEM, aby mohli inovovat a vyrábět skvělé produkty.“

Můžeme tedy očekávat, že OEM budou stavět na nativním desktopovém režimu Androidu Q. Například, OnePlus 7 Pro podporuje zobrazení přes HDMI, takže je to možné OxygenOS 10 založený na Androidu Q bude mít v budoucnu své vlastní rozhraní režimu pracovní plochy. Také doufáme, že Google na této funkci naváže i pro nadcházející období Pixel 4.

Tmavý režim založený na čase

Android Q konečně přináší široce žádanou funkci: celosystémový tmavý režim. V současné době lze tmavý režim povolit buď ručně v Nastavení nebo prostřednictvím dlaždice Rychlé nastavení, nebo jej lze aktivovat automaticky, když je aktivován spořič baterie. Před Androidem Q existovala možnost povolit tmavý režim na základě denní doby, ale tato možnost byla zastaralá. Podle Chrise Banese:

"Existuje několik důvodů, proč je tato podpora v AppCompat v1.1.0 zastaralá (ne odstraněna): vyžaduje aplikace, aby požadovaly přesná oprávnění k poloze a dokonce i s platnou polohou mohou být výpočty času východu/západu slunce kočárek."

Když se pan Banes zeptal na tyto chyby, uvedl, že „výpočet východu/západu slunce je notoricky obtížný, zvláště pro místa blízko severní/jižní pól." Uživatel vyvolá, že noční světlo, dostupné od Androidu 7.1 Nougat, lze automaticky přepínat podle západu/východu slunce jízdní řády. Pan Banes pak uvádí, že od Night Light používá CalendarAstronomer from JIP4J, používá "velký kus kódu, na kterém bychom nechtěli, aby byl AppCompat závislý." Tým však ano Stát že tato funkce je „něco, co [oni] budou zkoumat“.

Povinná podpora Camera2 API/Camera HAL3 pro spouštěcí zařízení Android Q

Google představil Camera2 API, aby lépe definoval, jak mohou aplikace interagovat s jednotlivými kamerami připojenými k vašemu smartphonu. Zatímco Google povzbuzuje prodejci chytrých telefonů, aby „vystavili všechny své fyzické kamery vývojářům“, mnoho prodejců se rozhodlo tak neučinit, i když „samotné API není dnes jim předcházíme." To znamená, že mnoho aplikací pro fotoaparáty třetích stran nemůže používat moduly sekundárních nebo terciárních fotoaparátů na moderních chytré telefony. S tím, jak se Android Q zlepšil, však dochází k pokroku LOGICAL_MULTI_CAMERA, API, které poskytuje vývojářům lepší přístup ke všem kamerám na zařízení a které dává OEM výrobcům kontrolu nad spotřebou energie a správou různých stavů kamer.

Kromě toho Google říká, že přidal požadavky pro všechna zařízení se systémem Android Q, aby nativně podporovala Camera2 API/Camera HAL3. Podle Vinita Modiho:

„Počínaje systémem Android P jsou pro nativní použití HALv3/kamera2 vyžadována nová zařízení dodávaná s 1 GB nebo více RAM. Android Q a novější všechna nová zařízení musí nativně podporovat HALv3/kamera2. Bohužel upgrady z HALv1 na HALv3 jsou poměrně složité vzduchem a mohou mít neočekávané důsledky, proto jsme museli omezit rozsah na nová zařízení."

Zajímavé je, že Modiho prohlášení o běžných spouštěcích zařízeních RAM Android P odporuje co nám dříve řekl Google a co je zveřejněno na stránce Image Test Suite online.

Dynamické téma aplikace s Jetpack Compose

Tématický rámec Sony OMS byl přidán do AOSP před několika verzemi, ale je to jen určeno pro OEM stavět na. To už víme Google je proti použití překryvů runtime zdrojů uživateli do tematických aplikací, ale pro vývojáře je to společnost doufat že jeho Uživatelské rozhraní Jetpack Compose rámec přinese "zajímavé přístupy k dynamickému námětu."

Vulkan-backend pro Skia k vykreslení uživatelského rozhraní

Minulý rok, zaznamenali jsme diskusi mezi inženýry Google mluví o svých plánech, aby rámec Androidu používal grafické rozhraní API Vulkan pro vykreslování uživatelského rozhraní. I když je nyní možné povolit hardwarově akcelerovaný backend Vulkan bez vašeho telefonu neslyšeli jsme od Googlu žádné konkrétní plány o tom, kdy je plánují uvést na trh Změny. Toto AMA na tuto otázku neodpovídá, ale alespoň máme potvrzení, že se na něm stále pracuje. Podle Romaina Guye:

„Tým pracoval na backendu Vulkan pro Skia, 2D renderer používaný Androidem, ale momentálně není ve výchozím nastavení povolen. UI a Canvas stále procházejí OpenGL ES."

Panel gest Android Q je dynamičtější

Někteří na XDA si to stále myslí Nová gesta Androidu jsou nepořádek, ale osobně si myslím, že jsou v pohodě. Pokud si trochu pohrajete s novými gesty v Androidu Q, všimnete si, že se pruh gest nepohybuje prstem. Drží se také na obrazovkách, kde to není potřeba, jako je domovská obrazovka nebo přehled posledních aplikací. Allen Huang říká že „naprosto souhlasí s tím, že existují příležitosti“, jak učinit „navigační linku méně statickou“. Dále říká že „je to něco, na čem pracujeme – ale také vyvažování, aby to nebylo rušivé objevují/mizí."

Vylepšení rozhraní Storage Access Framework

Mnoho změn v Androidu Q výrazně zlepšilo zabezpečení a soukromí platformy. Jedna taková změna, nazvaná „Scoped Storage“, omezuje přístup aplikací k souborům na externím úložišti způsobem, který dává smysl; hudební aplikace by například neměly potřebovat vidět vaši galerii. Aplikace správce souborů spuštěné v Androidu Q musí používat rozhraní API nazývané Storage Access Framework, aby mohly fungovat jako normálně, ale někteří vývojáři vidí toto API jako podřadné k tomu, co bylo dříve k dispozici. Jeff Sharkey z Google říká tým se zabýval některými z těchto stížností vývojářů:

„V nejnovějších verzích Android Q Beta jsme provedli určitá vylepšení výkonu SAF; mohl byste porovnat své benchmarky s nejnovější beta verzí? Při provádění hromadných operací se také ujistěte, že používáte ContentProviderClient."

Project Treble zlepšil přijetí Android Pie oproti Androidu Oreo

Již jsme viděli, jak Project Treble, hlavní nízkoúrovňová rearchitektura rámce Android, zlepšila přijetí novějších verzí OS Android. Google připisuje společnosti Treble zásluhy za zabití prodejců chytrých telefonů, kteří se připojili k Android P beta minulý rok a Android Q beta tento rok. Iliyan Malchev, vedoucí projektu Treble a Hlavní linie inženýr, říká že přijetí Android Pie bylo na konci roku 2018 „3krát“ než Android Oreo.

Ve stejném komentáři Dick Dougherty tvrdí, že pro graf distribuce verzí Androidu se pracuje na užitečnějších metrikách. Graf byl poslední aktualizace v květnu, ale jeho data jsou užitečnější pro novináře než pro vývojáře aplikací.

Nahrávání obrazovky je stále WIP

První beta verze systému Android Q přidaly příznak funkce pro základní záznamník obrazovky, ale samotná platforma výrazně zlepšila užitečnost záznamu obrazovky umožňuje aplikacím zachytit zvuk z jiných aplikací. Stephanie Saad Cuthbertson řekla, že tým zvažoval, "jak bychom mohli udělat lépe, pokud jde o potřeby nahrávání obrazovky ještě včera." Ostatní značky smartphonů jako OnePlus, ASUS, Huawei a Samsung mají robustní rekordéry obrazovky, které dokážou nahrávat interní zvuk, takže zde bude Google dohánět.

Dark Theme All The Things!

Pokud jste to přehlédli, Google přidává tmavý režim do většiny svých aplikací. Stephanie Saad Cuthbertsonová říká očekávat, že všechny „hlavní aplikace“ budou podporovat temné téma „od oficiálního vydání [Android Q]“. Dokonce i Google Chrome, který aktuálně vynutí opětovné načtení stránky, když je povoleno tmavé téma v celém systému, bude aktualizováno, aby se již neobnovovalo, když je motiv změněno.

Ano, spouštěče třetích stran budou fungovat s gesty (nakonec)

Gesta Androidu jsou svým způsobem nefunkční při použití spouštěče třetí strany. Důvodem je to, že uživatelské rozhraní nedávných aplikací je obsaženo v aplikaci pro spouštění akcií, a Google zatím ne vymysleli způsob, jak mít stejné plynulé přechody, jaké vidíme při používání gest u sériového Pixelu Spouštěč. Adam Cohen potvrzuje Google plánuje tyto problémy vyřešit „co nejrychleji po vydání“. Dále to říká nekompatibilita "bude vyřešena v aktualizaci po Q a zpětně portována pro nová zařízení spouštěná s Q."

Dynamické/logické oddíly zde nejsou proto, aby zabíjely vlastní ROM

Abychom podpořili Dynamické aktualizace systému v systému Android Q některá zařízení jako Google Pixel 3 a Pixel 3 XL využívají logické oddíly. Velikost těchto oddílů lze dynamicky měnit. Tato změna má ukázalo se, že je náročné zajistit fungování rootovského přístupua někteří vývojáři se obávají, že jsou cíleny na vlastní ROM. Iliyan Malchev nás ujišťuje, že záměrem není omezovat vlastní ROM. Tak jako vysvětluje:

"Dynamické oddíly nejsou určeny k tomu, aby omezovaly, co můžete dělat s vlastními ROM. Jsou to prostě řešení problému pevných velikostí oddílů a nedostatku bezpečného způsobu přerozdělování zařízení OTA. Pokud před dynamickými oddíly výrobce OEM udělal chybu při dimenzování, např. systémový oddíl, pak oni by bylo omezeno touto volbou, takže by bylo prakticky nemožné upgradovat zařízení po určité době směřovat. Někteří výrobci OEM dělají svá zařízení na OTA jako věc praxe, ale to a) není oficiálně podporováno v Androidu ab) změna tabulky oddílů je považována za poměrně riskantní. Dynamické oddíly mají za cíl zmírnit problém zavedením úrovně nepřímosti mezi tabulkou fyzických oddílů a operačními systémy. To nám zase umožňuje bezpečně upravovat velikosti oddílů na OTA. Pokud jde o vlastní ROM, neměli byste být o nic více omezováni tím, co můžete dělat, než jste dnes. Podpora vlastních ROM je a nadále je něco, co se každý OEM rozhodne umožnit."

Hlavní řada projektu – ART modul a délka podpory

Mainline je nová iniciativa společnosti Google, jejímž cílem je standardizovat určité knihovny a balíčky, aby mohly být aktualizovány nezávisle na aktualizacích platformy. Někteří se divili, proč Android Runtime (ART) ještě není hlavním modulem, ale na Google I/O mi bylo řečeno, že složitost modularizace ART jim zabránila zahrnout jej jako jeden z počátečních balíčků APEX. Tak jako vysvětlil Iliyan Malchev a Diana Wong:

„Provádění aktualizací modulu Runtime (zejména opravy výkonu a GC a základních knihoven) je rozhodně něco, co zkoumáme v kontextu hlavní řady. Můžeme vidět mnoho výhod plynoucích z toho, že tyto aktualizace budou konzistentní na všech zařízeních a ve více verzích s hlavní řadou. Je to také obrovská technická výzva, protože přemýšlíme o tom, jak to nejlépe udělat pro vývojáře, a pravděpodobně to bude mnohaleté úsilí. Není to něco, co by Mainline v současné době dokázala, ale určitě něco, o čem přemýšlíme."

Pokud budete postupovat podle AOSP Gerrit, uvidíte, že Google přesto byl těžko v práci vytvoření Runtime APEX. V současné době se zdá, že jsou rozdělení Bionic a ART/libcore do samostatných modulů APEX.

Pokud jde o přínos Project Mainline, jeden uživatel se zeptal na délku aktualizací Mainline. V reakci na to Iliyan Malchev říká že "toto je otázka zásad, kterou stále vyhodnocujeme, ale chceme aktualizovat moduly hlavní řady na zařízení tak dlouho, jak to bude možné." XDA uznávaný vývojář luca020400 dotazoval se, zda budou poskytnuty předpřipravené moduly hlavní řady, aby mohli vývojáři vlastní ROM sloučit aktualizace, a v reakci na to Jeff Bailey opakuje že "moduly, které se oddělují od AOSP, budou mít vydání zdroje odpovídající každému vydání modulu." Již můžeme vidět vývoj nových modulů APEX v AOSP, jako je jeden pro API neuronových sítí.

CameraX splňuje ML Kit

Na letošním I/O Google představil Knihovna CameraX Jetpack. Tato knihovna je navržena tak, aby vývojářům usnadnila podporu rozhraní Android Camera2 API při zachování kompatibility až po Android Lollipop. Vinit Modi škádlí se kterým společnost pracuje na integraci CameraX ML sada, Google Firebase SDK pro strojové učení, takže vývojáři mohou vkládat snímky do ML Kitu pro analýzu.

Rozšíření dodavatele CameraX a datum vydání

Vývojář aplikace pro fotoaparát si stěžuje na skutečnost, že pokročilé funkce fotoaparátu, jako je Night Sight Google Pixel, nejsou přístupné aplikacím pro fotoaparáty třetích stran. To má být řešitelné s rozšířením dodavatele CameraX, ke kterému se postavil Jeff Sharkey z Googlu říká že "všechna zařízení Pixel jsou optimalizována pro CameraX Core." Uvádí, že "aspekt rozšíření bude podporován na nových a připravovaných zařízeních." Kromě toho je Google "Spolupráce s několika výrobci, abychom mohli přinést možnosti jejich zařízení vývojářům i uživatelům." I když to není přímo potvrzeno, je možné, že uvidíme funkce jako Noční pohled na Google Pixel 4 budou dostupné pro aplikace fotoaparátů třetích stran, které používají knihovnu CameraX.

Pan Sharkey uvádí, že Google se zaměřuje na beta verzi na konec tohoto roku.

Vylepšení správy paměti v systému Android Q

Pixel 3 byl kritizován za to, že má mnoho problémů po spuštění, ale Google udělal mnoho pro vyřešení těchto problémů prostřednictvím mnoha aktualizace po uvedení. Správa paměti byla jednou z nejslabších stránek Pixelu 3, ale ve verzi Android Q by to mělo být o něco lepší. Podle Selima Cinka:

"Například v SystemUI jsme měli různé velké refaktoringové snahy v Q, abychom snížili využití RAM notifikací a dalších povrchů."

Dočkáme se konečně bezdrátového ADB?

Pokud chcete bezdrátově ladit svůj telefon, budete muset zařízení rootovat. Jamal Eason z týmu Android Studio říká že aktuálně řeší proveditelnost této funkce.

Testuje Google stále na tabletech?

XDA uznávaný vývojář Luk1337 zeptal se, zda Google stále testuje AOSP UX na tabletech. Je to spravedlivá otázka vzhledem k nedostatek dobrých tabletů Android a přítomny chyby v aktuálních vydáních. Allen Huang říká že Google stále „každý rok testuje a opravuje“ a že společnost úzce spolupracuje s partnery, „aby zajistila dobrou zkušenost s tabletem Android“.


V celém vláknu na Redditu je mnohem více příspěvků. To, co jsem zde uvedl, shrnuje všechny nové informace, které jsme se dozvěděli, ale několik zaměstnanců společnosti Google (zejména Dianne Hackborn) se zabývají svými úvahami o snížení funkce X nebo neimplementaci Y povolení. Pokud chcete trochu lépe porozumět rozhodování týmu Android, doporučuji vám přečíst si celý AMA.

Přečtěte si úplné AMA na /r/AndroidDev