Hva gjør Android-systemets webvisningsapp. Android System Webview - hva er det, feil og løsninger

På den siste AndroidDevs Meetup snakket flere utviklere fra ICQ messenger-teamet. Rapporten min var dedikert til Android WebView. For alle som ikke kunne komme på møtet, publiserer jeg her en artikkel basert på talen. Jeg går over toppene, med store slag. Jeg vil ikke gi dype tekniske detaljer eller mye kode. Hvis du er interessert i detaljene, ved å bruke lenken på slutten av innlegget kan du laste ned applikasjonen, spesielt skrevet som illustrasjon, og se alt med eksempler.

Spørsmål og svar

Spørsmål: Det er et CrossWalk-prosjekt – en tredjepartsimplementering av WebView som lar deg bruke den nyeste Chrome på eldre enheter. Har du noen erfaring, har du prøvd å bygge den inn?
Svare: Jeg har ikke prøvd det. For øyeblikket støtter vi Android fra og med versjon 14 og fokuserer ikke lenger på eldre enheter.

Spørsmål: Hvordan håndterer du gjenstander som blir igjen når du gjengir en WebView?
Svare: Vi kjemper ikke mot dem, vi prøvde, men det fungerte ikke. Dette skjer ikke på alle enheter. Vi bestemte oss for at dette ikke var et så åpenbart problem at vi burde bruke mer ressurser på det.

Spørsmål: Noen ganger må du neste en WebView inne i en ScrollView. Det er ikke pent, men noen ganger kreves det på oppdrag. Dette er ikke oppmuntret, selv forbudt et sted, og etter dette er det mangler i arbeidet. Men noen ganger må du fortsatt gjøre det. For eksempel, hvis du tegner en WebView på toppen, og under den, tegner du en native komponent (som skal være native i henhold til kravet), og alt dette skal gjøres som en enkelt ScrollView. Det vil si, først ville brukeren se på hele siden, og deretter, hvis han ville, ville han rulle ned til disse opprinnelige komponentene.
Svare: Jeg kan dessverre ikke svare deg fordi jeg ikke har vært borti en slik situasjon. Det er ganske spesifikt, og det er vanskelig for meg å forestille meg et alternativ der du må sette en WebView i en ScrollView.

Spørsmål: Det er en e-postapplikasjon. Det er en lue på toppen med mottakerne og alt annet. Selv da vil ikke alt gå knirkefritt. WebView har store problemer når den prøver å bestemme størrelsen i ScrollView.
Svare: Du kan prøve å gjengi den angitte delen av brukergrensesnittet inne i WebView.

Spørsmål: Det vil si, fullstendig overføre all logikken fra den opprinnelige delen til WebView og la disse beholderne?
Svare: Det kan til og med være at det ikke er behov for å overføre logikken, dette betyr injeksjon av Java-klasser. Logikken kan forlates og kalles gjennom den injiserte klassen. Bare brukergrensesnittet kan overføres til WebView.

Spørsmål: Du nevnte spill i messengeren. Er de nettapplikasjoner?
Svare: Ja, dette er nettsider med JavaScript inne i en WebView.

Spørsmål: Gjør du alt dette bare for å unngå å omskrive spill på egenhånd?
Svare: Og for dette også. Men hovedideen er å gi tredjepartsutviklere muligheten til å lage applikasjoner som kan bygges inn i ICQ, og bruke denne ICQ Web API til å samhandle med messengeren.

Spørsmål: Så disse spillene kan også spilles gjennom en nettleser på en bærbar datamaskin?
Svare: Ja. Den kan åpnes i en nettleser, og noen ganger feilsøker vi dem direkte i den.

Spørsmål: Og hvis Intent, la oss si, kaster dette leketøyet inn i Chrome, hvilke problemer vil det da være? Hva om du ikke skriver din egen WebView, men bruker tjenestene?
Svare: Problemet er at i vår WebView kan vi tilby en API gjennom Java-klasseinjeksjon, og ved hjelp av denne API kan applikasjonen samhandle direkte med ICQ og sende forskjellige kommandoer til den. La oss si en kommando for å få en brukers navn, for å få chatter som er åpne for ham, for å sende meldinger til chatten direkte fra ICQ. Det vil si at du ikke kan sende meldinger direkte til ICQ fra Chrome. I vårt tilfelle er alt dette mulig.

