Android 11 AMA: Žiadne posúvanie snímok obrazovky, rýchlejšie spúšťanie aplikácií a ďalšie

Tím inžinierov pre Android spoločnosti Google usporiadal AMA na Reddite, aby odpovedal na otázky týkajúce sa Androidu 11. Tu je to, čo sme sa dozvedeli o ďalšej verzii operačného systému Android.

Včera spoločnosť Google zverejnila Android 11 Beta 2, ktorá prináša dokončenú súpravu SDK, NDK, povrchy orientované na aplikácie, správanie platforiem a obmedzenia týkajúce sa rozhraní bez súpravy SDK pre vývojárov. Dnes Google odpovedá na otázky súvisiace s Androidom 11 v komunite /r/AndroidDev Reddit po zadaní otázok minulý týždeň. Tu je súhrn všetkého, čo sme sa naučili od Google AMA (Ask Me Anything).

Jedna z najočakávanejších funkcií Androidu 11 nebude dostupná, keď bude OS končí beta 8. septembra: Posúvanie snímok obrazovky. Na začiatku plánované spustenie v systéme Android 11, Google teraz potvrdil, že funkcia "nepresadila R." Android 11 Developer Preview 1 a všetky nasledujúce vydania DP a Beta majú zástupné tlačidlo na vytvorenie rolovacej snímky obrazovky, ktorá môže byť manuálne vynorené pomocou skrytého príkazu vývojára

, ale ťuknutím na tlačidlo sa jednoducho zobrazí prípitková správa o tom, že funkcia „nie je implementovaná“.

Neimplementované posúvacie tlačidlo snímky obrazovky systému Android 11.

Dúfali sme, že táto funkcia sa dostane do beta alebo dokonca len stabilného vydania, ale zdá sa, že sa to jednoducho nestane.

Komentujte z diskusie. Sme v tíme inžinierov pre Android. Opýtajte sa nás na čokoľvek o aktualizáciách systému Android 11 na platforme Android! (začína 9. júla).

Táto správa bude pochopiteľne pre niektorých používateľov nepríjemná. Koniec koncov, mnohí výrobcovia OEM majú túto funkciu vo svojom vlastnom softvéri už roky, tak prečo Googlu trvá tak dlho, kým ju pridá do telefónov Pixel? Ako vysvetlil Dan Sandler z tímu Google pre systémové používateľské rozhranie, problém je v tom, že Google to chce urobiť správne. Niektoré implementácie snímok obrazovky s rolovaním jednoducho napodobňujú rolovanie a potom pri pohybe obrazovky spájajú viacero snímok obrazovky. Ak ste sa niekedy zaoberali automatizáciou používateľského rozhrania na Androide, budete vedieť, že to nie vždy funguje, keďže, ako spomína pán Sandler, aplikácie môže použiť „recyclerView štandardu v bažine alebo implementovať svoj vlastný rolovací engine s akceleráciou OpenGL.“ Keďže Google plánuje implementovať túto funkciu nielen pre smartfóny Pixel, ale pre celý ekosystém Android ako súčasť AOSP, musia sa uistiť bude to fungovať všetky aplikácie a nielen „jednu alebo dve ručne vybrané aplikácie na konkrétnom zariadení“.

Pretože tím musel „zamerať [svoje] obmedzené zdroje“, najmä kvôli výzvam, ktoré so sebou prinášali do COVID-19 sa tím rozhodol vložiť rolovacie snímky obrazovky na backburner pre budúce vydanie systému Android.

Nová požiadavka CDD informovať používateľov o obmedzeniach na pozadí

Nie je žiadnym tajomstvom, že veľa výrobcov Androidu, najmä čínskych, má agresívne obmedzenia na aplikácie bežiace na pozadí. Niektorých vývojárov tak frustrovalo zabíjanie ich aplikácií na pozadí, že sa spojili a vytvorili webovú stránku s názvom „Don't Kill My App" na zoradenie výrobcov OEM podľa toho, ako zle zvládajú procesy aplikácií na pozadí. Tí istí vývojári dokonca nedávno urobil benchmark takže používatelia môžu otestovať, ako agresívne ich zariadenie zabíja aplikácie na pozadí. Dôvod, prečo mnohí výrobcovia OEM radi zabíjajú procesy aplikácií na pozadí, je komplikovaný, ale myslím si, že to najlepšie vysvetľuje tento komentár od Redditor /u/možno spochybniteľné. Komentár načrtáva komplikovaný stav vývoja aplikácií pre Android v Číne, ako čínske technologické spoločnosti sa podieľajú na ďalšom skomplikovaní vecí a ako k tomu prispieva nedostatok služieb Google neporiadok.

