Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 15907|Vastaus: 2

CEF: Upota Chrome asiakkaalle

[Kopioi linkki]
Julkaistu 22.9.2017 16.19.26 | | |
Mikä on CEF?
CEF on lyhenne sanoista Chromium Embedded Framework, joka on avoimen lähdekoodin verkkoselaimen ohjaus, joka perustuu Google Chromium -projektiin ja tukee Windows-, Linux- ja Max-alustoja. C/C++-liitäntöjen lisäksi on myös portteja muille kielille.

Koska se perustuu Chromiumiin, CEF tukee Webkitissä ja Chromessa toteutettuja HTML5-ominaisuuksia ja on suorituskyvyltään suhteellisen lähellä Chromea.

CEF tarjoaa myös seuraavat ominaisuudet: mukautetut lisäosat, mukautetut protokollat, räätälöidyt Javascrip-objektit ja laajennukset; Hallittavia resurssien latausta, navigointia, kontekstivalikoita jne.

Kuka käyttää CEF:ää
Käytetään käytännön esimerkkejä havainnollistamaan, mitä kaikki ovat tehneet CEF:n kanssa:

Erilaiset selaimet

Varhaisissa kaksiytimisissä selaimissa (IE + Webkit) jotkut käyttivät CEF:ää Webkit-ytimen selaimen ohjauksena.

Kuitenkin selaimissa suora laajentaminen Chromessa on itse asiassa kuningas, ja kaikki tekevät sitä nyt (erilaiset nopeat selaimet).

Evernote Client (Windowsissa)

Evernote sallii käyttäjien liittää verkkosivuja muistiinpanoihin, ja tarjoaa myös lisäosia, joilla voi tallentaa verkkosivuja muistiinpanoina.

Tämä on varmasti tarve renderöidä sivu oikein asiakkaalla, ja tämä tehtävä jätetään CEF:lle.

GitHub Client (Windowsissa)

GitHub on myös paketoinut libcef.dll suorituskyvyn kannalta projektin näyttämiseen käytettävän ReadMe-sivun täytyy olla CEF, ja muualla käyttöliittymä voidaan osittain toteuttaa sivuilla.

QQ

QQ on toteuttanut joitakin funktioita ja rajapintoja upottamalla IE:n jo kauan sitten. Viime vuodesta lähtien QQ on ottanut käyttöön CEF:n, korvaten joitakin IE:tä aiemmin käyttäneitä paikkoja, jotta Webkitiin perustuvia uusia ominaisuuksia voidaan hyödyntää, ja samalla se on saanut etuja nopeudessa, vakaudessa ja yhteensopivuudessa.

Adobe Edge Animate & Adobe Edge Reflow

Adobe on julkaissut täydellisen joukon moderneja verkkosivuja (tai HTML5?) Edge.

Adobe Edge Animate voi toteuttaa monimutkaisia animaatioita muokkaamalla aikajanaa ja luomalla alkuperäisiä (Edge Animatessa symboleja).

Edge Reflow on responsiivinen verkko. Jotkut kääntävät sen responsiiviseksi, mikä on itse asiassa adaptiivista.

Edellä mainitut kaksi ohjelmistoa on käytännössä suunnattu Webkit-ytimen selaimelle, joten on tarpeen upottaa Webkit-ydin WYSIWYG-esikatselu- ja muokkauskäyttöliittymän tarjoamiseksi. Kaikki käyttivät CEF:ää. (Ero CEF:n ja puhtaan Webkitin välillä esitellään myöhemmin)

Q+

Web App -konseptin mukaan Q+ tarjoaa käynnissä olevan ympäristön verkkosivuille (yksinkertaisesti: asiakaslaatikko ja joitakin saatavilla olevia API-rajapintoja) ja tukee IE- ja Webkit-ytimiä.

Web-kehityksen opiskelijoille esittelemämme Webkit-ydin (itse asiassa CEF) ei tarvitse ottaa huomioon IE:n versioyhteensopivuusongelmia, mikä ei ainoastaan paranna kehityksen tehokkuutta, vaan mahdollistaa myös joidenkin uusien HTML5-ominaisuuksien hyödyntämisen. Tuolloin Q+:n sovellusmarkkinat, viestikeskus, taustakuvat, musiikkiwidgetit ja muut sovellukset kehitettiin kaikki Webkit-ytimen pohjalta.

Q+-projekti on tehnyt enemmän yrityksiä CEF:n toteuttamiseksi, kuten:

Kehitetty musiikkiwidget käyttää HTML5-äänitagia;

Jotkut sovellukset käyttävät HTML5:n offline-toiminnallisuutta (eli manifest-tiedoston kanssa), mutta toki mukana on käänteitä, ja olen saanut paljon kokemusta.

Paketoidut Webkit-kehitystyökalut.

Mukautetut protokollat: Esimerkiksi pääsy qplus:// protokolliin voidaan ohjata erityiseen kansioon.