Spørsmål: Du nevnte at du kuttet dataene i én megabyte-biter. Hvordan samler du dem da?
Svare: Vi gjør ikke dette nå fordi vi ikke har et slikt behov.

Spørsmål: Er én megabyte nok?
Svare: Ja. Hvis bildene er større, prøver vi å komprimere dem. Jeg sa at hvis et slikt behov eksisterer, så kan dette være en løsning - klipp og monter senere i Java.

Spørsmål: Hvordan sikrer du at applikasjoner kjører trygt i en sandkasse? Forsto jeg riktig at du må ringe injiserte Java-klasser fra en JavaScript-applikasjon?
Svare: Ja.

Spørsmål: Hvordan vil sikkerheten ivaretas i dette tilfellet Er tilgang til noen systemfunksjoner forbudt?
Svare: Akkurat nå, siden systemet fortsatt er ganske ungt, bruker vi stort sett våre egne nettapplikasjoner og stoler fullt og helt på dem. I fremtiden vil alle søknader som kommer til oss bli administrert, koden vil bli gjennomgått, og det er avsatt et eget sikkerhetsteam for dette. I tillegg vil et spesielt tillatelsessystem bli opprettet, uten hvilket applikasjoner ikke vil kunne få tilgang til informasjon som er kritisk for brukeren.

Brukere av enheter basert på Android OS, som ser gjennom listen over installert programvare, finner blant kjent programvare og systemapplikasjoner som de ikke vet noe om. Et slikt program er Android System WebView. Den kan bli funnet blant kjørende applikasjoner eller når du mottar et oppdateringsvarsel. Noen ganger, ved manuell rengjøring for å frigjøre plass i enhetens minne, fjerner uerfarne brukere alt de kan få tak i, mens det er bedre å ikke berøre noen systemkomponenter for å unngå å skade systemet. Selvfølgelig kan slike applikasjoner ikke fjernes uten rotrettigheter, men selv å stoppe arbeidet kan føre til ubehagelige konsekvenser. Dermed er det også uønsket å fjerne Android System WebView-programvaren.

Hensikten med Android-systemets webvisningsapplikasjon.

Det naturlige ønsket til en bruker som oppdager programvaren for første gang vil være å finne ut hva slags Android System WebView det er og hvilke oppgaver denne programvaren utfører, samt om den kan slettes. Det Chrome-baserte programmet er forhåndsinstallert og er en systemkomponent i Android OS, det brukes til å behandle nettinnhold i forskjellige applikasjoner, som et resultat av at det ikke er nødvendig å bytte til nettlesere. Det vil si at takket være WebView kan nettstedinnhold vises direkte i programmer. Hvis vi tar sosiale nettverksapplikasjoner som et eksempel, vil du ikke bli omdirigert til nettleseren når du ser på en nyhetsfeed og følger lenker, men vil se innholdet uten å forlate messengeren. Dette er essensen av funksjonen til dette verktøyet, og nå har du en ide om hva Android System WebView er. Systemprogramvare er installert som standard på enheter med Android 4.2.2 og nyere. Hvis enheten ikke har det, for eksempel slettet du den ved hjelp av root-tilgang, uten å vite hva slags program det er, så kan du installere applikasjonen fra Play Market-butikken, og oppdateringer lastes også ned herfra. I dette tilfellet er det bedre å bruke WebView, fra versjon Android 5.0 på grunn av bruken av et stort antall ressurser, som laster enheten med en rekke prosesser (minneforbruk, etc. avhenger direkte av antall kjørende programmer og spill) ). I tillegg har produktstøtte for tidligere versjoner av operativsystemet blitt avviklet.

Hvilke applikasjoner bruker Android System WebView

Vurderer hvorfor programvare er nødvendig, for å gjøre det mer tydelig, la oss gi et eksempel på flere programvareprodukter som bruker System WebView som et verktøy for å se Internett-innhold i deres miljø:

Dette er bare en liten liste over programvare som bruker WebView. Værapplikasjoner, sosiale nettverk, instant messengers og mange andre har dette innebygde alternativet. Programvareutviklere kan legge til nettleserfunksjonalitet til produktet sitt ved å implementere WebView-biblioteket, installere komponenten i layouten og initialisere den i kode. Det er også nødvendig å aktivere JavaScript-støtte slik at sidene der det er implementert fungerer riktig, og legge til tillatelser for å få tilgang til Internett. For at brukere skal kunne åpne lenker direkte inne i programvaren, må de installere WebViewClient.

Slik aktiverer du Android System WebView

På Android versjon 7 og nyere er tjenesten inaktiv som standard. Disse oppgavene er tilordnet Google Chrome-verktøy og innebygde programverktøy. Det vil si at det ikke er noe spesielt behov for å aktivere den aktuelle programvaren, men hvis du vil at WebView fremfor Chrome skal fungere, deaktiveres den første tjenesten og Android System WebView er aktivert, siden de ikke fungerer sammen. Aktivering kan utføres ved hjelp av ulike metoder.

Metode én:

  • I delen "Applikasjoner" finner vi Google Chrome og deaktiverer den ved å klikke på den tilsvarende knappen.
  • Installer eller oppdater Android System WebView fra Play Market.
  • Nå gjenstår det bare å starte programvare som bruker WebView, og tjenesten starter automatisk. La oss si at vi går fra enhetsinnstillingene til delen "Om enheten" - "Juridisk informasjon" og velger "Googles juridiske informasjon", og åpner deretter en kobling.
  • WebView-appen aktiveres, men når du slår på Chrome, slås den av igjen.

Metode to:

Prosedyren er litt mer komplisert, og det er ikke alltid mulig, men hvis den første metoden ikke klarte å koble til tjenesten, gjør du følgende:

  • Gå til innstillinger og velg "Byggnummer" i delen "Om telefonen".
  • Med noen få klikk aktiverer vi utviklermodus (trykk til du mottar et tilsvarende varsel).
  • I delen "For utviklere" finner vi "WebView Service".
  • Her kan du velge et verktøy for håndtering av nettlenker i applikasjoner.

Mulige problemer og løsninger

Som regel fungerer tjenesten som den skal, men noen ganger kan det likevel oppstå feil. Siden WebView for Android-versjoner opp til versjon 5 ikke lenger støttes, har dette ført til at det har oppstått sårbarheter i programvaren. Feilvarsler kan vises når du starter noen programmer, spill eller bruker en nettleser. Løsningen er å slette applikasjonsdataene. For å gjøre dette gjør vi følgende:

  • Gå til enhetsinnstillingene, velg "Applikasjoner".
  • I listen over programvare finner vi Android System WebView (ASW), klikk.
  • Her klikker vi på knappene "Tøm data" og "Tøm cache".

I noen tilfeller fungerer ikke metoden. Du kan også prøve å stoppe tjenesten og avinstallere oppdateringer, og deretter laste ned hele System WebView-oppdateringen. I tillegg vil det være en god idé å sjekke om det er nok minne på enheten, noen ganger kan det hjelpe å flytte applikasjonen til SD-kortet. Ofte blir brukere lei av popup-varsler om behovet for å oppdatere programvare. Problemet kan løses enkelt:

  • Gå til Google Play Market-applikasjonsbutikken og oppdater ASW-komponenten.
  • Hvis feilen gjentar seg, noe som sannsynligvis er på enheter med Android 7 og høyere, bør du også oppdatere Google Chrome.

Hvis alle metoder for å korrigere tjenestefeil er maktesløse, gjenstår det bare å utføre en tilbakestilling til fabrikkinnstillingene, etter å ha tatt en sikkerhetskopi av dataene tidligere. Men dette er et ekstremt tiltak, og som oftest er det ikke nødvendig å ty til slike handlinger.

Slik avinstallerer du Android System WebView App

Muligheten til å fjerne programvare er alltid til stede, selv om den ikke er åpenbar, slik tilfellet er med systemkomponenter. Etter å ha sett fråtsigheten til Android System WebView i prosessene, lurer mange brukere på om det er mulig å fjerne denne applikasjonen. I standardmodus kan du ikke fjerne systemprogramvare, så hvis målet er å bli fullstendig kvitt tjenesten, må du tukle med å skaffe rotrettigheter, noe som lar deg gjøre hva hjertet ditt måtte ønske med operativsystemet. Samtidig er ikke root-tilgang den eneste løsningen du kan stoppe programmet med.