Bez ohľadu na to je mnoho vývojárov aplikácií pochopiteľne frustrovaných týmito vylepšeniami správania platformy Android, čo viedlo k tomu, že vývojári poslali komentár pýtať sa Google, čo s tým robia na vrchol Reddit AMA. Tu je odpoveď Google:

Komentujte z diskusie. Sme v tíme inžinierov pre Android. Opýtajte sa nás na čokoľvek o aktualizáciách systému Android 11 na platforme Android! (začína 9. júla).

Z tejto odpovede si treba odniesť niekoľko vecí. Po prvé, Google chce, aby výrobcovia OEM boli voči používateľom transparentnejší, pokiaľ ide o obmedzenia aplikácií na pozadí, ktoré uplatňujú. Skontroloval som (nevydaný) dokument s definíciou kompatibility systému Android 11 (CDD) a našiel som nasledujúci navrhovaný doplnok k časti 3.5 – Kompatibilita správania API:

Ak implementácie zariadení implementujú vlastný mechanizmus na obmedzenie aplikácií a tento mechanizmus je reštriktívnejší ako „Zriedkavý“ pohotovostný segment na AOSP, potom:

[C-1-5] MUSÍ informovať používateľov, ak sa obmedzenia aplikácie aplikujú na aplikáciu automaticky. (NOVINKA) Takéto informácie MUSIA byť poskytnuté najskôr 24 hodín pred uplatnením takýchto obmedzení.

(Poznámka) Vynútené zastavenie sa považuje za reštriktívnejšie ako „Zriedkavé“ a MUSÍ spĺňať všetky požiadavky podľa 3.5.1 vrátane nového 3.5.1/C-1-5

Google v podstate nie je moc na to, aby zabránil výrobcom OEM implementovať ich vlastné obmedzujúce funkcie zabíjania aplikácií. Požadujú len, aby výrobcovia OEM informovali používateľov, ak sa automaticky uplatňujú obmedzenia ich aplikácie. OEM môže zobraziť dialógové okno, že zastaví spustenie aplikácií na pozadí, ktoré vysávajú batériu na pozadí a používateľ môže súhlasiť bez toho, aby si uvedomil, aké aplikácie skutočne chcú spúšťať na pozadí postihnutý! Google kladie na vývojárov bremeno, aby riešili prípady, keď je ich aplikácia nečakane zabitá na pozadí. Komentár na Reddit skutočne zdôrazňuje nový „dôvody ukončenia procesu aplikácie" API, ktoré môže vývojárom povedať, či ich aplikáciu zabil používateľ, operačný systém, alebo či jednoducho spadla.

Na druhej strane, Google konečne rieši nekalé praktiky OEM, ktoré umožňujú niektorým privilegovaným aplikáciám obchádzať ich obmedzenia aplikácií na pozadí. Toto médium príspevok od vývojára Timothy Asiimwe podrobne popisuje aplikácie ako WhatsApp, Facebook a ďalšie aplikácie, ktoré sú automaticky vyňaté z prísnych obmedzení na pozadí niektorých OEM softvéru. Google tvrdí, že „vyžadujú, aby výrobcovia zariadení nevytvárali zoznamy povolených pre najlepšie aplikácie“. Nevieme, ako sa to bude presadzovať, ale je dobré vedieť, že výrobcovia OEM budú konečne nútení zaobchádzať s vývojármi tretích strán rovnako – bez ohľadu na to, aké veľké alebo malé sú ich aplikácie sú.

Nakoniec Google tiež spomína, ako Android 11 „pridal ďalšie opatrenia na zabránenie zneužívaniu aplikácií nesprávnym správaním“, vďaka čomu je pre výrobcov OEM menej lákavé agresívne zabíjať procesy na pozadí. Čo však tieto „opatrenia navyše“ obnášajú, spoločnosť bližšie nešpecifikovala.

Vylepšené zálohy medzi zariadeniami