Off-screen Rendering (OSR): Käyttämällä off-screen rendering + Windows Layered Window, luodaan epäsäännöllinen verkkosivuikkuna (mikä on verkkosivun läpinäkymättömän alueen muoto, mikä on ikkunan muoto)

Miksi CEF upotetaan asiakkaille?
Näin monen esimerkin vuoksi tämän kysymyksen esittäminen on paljon helpompaa:

Sitä käytetään verkkosivujen näyttämiseen ja erilaisten verkkopalveluiden käyttöön;

Käytä verkkosivuja käyttöliittymän tekemiseen;

Käytä HTML5-ominaisuuksia, kuten ääntä, kangasta jne., mukaan lukien CSS3-ominaisuudet.

Näytön ulkopuolinen renderöinti (OSR):

Niin sanottu OSR tarkoittaa koko sivun renderöintiä bittikartalle luomatta varsinaista ikkunaa. Tietenkään ei pelkästään renderöinti, vaan myös sarja API-rajapintoja, jotka käsittelevät hiiren, näppäimistötapahtumia, syöttömetoditapahtumia jne.

Tämä ominaisuus on erityisen hyödyllinen, kun oikeita ikkunoita ei voi käyttää, kuten kerroksellisissa ikkunoissa, tai kun peleissä renderöidään tekstuureiksi.

OSR-ominaisuuksien avulla voidaan luoda mielenkiintoisia efektejä, kuten:

AlloyTeam teki Webtopin, joka käyttää OSR:ää selaimen, soittimen jne. tekemiseen.

On olemassa Awesomium-projekti, joka tukee myös OSR:ää, ja on jo peliprojekteja, jotka käyttävät Awesomiumia verkkosivujen renderöintiin peleissä. (Katsoessani Awesomiumin tulostiedostoa, sen pitäisi olla samanlainen kuin CEF:n toteutus, se on kokonaan Chromium-paketti, ja CEF, jonka Awesomium osaa, pitäisi myös tehdä)

Vapaa-ajallani tein demon ja käytin CEF:ää verkkosivujen renderöintiin OpenGL Texturella, mikä voidaan nähdä pienenä yrityksenä soveltaa CEF:ää peliin, kuten kuvassa näkyy:

Pelin sisäinen selaindemo

Miksi CEF?
IE

IE on ollut upotettu selaimen ohjaus jo pitkään, ja tarkemmin sanottuna meillä on nyt monia vaihtoehtoja IE:lle.

CEF vs IE:

Yhteensopivuus:

Eli ydin vaihtelee 6–10 versiota käyttöjärjestelmästä riippuen, ja verkkokehityksen työkuormaa näiden versioiden kanssa yhteensopivuuden varmistamiseksi ei voi aliarvioida.

CEF: Se käyttää Webkit-ydintä, ja ominaisuuksiltaan CEF-versio voi vastata Chrome-versionumeroa, jolloin verkkokehityksellä on selkeä ominaisuusvalikoima ja yhteensopivuuden huomioiminen poistuu.

HTML5-standardi ja uudet ominaisuudet:

IE: Tietenkään vanhemmat IE-versiot eivät tue uusimpia HTML-ominaisuuksia ja standardeja.

CEF: Ei ole epäilystäkään siitä, että Webkit ja Chrome tukevat uusia ominaisuuksia eturintamassa.

Avoin lähdekoodi ja monialustainen:

Eli ei avoimen lähdekoodin, rajoitettu Windows-alustaan

CEF: Avoin lähdekoodi, käytetty Webkit ja Chromium ovat kaikki avoimen lähdekoodin, avoin lähdekoodi tarkoittaa enemmän muokattavia mahdollisuuksia; Ja se kattaa Windowsin, Macin ja Linuxin.

Näytön ulkopuolinen renderöinti (OSR):

Eli voit saavuttaa ruudun ulkopuolisen renderöinnin joillakin huijauksilla, mutta työmäärä ei ole pieni, eikä sitä virallisesti tueta.

CEF: Siinä on oma off-screen rendering -tila ja vastaava API.

Läpäisy:

IE: Kaikilla Windows-käyttäjillä on IE, mikä on IE:n etu (mutta joillakin käyttäjillä on virheelliset IE-asetukset, mikä johtaa käyttökelvottomuuteen, kuten jscrip{filtering}t.dll rekisteröimättä, mikä johtaa Javascrip{filter}t:n käytön estämiseen)

CEF: Sinun täytyy asentaa ja pakata se itse

Webkit

Miksi verrata tarkoituksella CEF:ää ja Webkitiä?

Luin äskettäin hyvän artikkelin siitä, mitä Webkit on, mitä se ei ole ja miksi Webkit-portteja on niin paljon: "Mitä kehittäjien tulee tietää WebKitistä"

Tässä on karkea yhteenveto:

Webkit on verkkosivujen jäsennys- ja järjestelymoottori, joka on yhteinen kaikille Webkit-pohjaisille selaimille. Webkitin oletusportti on Safari, joka on versio, joka on ladattu Webkitin lähdekoodikokoelmasta. On olemassa myös muita Webkit-portteja, kuten Chromium, QtWebkit jne., joilla on erilaiset toteutukset 2D-grafiikassa, GPU-kiihdytyksessä, Javascrip-moottorissa, audio/video-dekoodauksessa jne.

CEF vs webkit (itse asiassa Chromium vs Webkit)

V8-moottori, Skian 2D-renderöinti, Chromiumin GPU-kiihdytetty toteutus jne., Chromiumin erinomaisen toteutuksen avulla CEF on myös erinomainen Webkit-porttaus.

CEF:n haitat:
Ole ystävällinen, CEF:llä on myös omat puutteensa ja rajoituksensa, eikä etuja voi vain mainita, tässä esittelen CEF:n haitat ja haitat:

Volyymi:

Viimeisimmässä CEF-versiossa kaikkien DLL:ien summa on lähellä 40M, ja arvioidaan, että pakkaus on 10M+. Jos projektisi itsessään ei ole suuri eikä sitä voi vastaanottaa, CEF ei ole sinua varten.

Tietenkin peleille, jotka nyt lasketaan G:llä, tämän tilavuuden pitäisi silti olla hyväksyttävä.

Tavallisissa asiakasprojekteissa se riippuu siitä, tarvitseeko projekti itse käyttää CEF:n toteuttamia ominaisuuksia ja kannattaako tuotteen asennuspakettia kasvattaa niin paljon. Tietenkin tässä on myös toteutuksen kompromisseja, kuten lataaminen asennuksen jälkeen (henkilökohtaisesti en pidä tätä merkityksellisenä, sillä paketteja asentavat käyttäjät voivat myös valita ohjelmiston lataamisen nopeuttaakseen)

Välimuisti:

Chromen välimuisti on suunniteltu niin, että vain yksi prosessi voi lukea ja kirjoittaa, ja sama pätee CEF:ään.

Asiakkaille, jotka täytyy avata useita kertoja, voidaan määrittää vain eri välimuistikansio jokaiselle prosessiinstanssille. Tämä kuitenkin kiistatta lisää kiintolevyn käyttöä ja aiheuttaa myös sen, että jotkut alun perin välimuistissa olleet tiedostot ladataan useita kertoja (esimerkiksi prosessi A välimuistittaa jQuery.js, prosessi B joutuu pyytämään ja välimuistiin kerran, koska se välimuistittaa eri hakemistoja jQueyr.js

OSR:

OSR ei tällä hetkellä ole samanlainen kuin oikea ikkunatila, jota GPU voi nopeuttaa, ja OSR voidaan renderöidä vain ohjelmistolla, mikä tarkoittaa, että jotkut CSS 3D -efektit eivät ole tuettuja.

Kuitenkin OSR:n ominaisuuksia parannetaan edelleen, ja mielestäni sitä kannattaa silti odottaa.

Mitä jakaa myöhemmin
Kirjoitettuani niin paljon, sitä voidaan pitää johdantona CEF:ään, ja kirjoitan tulevaisuudessa myös joitakin kuivatuotteita, eli CEF:n käytöstä, mukaan lukien:

CEF-koodin hankinta, kääntäminen, upottaminen, sivujen ja asiakkaiden API-kutsujen käsittely, OSR:n ruudun ulkopuolinen renderöinti, välimuisti, mukautetut protokollat, CEF1 ja CEF3 jne.

No, siinä kaikki tältä päivältä.





Edellinen:Redis asettaa etäyhteyden ja pääsysalasanat
Seuraava:ASP.NET sivulla on useita pyyntöjä samanaikaisesti, syntyy esto-animaatio
Julkaistu 25.2.2019 9.14.24 |
Upea
 Vuokraisäntä| Julkaistu 12.8.2023 20.08.02 |
WebView2 (6) Jaa ja ota käyttöön WebView2-ajonaika.
https://www.itsvse.com/thread-10372-1-1.html

[WebView2] (5) Virtuaalisen isännän paikallisten HTML-resurssien lataaminen
https://www.itsvse.com/thread-10367-1-1.html

[WebView2] (4) Web ja WinForm kutsuvat funktiometodeja toisilleen
https://www.itsvse.com/thread-10365-1-1.html

WebView2 (3) Kaksisuuntainen viestintä Web- ja WinForm-sovellusten välillä
https://www.itsvse.com/thread-10364-1-1.html

[WebView2] (2) WinForm esittelee WebView2:n näyttämään verkkosisältöä
https://www.itsvse.com/thread-10362-1-1.html

[WebView2] (1) Ensikosketus Microsoft Edge WebView2 -teknologiaan
https://www.itsvse.com/thread-10361-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com