Det anbefales sterkt ikke å fjerne System WebView hvis du har Android-versjon under versjon 7, da dette vil medføre en rekke feil og feil. Tjenesten brukes av mange applikasjoner, så du bør ikke stole på at de fungerer korrekt etter å ha avinstallert eller deaktivert verktøyet. I tillegg til manglende evne til å åpne innebygde koblinger i programmer, vil du oppleve andre systemfeil, og problemet kan ta en ganske alvorlig form, for eksempel i form av en syklisk omstart av enheten. La oss nå gå videre til spørsmålet om det er mulig å deaktivere Android System WebView-tjenesten hvis du fortsatt ikke har rotrettigheter, du har et operativsystem av den syvende versjonen eller høyere, og du ikke finner applikasjonen nyttig. I dette tilfellet kan programvaren bare stoppes. For å gjøre dette, utfør følgende trinn, gjeldende for å stoppe enhver Android-programvare:

  • La oss gå til enhetsinnstillingene.
  • La oss gå videre til delen "Applikasjoner" her.
  • Velg Android System fra listen
  • Klikk på knappene "Stopp", "Avinstaller oppdateringer" og deretter "Slett data".
  • Disse handlingene vil stoppe programmet fra å kjøre.

Vi anbefaler ikke å slette systemapplikasjoner. Rotrettigheter i feil hender kan skade enheten, men selv uten dem er noen brukerhandlinger enda mer ødeleggende enn virus og kan forårsake betydelig skade på systemet.

Når det gjelder WebView spesifikt, hvis alternativ programvare støttes på smarttelefonen din, og du bestemmer deg for å bruke et annet verktøy som utfører de samme oppgavene, vil tjenesten ganske enkelt være inaktiv, så det er ingen grunn til å bekymre deg for å bruke ressursene.

På den siste AndroidDevs Meetup snakket flere utviklere fra ICQ messenger-teamet. Rapporten min var dedikert til Android WebView. For alle som ikke kunne komme på møtet, publiserer jeg her en artikkel basert på talen. Jeg går over toppene, med store slag. Jeg vil ikke gi dype tekniske detaljer eller mye kode. Hvis du er interessert i detaljene, ved å bruke lenken på slutten av innlegget kan du laste ned applikasjonen, spesielt skrevet som illustrasjon, og se alt med eksempler.

Spørsmål og svar

Spørsmål: Det er et CrossWalk-prosjekt – en tredjepartsimplementering av WebView som lar deg bruke den nyeste Chrome på eldre enheter. Har du noen erfaring, har du prøvd å bygge den inn?
Svare: Jeg har ikke prøvd det. For øyeblikket støtter vi Android fra og med versjon 14 og fokuserer ikke lenger på eldre enheter.

Spørsmål: Hvordan håndterer du gjenstander som blir igjen når du gjengir en WebView?
Svare: Vi kjemper ikke mot dem, vi prøvde, men det fungerte ikke. Dette skjer ikke på alle enheter. Vi bestemte oss for at dette ikke var et så åpenbart problem at vi burde bruke mer ressurser på det.

Spørsmål: Noen ganger må du neste en WebView inne i en ScrollView. Det er ikke pent, men noen ganger kreves det på oppdrag. Dette er ikke oppmuntret, selv forbudt et sted, og etter dette er det mangler i arbeidet. Men noen ganger må du fortsatt gjøre det. For eksempel, hvis du tegner en WebView på toppen, og under den, tegner du en native komponent (som skal være native i henhold til kravet), og alt dette skal gjøres som en enkelt ScrollView. Det vil si, først ville brukeren se på hele siden, og deretter, hvis han ville, ville han rulle ned til disse opprinnelige komponentene.
Svare: Jeg kan dessverre ikke svare deg fordi jeg ikke har vært borti en slik situasjon. Det er ganske spesifikt, og det er vanskelig for meg å forestille meg et alternativ der du må sette en WebView i en ScrollView.