Minulý mesiac sme si všimli zmenu v dokumentácii k Androidu 11 naznačil podporu pre lepšie lokálne zálohovanie dát. V systéme Android 11 bude systém ignorovať atribút allowBackup Manifest pre každú aplikáciu, ktorá je zacielená na úroveň API 30, keď používateľ spustí migráciu súborov aplikácie „zo zariadenia na zariadenie“. Zamestnanec spoločnosti Google Eliot Stock hovorí, že táto funkcia má výrobcom telefónov „veľmi uľahčiť vytváranie nástrojov na migráciu medzi zariadeniami“, ako je napríklad „vynikajúci produkt Smart Switch od spoločnosti Samsung“. pomôcť „zabezpečiť spoľahlivejší prenos aplikácií medzi zariadeniami z pohľadu používateľa“. Žiaľ, toto sa netýka zálohovania v cloude, pretože Google chce „poskytnúť vývojárom softvéru kontrolu nad tým, čo sa stane s údajmi ich aplikácií." Android 11 ako taký bude stále rešpektovať atribút allowBackup pre akékoľvek zálohovanie a obnovenie v cloude, napríklad prostredníctvom vstavaného Disku Google služby Google Play. zálohovanie. A nakoniec, Google uznáva, že 25 MB zálohy na aplikáciu nemusí niektorým vývojárom stačiť, takže hľadajú spôsoby, ako to vyriešiť. O lokálnych zálohách do počítača sa však neuvažuje a Google svoj plán opakuje vyraďte zálohovanie adb v budúcom vydaní systému Android.

Komentujte z diskusie. Sme v tíme inžinierov pre Android. Opýtajte sa nás na čokoľvek o aktualizáciách systému Android 11 na platforme Android! (začína 9. júla).

Vývojárom sa odporúča implementovať metódy migrácie dát bez trenia. The nová knižnica Block Store, ktorý je súčasťou knižnice Google Identity Services Library, je navrhnutý tak, aby uľahčil prihlásenie do obnovených aplikácií z cloudu na nových zariadeniach, ale je na vývojároch, aby sa rozhodli, či to chcú alebo nechcú implementovať knižnica.

Rýchlejšie spustenie aplikácie s procesom I/O Read Ahead (IORap)

Google neustále experimentuje so spôsobmi, ako zlepšiť výkon v systéme Android. Jedna z málo známych funkcií, ktoré pridali do systému Android 10, sa nazýva Unspecialized App Process Pool (USAP). Táto funkcia eliminuje rozvetvenie Zygote počas procesu spúšťania aplikácie, čím ušetrí približne ~5 ms priemernej rýchlosti spúšťania aplikácie na zariadení Pixel 2. Funkcia je momentálne v predvolenom nastavení zakázaná v AOSPa Google vysvetľuje, že využitie pridanej pamäte ešte potrebuje testovanie. Čo je však zaujímavejšie, je nová funkcia prichádzajúca do systému Android 11 s názvom I/O Read Ahead Process (IORap). Podľa Google, táto funkcia povedie k „o viac ako 5 % rýchlejším studeným štartom, pričom prípady hrdinov dosiahnu o 20 % rýchlejšie“. Táto funkcia „predbežne načíta artefakty aplikácií (ako kód a zdroje) počas procesu spúšťania“, aby sa urýchlilo spustenie aplikácie rýchlosti.

Google tiež „vylepšil profily používané na optimalizáciu cesty zavádzacej triedy a obrazu systému“ čo zlepší výkon aplikácie a zníži náklady na pamäť a úložisko spojené so systémom artefakty. Tieto zmeny budú väčšinou prínosom pre zariadenia s väčším množstvom pamäte RAM, hoci spoločnosť Google neuviedla, aký je limit, v ktorom uvidíme najviac výhod.

Zmeny Scoped Storage systému Android 11 – Prečo je prístup k /sťahovaniu obmedzený?

