„Google“ „Android“ inžinierių komanda „Reddit“ surengė AMA, kad atsakytų į klausimus apie „Android 11“. Štai ką sužinojome apie kitą „Android“ OS versiją.
Vakar „Google“ išleido Android 11 Beta 2, pateikiant užbaigtus SDK, NDK, programoms skirtus paviršius, platformos veikimą ir apribojimus ne SDK sąsajoms kūrėjams. Šiandien „Google“ atsako į klausimus, susijusius su „Android 11“, „Reddit“ /r/AndroidDev bendruomenėje praėjusią savaitę uždavus klausimus. Štai santrauka visko, ką sužinojome iš „Google“ AMA (klausk manęs bet ko).
Viena iš labiausiai laukiamų „Android 11“ funkcijų nebus pasiekiama, kai bus įdiegta OS išeina iš beta versijos rugsėjo 8 d: slenkančios ekrano kopijos. Iš pradžių planuojama paleisti „Android 11“., „Google“ dabar patvirtino, kad ši funkcija „nepaleido R“. „Android 11“ kūrėjo peržiūra 1 ir visuose paskesniuose DP ir beta versijose yra vietos rezervavimo mygtukas, skirtas slenkamoms ekrano kopijoms padaryti rankiniu būdu pateikiama su paslėpta kūrėjo komanda, bet spustelėjus mygtuką tiesiog rodomas skrebučio pranešimas, nurodantis, kad funkcija „neįdiegta“.
Tikėjomės, kad ši funkcija pateks į beta versiją ar net tik stabilų leidimą, bet panašu, kad to tiesiog nebus.
Suprantama, kad ši žinia kai kuriuos vartotojus nuliūdins. Galų gale, daugelis originalios įrangos gamintojų jau daugelį metų naudoja šią funkciją savo programinėje įrangoje, taigi, kas užtrunka „Google“, kad pridėtų ją prie „Pixel“ telefonų? Kaip paaiškino Danas Sandleris iš „Google“ sistemos vartotojo sąsajos komandos, problema ta, kad „Google“ nori tai padaryti teisingai. Kai kurie slenkamųjų ekrano kopijų diegimai paprasčiausiai imituoja slinktį ir tada, kai ekranas juda, sujungia kelias ekrano kopijas. Jei kada nors susidūrėte su UI automatizavimu „Android“, žinosite, kad tai ne visada veikia, nes, kaip minėjo ponas Sandleris, programos gali naudoti „standartinį „RecyclerView“ arba įdiegė savo „OpenGL“ pagreitintą slinkimo variklį. Kadangi „Google“ planuoja įdiegti šią funkciją ne tik „Pixel“ išmaniuosiuose telefonuose, bet ir visoje „Android“ ekosistemoje kaip AOSP dalį, jie turi įsitikinti, kad tai veiks visi programėlės, o ne tik „viena ar dvi konkrečiame įrenginyje parinktos programėlės“.
Kadangi komanda turėjo „sutelkti [savo] ribotus išteklius“, ypač dėl iškilusių iššūkių dėl COVID-19, komanda nusprendė įdėti slenkančias ekrano kopijas į būsimą „Android“ leidimą.
Naujas CDD reikalavimas informuoti vartotojus apie foninius apribojimus
Ne paslaptis, kad daugelis „Android“ originalios įrangos gamintojų, ypač Kinijos, taiko agresyvius fone veikiančių programėlių apribojimus. Kai kurie kūrėjai buvo taip nusivylę, kad jų programos buvo nužudytos fone, todėl jie susivienijo ir sukūrė svetainę pavadinimu "Nežudyk mano programos“, kad reitinguotų originalios įrangos gamintojus pagal tai, kaip prastai jie valdo foninių programų procesus. Tie patys kūrėjai net neseniai padarė etaloną todėl vartotojai gali išbandyti, kaip agresyviai jų įrenginys naikina programas fone. Priežastis, kodėl daugelis originalios įrangos gamintojų mėgsta naikinti foninių programų procesus, yra sudėtinga, bet manau, kad tai geriausiai paaiškinama šiame Redditor komentare /u/galbūt abejotinas. Komentaruose aprašoma sudėtinga „Android“ programų kūrimo padėtis Kinijoje, kaip Kinijos technologijų įmonės dar labiau apsunkina reikalus ir kaip prie to prisideda „Google“ paslaugų trūkumas netvarka.
Nepaisant to, daugelis programų kūrėjų yra suprantamai nusivylę šiais „Android“ platformos elgesio patobulinimais, dėl kurių kūrėjai pateikė komentarą. paklausti „Google“, ką jie šiuo klausimu daro į Reddit AMA viršų. Štai „Google“ atsakymas:
Iš šio atsakymo reikia atimti keletą dalykų. Pirma, „Google“ nori, kad originalios įrangos gamintojai naudotojams būtų skaidresni apie taikomų foninių programų apribojimus. Patikrinau (neišleistą) „Android 11“ suderinamumo apibrėžimo dokumentą (CDD) ir radau siūlomą 3.5 skilties „API elgesio suderinamumas“ papildymą:
Jei įrenginių diegimas įgyvendina patentuotą mechanizmą programoms apriboti ir šis mechanizmas yra labiau ribojantis nei „Retas“ budėjimo režimo segmentas AOSP, jie:
[C-1-5] PRIVALO informuoti naudotojus, jei programai taikomi programos apribojimai automatiškai. (NAUJIENA) Tokia informacija PRIVALO būti pateikta ne anksčiau kaip prieš 24 valandas iki tokių apribojimų taikymo.
(Pastaba) Priverstinis sustabdymas laikomas labiau ribojančiu nei „Retas“ ir PRIVALO atitikti visus 3.5.1 reikalavimus, įskaitant naująjį 3.5.1/C-1-5
Iš esmės „Google“ netrukdo originalios įrangos gamintojams įdiegti savo ribojančias programas naikinančių funkcijų. Jie tik reikalauja, kad OĮG informuotų naudotojus, jei jų programų apribojimai taikomi automatiškai. OĮG gali parodyti dialogo langą, kad jie neleis bateriją siurbiančioms foninėms programoms veikti fone, o vartotojas gali sutikti nesuvokdamas, kurias programas jis tikrai nori paleisti fone paveiktas! „Google“ įpareigoja kūrėjus spręsti atvejus, kai jų programa netikėtai užmušama fone. Iš tiesų, „Reddit“ komentaras pabrėžia naują „programos proceso išjungimo priežastys" API, kuri gali pasakyti kūrėjams, ar jų programą nužudė vartotojas, OS, ar ji tiesiog sudužo.
Kita vertus, „Google“ pagaliau sprendžia nesąžiningą originalios įrangos gamintojų praktiką, leidžiančią tam tikroms privilegijuotoms programoms apeiti foninių programų apribojimus. Šis vidutinis kūrėjo įrašas Timothy Asiimwe išsamiai aprašomos programos, pvz., „WhatsApp“, „Facebook“ ir kitos programos, automatiškai atleidžiamos nuo griežtų kai kurios OĮG programinės įrangos fono apribojimų. „Google“ teigia, kad jie „reikalauja, kad įrenginių gamintojai nesudarytų populiariausių programų leidimo sąrašų“. Nežinome, kaip tai bus įgyvendinta, bet gera žinoti, kad originalios įrangos gamintojai pagaliau bus priversti su trečiųjų šalių kūrėjais elgtis vienodai – nesvarbu, kokios didelės ar mažos jų programos yra.
Galiausiai „Google“ taip pat mini, kaip „Android 11“ „pridėjo papildomų priemonių, kad išvengtų piktnaudžiavimo netinkamai veikiančiomis programomis“, todėl originalios įrangos gamintojai mažiau vilioja agresyviai naikinti foninius procesus. Tačiau bendrovė nepaaiškino, ką reiškia šios „papildomos priemonės“.
Patobulintos atsarginės kopijos iš įrenginio į įrenginį
Praėjusį mėnesį pastebėjome „Android 11“ dokumentacijos pakeitimą užsiminė apie geresnių vietinių duomenų atsarginių kopijų palaikymą. 11 versijos „Android“ sistema nepaisys atributo allowBackup Manifest bet kuriai programai, kuri taikoma 30 API lygiui, kai vartotojas inicijuoja programų failų perkėlimą iš įrenginio į įrenginį. „Google“ darbuotojas Eliotas Stockas teigia, kad ši funkcija skirta „daug lengviau telefonų gamintojams kurti perkėlimo į įrenginį įrankius“, pvz., „Puikus Samsung Smart Switch produktas“. padėti „užtikrinti, kad programos būtų patikimiau perduodamos iš vieno įrenginio į kitą iš vartotojo perspektyvos“. Deja, tai netaikoma debesijos pagrindu sukurtoms atsarginėms kopijoms, nes „Google“ nori „leisti programinės įrangos kūrėjams valdyti, ką įvyksta su jų programos duomenimis." Taigi „Android 11“ vis tiek gerbs atributą „allowBackup“ kuriant ir atkuriant debesyje pagrįstą atsarginę kopiją, pvz., naudojant „Google Play“ paslaugos integruotą „Google“ diską. atsarginė kopija. Galiausiai „Google“ pripažįsta, kad kai kuriems kūrėjams gali nepakakti 25 MB vienai programai atsarginės kopijos ribos, todėl jie ieško būdų, kaip tai išspręsti. Vis dėlto vietinės atsarginės kopijos į kompiuterį nesvarstomos, ir „Google“ pakartoja savo planą laipsniškai panaikinti adb atsarginę kopiją būsimame „Android“ leidime.
Kūrėjai raginami įdiegti be trinties duomenų perkėlimo metodus. The nauja Block Store biblioteka, kuri yra „Google“ tapatybės paslaugų bibliotekos dalis, sukurta taip, kad būtų lengviau prisijungti prie atkurtų programų iš debesies naujuose įrenginiuose, tačiau kūrėjai gali pasirinkti, ar jie nori tai įdiegti, ar ne biblioteka.
Greitesnis programos paleidimo greitis naudojant įvesties / išvesties skaitymo prieš procesą (IORAp)
„Google“ nuolat eksperimentuoja su būdais, kaip pagerinti „Android“ našumą. Viena iš mažai žinomų funkcijų, kurias jie pridėjo prie „Android 10“, vadinama nespecializuotų programų procesų baseinu (USAP). Ši funkcija pašalina išsišakojimą „Zygote“ programos paleidimo proceso metu ir sutaupo maždaug ~ 5 ms vidutinį programos paleidimo greitį „Pixel 2“ įrenginyje. Funkcija šiuo metu yra pagal numatytuosius nustatymus išjungtas AOSP, o „Google“ paaiškina, kad jos papildomos atminties naudojimą vis dar reikia išbandyti. Tačiau dar įdomiau yra nauja „Android 11“ funkcija, pavadinta „I/O Read Ahead Process“ (IORap). Pagal Google, ši funkcija leis „daugiau nei 5 % greitesnio šaltojo paleidimo, o herojų atvejai pasieks 20 % greičiau“. Ši funkcija „paleisties proceso metu iš anksto pateiks programų artefaktus (pvz., kodą ir išteklius), kad paskatintų programos paleidimą greičius.
„Google“ taip pat „patobulino profilius, naudojamus optimizuoti įkrovos klasės kelią ir sistemos vaizdą“. tai pagerins programos našumą ir sumažins su sistema susijusias atminties ir saugojimo išlaidas artefaktai. Šie pakeitimai daugiausia bus naudingi įrenginiams su didesniu RAM kiekiu, nors „Google“ nepasakė, koks yra ribos, kur matysime daugiausia naudos.
„Android 11“ taikomosios vietos saugyklos pakeitimai – kodėl ribojama prieiga prie / atsisiuntimų?
Programos, kurios taikomos „Android 11“ ir naudoja ACTION_OPEN_DOCUMENT_TREE tikslą prašyti prieigos prie konkrečių išorinių katalogų saugykla nebegalės prašyti vartotojų prieigos prie išorinės saugyklos šakninio katalogo (/data/media/{user}), atsisiuntimo katalogą (/data/media{user}/Atsisiųsti) arba bet kurį iš konkrečios programos duomenų katalogų išorinėje saugykloje (/Android/data arba /Android/obb). Kodėl apribota prieiga prie atsisiuntimų katalogo? Pagal „Google“ Roxanna Aliabadi, taip yra todėl, kad atsisiuntimo aplanke „didžiausia rizika turėti privačią informaciją“. Pavyzdžiui, vartotojai, kurie atsisiunčia savo mokesčius grąžinimo ar banko ataskaitų neturėtų jaudintis dėl galimybės, kad programos piktnaudžiaus nuolatine skaitymo prieiga prie katalogas. „Google“ teigia, kad dokumentų rinkiklis turės „atnaujintą tekstą..., nurodantį, kad „Android“ apribojo tam tikrus aplankus Tikimasi, kad tai sumažins painiavą, kodėl jie negali suteikti programoms prieigos prie tam tikrų katalogų daugiau.
Norėdami gauti daugiau informacijos apie būsimus „Scopped Storage and Play“ politikos pakeitimus, žr. šį straipsnį.
Įvairios temos
-
„Google“ pozicija dėl įsišaknijimo / modifikavimo
- Jeffas Bailey iš „Google“ AOSP komandos pakartoja bendrovės poziciją dėl pasirinkimo rėmimo. „Google“ „toliau užtikrins, kad būtų galima modifikuoti / įsišaknyti Pixel įrenginių liniją“, bet taip pat „palaikys originalios įrangos gamintojų pasirinkimą neleisti jų įrenginių Be to, „Google“ suteikia programinės įrangos kūrėjams pasirinkimą „neleisti programinei įrangai paleisti įsišaknijusiuose įrenginiuose“, atsižvelgdama į naujausius pakeitimus „SafetyNet Attestation“ API programinės įrangos klastojimo aptikimas.
-
Kas nutiko „atidaryti ir nustatyti pagal numatytuosius nustatymus“?
- Sukurta Android 10 šiek tiek erzina nustatyti programą kaip numatytąją tvarkyklę konkrečioms nuorodoms, kurios, anot „Google“, buvo padarytos siekiant apsaugoti vartotojus nuo „išnaudojamų programų“. Google atsitraukė apie šį pakeitimą, jį pergalvoję, atlikdami „keletą pakeitimų užkulisiuose“, kad apsaugotų vartotoją.
-
Naudojate „Vulkan Graphics“ API vartotojo sąsajai pateikti?
- „Google“ galiausiai planuoja naudoti Vulkan Graphics API, kad būtų pateikta vartotojo sąsaja, kuris leis šiek tiek pagerinti našumą. Tai yra vis dar vertinamas, tačiau bendrovė neturėjo konkretaus dalyko.
-
Trūksta CallScreeningService daugelyje įrenginių
- „Android“ programos gali įgyvendinti CallScreeningService API perimti naujus įeinančius ir išeinančius skambučius, leidžiančius jiems identifikuoti skambinantįjį ir priimti arba atmesti skambutį. Nors tai yra oficialiai dokumentuota API, atrodo, kad daugelis originalios įrangos gamintojų jos netinkamai įdiegia, teigia kūrėjas /u/_zeromod_. Google patvirtina kad šią API patvirtina suderinamumo testų rinkinys (CTS), automatinis bandymų rinkinys, kurį visi įrenginiai turi išlaikyti, kad būtų laikomi suderinami su „Android“. Dėl kokių nors priežasčių ši API grąžina nulį, kai ji iškviečiama įrenginiuose iš OĮG, pvz., „Huawei“, „Vivo“, „Xiaomi“ ar „Samsung“, todėl tikėtina, kad šių OEM programinėje įrangoje yra klaida.
-
Neplanuojate sukurti garso papildinio sistemos
- Kūrėjas paklausė „Google“, ar jie planuoja įdiegti garso papildinių sistemą, tokią kaip „Apple“ garso įrenginiai, tačiau atsakymas kad vargu ar tai įvyks artimiausiu metu.
Galite perskaityti visus „Android“ inžinierių komandos atsakymus čia. Keliuose komentaruose komanda šiek tiek kalba apie „Java“, „Kotlin“, „Android“ kūrimo sistemą, „CameraX“ API ir kitas temas. Taip pat yra keletas komentarų apie „Wear OS“, „Android TV“ ir „Android Auto“, tačiau „Google“ dažniausiai kartoja jų esamą darbą šiose platformose ir liepia kūrėjams sekti daugiau informacijos "Android be telefonų“ savaitė nuo rugpjūčio 10 d.