Spørsmål: Det er en e-postapplikasjon. Det er en lue på toppen med mottakerne og alt annet. Selv da vil ikke alt gå knirkefritt. WebView har store problemer når den prøver å bestemme størrelsen i ScrollView.
Svare: Du kan prøve å gjengi den angitte delen av brukergrensesnittet inne i WebView.

Spørsmål: Det vil si, fullstendig overføre all logikken fra den opprinnelige delen til WebView og la disse beholderne?
Svare: Det kan til og med være at det ikke er behov for å overføre logikken, dette betyr injeksjon av Java-klasser. Logikken kan forlates og kalles gjennom den injiserte klassen. Bare brukergrensesnittet kan overføres til WebView.

Spørsmål: Du nevnte spill i messengeren. Er de nettapplikasjoner?
Svare: Ja, dette er nettsider med JavaScript inne i en WebView.

Spørsmål: Gjør du alt dette bare for å unngå å omskrive spill på egenhånd?
Svare: Og for dette også. Men hovedideen er å gi tredjepartsutviklere muligheten til å lage applikasjoner som kan bygges inn i ICQ, og bruke denne ICQ Web API til å samhandle med messengeren.

Spørsmål: Så disse spillene kan også spilles gjennom en nettleser på en bærbar datamaskin?
Svare: Ja. Den kan åpnes i en nettleser, og noen ganger feilsøker vi dem direkte i den.

Spørsmål: Og hvis Intent, la oss si, kaster dette leketøyet inn i Chrome, hvilke problemer vil det da være? Hva om du ikke skriver din egen WebView, men bruker tjenestene?
Svare: Problemet er at i vår WebView kan vi tilby en API gjennom Java-klasseinjeksjon, og ved hjelp av denne API kan applikasjonen samhandle direkte med ICQ og sende forskjellige kommandoer til den. La oss si en kommando for å få en brukers navn, for å få chatter som er åpne for ham, for å sende meldinger til chatten direkte fra ICQ. Det vil si at du ikke kan sende meldinger direkte til ICQ fra Chrome. I vårt tilfelle er alt dette mulig.

Spørsmål: Du nevnte at du kuttet dataene i én megabyte-biter. Hvordan samler du dem da?
Svare: Vi gjør ikke dette nå fordi vi ikke har et slikt behov.

Spørsmål: Er én megabyte nok?
Svare: Ja. Hvis bildene er større, prøver vi å komprimere dem. Jeg sa at hvis et slikt behov eksisterer, så kan dette være en løsning - klipp og monter senere i Java.

Spørsmål: Hvordan sikrer du at applikasjoner kjører trygt i en sandkasse? Forsto jeg riktig at du må ringe injiserte Java-klasser fra en JavaScript-applikasjon?
Svare: Ja.

Spørsmål: Hvordan vil sikkerheten ivaretas i dette tilfellet Er tilgang til noen systemfunksjoner forbudt?
Svare: Akkurat nå, siden systemet fortsatt er ganske ungt, bruker vi stort sett våre egne nettapplikasjoner og stoler fullt og helt på dem. I fremtiden vil alle søknader som kommer til oss bli administrert, koden vil bli gjennomgått, og det er avsatt et eget sikkerhetsteam for dette. I tillegg vil et spesielt tillatelsessystem bli opprettet, uten hvilket applikasjoner ikke vil kunne få tilgang til informasjon som er kritisk for brukeren.

En rekke brukere av moderne dingser basert på Android OS, når de ser på listen over programmer som er forhåndsinstallert på enheten, kan snuble over en applikasjon "Android System WebView". Denne applikasjonen ble laget av Google-programmerere og er designet for å vise nettinnhold i andre applikasjoner. Samtidig er ASWV ikke fri for ulike feil, feil og andre problemer, og ofte er det den ustabile driften av denne applikasjonen som tvinger brukeren til å lete etter detaljert informasjon om den på Internett. I denne artikkelen vil jeg fortelle deg hva dette Android System Webview-programmet er, introdusere leseren for funksjonene, og også fortelle deg hvordan du kan bli kvitt feil knyttet til funksjonaliteten til denne applikasjonen.