Aplikácie, ktoré sú zacielené na Android 11 a používajú zámer ACTION_OPEN_DOCUMENT_TREE na vyžiadanie prístupu ku konkrétnym adresárom na externom úložisko už nebude môcť žiadať používateľov o prístup do koreňového adresára externého úložiska (/data/media/{user}). adresár (/data/media{user}/Download) alebo ktorýkoľvek z dátových adresárov špecifických pre aplikáciu na externom úložisku (/Android/data alebo /Android/obb). Prečo je prístup do adresára Download obmedzený? Podľa štatistík Google Play aplikácia Roxanna Aliabadi, je to preto, že priečinok sťahovania „je najviac ohrozený tým, že obsahuje súkromné ​​informácie“. Napríklad používatelia, ktorí si stiahnu svoju daň vrátenia alebo bankové výpisy by sa nemali obávať možnosti aplikácií zneužívať ich nepretržitý prístup na čítanie adresár. Google hovorí, že nástroj na výber dokumentov bude mať „aktualizovaný text...na označenie toho, že Android obmedzil určité priečinky aby boli vybrané." Dúfame, že to zníži nejasnosti ohľadom toho, prečo nemôžu aplikáciám udeliť prístup k určitým adresárom už viac.

Ďalšie informácie o nadchádzajúcich zmenách pravidiel Scoped Storage a Play pozrite si tento článok.

Rôzne témy

  • Postoj Google k rootovaniu/modifikácii
    • Jeff Bailey z tímu AOSP spoločnosti Google opakuje postoj spoločnosti k podpore výberu. Google bude „naďalej zabezpečovať, aby bolo možné upravovať/rootovať zariadenia radu Pixel“, ale bude tiež „podporovať voľbu výrobcov OEM nepovoliť ich zariadeniam Google okrem toho dáva vývojárom softvéru možnosť „nepovoliť spustenie ich softvéru na zakorenených zariadeniach“ v súvislosti s nedávnymi zmenami v detekcia softvérovej manipulácie v SafetyNet Attestation API.
  • Čo sa stalo s „otvorením a nastavením na predvolené“?
    • Vytvorený Android 10 je trochu otravné nastaviť aplikáciu ako predvolený obslužný program pre konkrétne odkazy, čo sa podľa spoločnosti Google uskutočnilo na ochranu používateľov pred „vykorisťovateľskými aplikáciami“. Google ustúpil na tejto zmene po jej prehodnotení a vykonaní „niekoľkých zmien v zákulisí“ na ochranu používateľa.
  • Používate rozhranie Vulkan Graphics API na vykreslenie používateľského rozhrania?
    • Google nakoniec plánuje použiť Vulkan Graphics API na vykreslenie používateľského rozhrania, čo prinesie určité vylepšenia výkonu. Toto je stále sa vyhodnocuje, ale spoločnosť nemala žiadne podrobnosti, o ktoré by sa mohla podeliť.
  • Na mnohých zariadeniach chýba služba CallScreeningService
    • Aplikácie pre Android môžu implementovať CallScreeningService API zachytiť nové prichádzajúce a odchádzajúce hovory, čo im umožní identifikovať volajúceho a buď prijať alebo odmietnuť hovor. Hoci ide o oficiálne zdokumentované API, podľa vývojára /u/ zjavne existuje veľa výrobcov OEM, ktorí ho neimplementujú správne_zeromod_. Google potvrdzuje že toto API je overené Compatibility Test Suite (CTS), automatizovaným testovacím balíkom, ktorým musia prejsť všetky zariadenia, aby boli považované za kompatibilné so systémom Android. Z akéhokoľvek dôvodu sa toto rozhranie API pri volaní na zariadeniach od výrobcov OEM ako Huawei, Vivo, Xiaomi alebo Samsung vráti na hodnotu null, takže je pravdepodobné, že títo výrobcovia OEM majú chybu vo svojom softvéri.
  • Žiadne plány na rámec audio doplnkov
    • Vývojár sa spýtal spoločnosti Google, či plánujú implementovať rámec zvukových doplnkov, ako sú zvukové jednotky spoločnosti Apple, ale odpoveď je nepravdepodobné, že sa to stane v blízkej budúcnosti.

Môžete si prečítať všetky odpovede od tímu inžinierov systému Android tu. Tím v niekoľkých komentároch hovorí trochu o Jave, Kotline, zostavovacom systéme Android, CameraX API a ďalších témach. Existuje tiež niekoľko komentárov k Wear OS, Android TV a Android Auto, ale Google to väčšinou opakuje ich existujúcu prácu na týchto platformách a hovorí vývojárom, aby zostali naladení na ďalšie informácie počas tohto obdobia "Android Beyond Phones“ týždeň od 10. augusta.