Hva er Android System WebView

Som jeg skrev ovenfor, er Android System WebView en applikasjon som lar deg bygge inn nettsurfing i ulike Android OS-applikasjoner, uten å måtte åpne et eget nettleservindu for dette. ASWVs funksjonalitet ligner i hovedsak en mini-nettleser som kjører på Chrome-teknologi, og i likhet med Chrome-applikasjonen er Android System WebView inkludert i det grunnleggende settet med Android OS-applikasjoner (fra omtrent Android 4.3 og høyere) på moderne smarttelefoner.

I følge brukeranmeldelser kan bruk av denne applikasjonen med forskjellige avhengige nettlesere (for eksempel Naked Browser) spare smarttelefonens batteristrøm betydelig. Vanlige mobilversjoner av populære nettlesere som Chrome eller Firefox, som kjører på sin egen motor, bruker betydelig større mengder batteristrøm.

Hvis du finner ut at dette er Android System WebView og vil laste det ned, er den beste måten å gjøre dette på fra Play Store. For øyeblikket er den nyeste versjonen av applikasjonen 57.0.2987.88, og du kan laste ned den nyeste versjonen av produktet fra Play Market (lenke).

Google-eksperter anbefaler først å tømme bufrede data på telefonen din - instruksjoner på VR-Boom.ru, og deretter oppdatere Android System Webview-applikasjonen, siden noen ganger er det sårbarheter som lar angripere få tilgang til den. Oppdateringer lar deg installere de nødvendige "patchene" og forhindrer dermed angripere i å nå sine mål.

Funksjoner i Android System Webview

Etter at vi har funnet ut hva slags Android System Webview-applikasjon dette er, la oss gå videre til å beskrive funksjonene til denne applikasjonen. Eksperter bemerker at denne applikasjonen er svært ressurskrevende (betydelige minneressurser forbrukes, noe som i noen tilfeller kan bremse den normale driften av systemet).

I tillegg har Google av visse grunner sluttet å gi ut oppdateringer for denne applikasjonen for eldre versjoner av Android OS (spesielt Android 4.3). Årsaken til dette sies å være utviklernes banale motvilje mot å revidere strukturen til programmet ("vi vil ikke og vil ikke revidere koden"), som et resultat av at versjonen av produktet kjører på slike versjoner av Android blir mer sårbare for skadelig programvare.

Bør jeg slette denne applikasjonen?

Bør jeg deaktivere Android System WebView? Absolutt ikke. Som jeg nevnte ovenfor, bruker en rekke mobilapplikasjoner de innebygde egenskapene til Android System WebView for sitt arbeid. Spesielt brukes funksjonaliteten til denne applikasjonen av slike programmer som:

Derfor er det ekstremt uønsket å stoppe (eller til og med slette denne applikasjonen ved hjelp av rotrettigheter), og kan føre til forskjellige funksjonsfeil i systemet (for en bruker førte sletting av denne applikasjonen til en syklisk omstart av enheten hans).

Hvis Android System Webview er buggy

Hvis du støter på feil i driften av denne applikasjonen og meldingen "Det oppstod en feil i Android-systemets webvisningsapplikasjon", anbefaler jeg å gå til innstillingene på enheten din, deretter til "Applikasjoner", finn Android System WebView der og trykk på den. Når du går til applikasjonsdetaljene, klikker du på "Stopp", deretter på "Avinstaller oppdateringer", "Tøm data", "Tøm cache".

Konklusjon

Når du vurderer temaet for programmet, er det verdt å merke seg at Android System Webview-applikasjonen er en viktig egenskap ved funksjonaliteten til Android OS (omtrent fra Android 4.3), som lar deg se nettinnhold i en bestemt applikasjon, uten må åpne et eget nettleservindu for dette. Funksjonaliteten er etterspurt av en rekke tredjepartsprogrammer (spesielt flere mobilnettlesere, ICQ messenger, etc.), så det anbefales å regelmessig overvåke oppdateringene, og under ingen omstendigheter slette denne applikasjonen fra enheten din. Dette garanterer stabil drift, og du vil nyte den pålitelige funksjonaliteten til din mobile enhet.