See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 15907|Vastuse: 2

CEF: Embedida kliendile Chrome

[Kopeeri link]
Postitatud 22.09.2017 16:19:26 | | |
Mis on CEF?
CEF on lühend Chromium Embedded Frameworkist, mis on avatud lähtekoodiga veebibrauseri juht, mis põhineb Google Chromium projektil ja toetab Windowsi, Linuxi ja Maxi platvorme. Lisaks C/C++ liideste pakkumisele on olemas ka pordid teistele keeltele.

Kuna see põhineb Chromiumil, toetab CEF Webkitis ja Chrome'is rakendatud HTML5 funktsioone ning on jõudluse poolest suhteliselt lähedane Chrome'ile.

CEF pakub ka järgmisi funktsioone: kohandatud pluginad, protokollid, kohandatud Javascrip objektid ja laiendused; Juhitav ressursside laadimine, navigeerimine, kontekstimenüüd jne.

Kes kasutab CEF-i
Võtame mõned praktilised näited, et illustreerida, mida kõik on CEF-iga teinud:

Erinevad brauserid

Varased kahetuumalised brauserid (IE + Webkit) kasutasid mõned CEF-i Webkiti kerneli brauseri juhtimisena.

Kuid brauserite puhul on otse Chrome'is laiendamine tegelikult kuningas ning seda teevad nüüd kõik (mitmed kiired brauserid).

Evernote klient (Windowsis)

Evernote võimaldab kasutajatel kleepida veebilehti märkmetesse ning pakub ka pluginaid, millega veebilehti märkmetena salvestada.

See peab olema vajadus lehekülje korrektseks renderdamiseks kliendil ja see ülesanne jääb CEF-ile.

GitHub Client (Windowsis)

GitHub on samuti pakendanud libcef.dll jõudluse seisukohalt peab projekti kuvamiseks kasutatav ReadMe leht olema CEF ning kasutajaliides mujal võib osaliselt olla lehtedega teostatud.

QQ

QQ on ammu rakendanud mõningaid funktsioone ja liideseid, lisades IE sisse. Alates eelmisest aastast on QQ tutvustanud CEF-i, asendades mõned kohad, kus varem kasutati IE-d, et kasutada uusi Webkit-põhiseid funktsioone, ning samal ajal on see saavutanud eeliseid kiiruse, stabiilsuse ja ühilduvuse osas.

Adobe Edge Animate ja Adobe Edge Reflow

Adobe on käivitanud täieliku komplekti kaasaegseid veebilehti (või HTML5?) Edge.

Adobe Edge Animate animatsiooni jaoks suudab saavutada keerukaid animatsioone, muutes ajajoont ja luues originaale (Edge Animate'is nimetatakse neid sümboliteks).

Edge Reflow on reageeriva veebi disain. Mõned inimesed tõlgendavad seda kui reageerivat, mis on tegelikult adaptiivne.

Ülaltoodud kaks tarkvara on põhimõtteliselt suunatud Webkiti kerneli brauserile, seega on vaja embedida Webkiti tuum, et pakkuda WYSIWYG eelvaate ja redigeerimise liidest. Kõik kasutasid CEF-i. (Erinevus CEF-i ja puhta Webkiti vahel tutvustatakse hiljem)

Q+

Web Appi kontseptsiooni kohaselt pakub Q+ veebilehtedele töötavat keskkonda (lihtsalt öeldes: kliendi kast ja mõned saadaval olevad API-d) ning toetab IE ja Webkit kerneleid.

Veebiarenduse tudengitele ei pea Webkiti tuum (tegelikult CEF), mille me tutvustasime, arvestama IE versiooniühilduvusega, mis mitte ainult ei paranda arenduse efektiivsust, vaid võimaldab meil ka kasutada mõningaid uusi HTML5 funktsioone. Sel ajal arendati Q+ rakenduste turg, sõnumikeskus, taustapildid, muusikavidinad ja muud rakendused kõik Webkiti kerneli põhjal.

Q+ projekti võib öelda, et tegi CEF-i jaoks rohkem katseid, näiteks:

Arendatud muusikavidin kasutab HTML5 helisilti;

Mõned rakendused kasutavad HTML5 võrguühenduseta funktsionaalsust (st manifest-failiga), kuid loomulikult on ka keerulisi pöördeid ja olen saanud palju kogemusi.

Pakendatud Webkiti arendustööriistad.

Kohandatud protokollid: Näiteks saab ligipääsu qplus:// protokollidele suunata spetsiaalsesse kausta.

Ekraanivälise renderdamise (OSR): Kasutades ekraanivälist renderdamist + Windowsi kihilist aknat, luuakse ebakorrapärane veebilehe aken (milline on veebilehe läbipaistmatu ala kuju, milline on akna kuju)

Miks embedida CEF klientidele?
Nii paljude näidete põhjal on seda küsimust palju lihtsam öelda:

Seda kasutatakse veebilehtede kuvamiseks ja erinevate veebiteenuste kasutamiseks;

Kasuta veebilehti kasutajaliidese tegemiseks;

Kasuta HTML5 funktsioone, nagu heli, lõuend jne, sealhulgas CSS3 funktsioone.

Ekraaniväline renderdamine (OSR):

Niinimetatud OSR tähendab kogu lehe renderdamist bitikaardile ilma päris akent loomata. Muidugi mitte ainult renderdamine, vaid ka hulk API-sid, mis haldavad hiire, klaviatuuri sündmusi, sisendmeetodi sündmusi jne.

See funktsioon on eriti kasulik, kui päris aknaid ei saa kasutada, näiteks kihiliste akende puhul või kui need on mängudes tekstuurideks renderdatud.

OSR funktsioonide abil saab luua huvitavaid efekte, näiteks:

AlloyTeam tegi Webtopi, mis kasutab OSR-i brauseri, mängija jms loomiseks.

On olemas Awesomium projekt, mis toetab samuti OSR-i, ning juba on olemas mänguprojekte, mis kasutavad Awesomiumi veebilehtede renderdamiseks mängudes. (Vaadates Awesomiumi väljundfaili, peaks see olema sarnane CEF-i rakendusele, see on kõik Chromiumi pakett ja CEF, mida Awesomium suudab teha, peaks samuti olema teostatud)

Vabal ajal tegin demo ja kasutasin CEF-i veebilehtede renderdamiseks OpenGL Texture'is, mida võib pidada väikeseks katseks CEF-i mängule rakendada, nagu näidatud joonisel:

Mängusisene brauseri demo

Miks CEF?
IE

IE on olnud juba pikka aega manustatud brauseri juhtimine ning täpsemalt öeldes on meil nüüd palju alternatiive IE-le.

CEF vs IE:

Ühilduvuse:

Ehk: Kernel varieerub sõltuvalt operatsioonisüsteemist 6 kuni 10 versioonini ning veebiarenduse töökoormust, et olla nende versioonidega ühilduv, ei saa alahinnata.

CEF: See kasutab Webkiti tuuma ja omaduste seisukohalt võib CEF-versioon vastata Chrome'i versiooninumbrile, nii et veebiarendusel on selge funktsioonide komplekt, mis kõrvaldab ühilduvuse kaalumise koormuse.

HTML5 standard ja uued funktsioonid:

IE: Loomulikult ei toeta vanemad IE versioonid uusimaid HTML-funktsioone ja standardeid.

CEF: Kahtlemata on Webkit ja Chrome uute funktsioonide toetamise esirinnas.

Avatud lähtekoodiga ja platvormideülene:

Ehk: Mitte avatud lähtekoodiga, piiratud Windowsi platvormiga

CEF: Avatud lähtekoodiga, kasutatav Webkit ja Chromium on kõik avatud lähtekoodiga, avatud lähtekood tähendab rohkem kohandamisvõimalusi; Ja see hõlmab Windowsi, Maci ja Linuxi.

Ekraaniväline renderdamine (OSR):

Ehk: Ekraanivälise renderdamise saab saavutada mõne nippiga, kuid töökoormus ei ole väike ja seda ei toetata ametlikult.

CEF: On olemas eraldi ekraanivälise renderdamise režiim ja vastav API.

Penetratsioon:

IE: Kõigil Windowsi kasutajatel on IE, mis on IE eelis (kuid mõnel kasutajal on valed IE seaded, mis viivad kasutamatuse tekkimiseni, näiteks jscrip{filtering}t.dll ei ole registreeritud, mistõttu ei saa kasutada Javascrip{filter}t)

CEF: Sa pead selle ise paigaldama ja pakendama

Webkit

Miks võrrelda teadlikult CEF-i ja Webkiti?

Hiljuti lugesin head artiklit selle kohta, mis Webkit on, mis see ei ole ja miks on nii palju Webkiti porte: "Mida arendajad peavad WebKiti kohta teadma"

Siin on umbkaudne kokkuvõte:

Webkit on veebilehtede parsimis- ja korraldusmootor, mida jagavad kõik Webkit-põhised brauserid. Vaikimisi Webkiti port on Safari, mis on allalaaditud versioon Webkiti lähtekoodi kompilatsioonist. On ka teisi Webkit'i porte, sealhulgas Chromium, QtWebkit jt, millel on erinevad rakendused 2D graafikas, GPU kiirenduses, Javascrip mootoris, audio/video dekodeerimises jne.

CEF vs webkit (tegelikult Chromium vs Webkit)

V8 mootor, Skia 2D renderdus, Chromiumi GPU-kiirendatud rakendus jne, Chromiumi suurepärase rakenduse abiga on CEF saanud ka suurepäraseks Webkit-portiks.

CEF puudused:
Olge lahked, CEF-il on ka oma puudused ja piirangud, ning sa ei saa ainult eeliseid mainida, siin tutvustan CEF-i puudusi ja puudusi:

Maht:

Viimases CEF-i versioonis peaks kõigi DLL-ide summa olema ligikaudu 40M, ja hinnanguliselt on see pärast kompressiooni 10M+. Kui sinu projekt ise ei ole suur ja ei saa seda kätte, siis CEF ei sobi sulle.

Muidugi, mängude puhul, mida nüüd arvutatakse G-ga, peaks see maht siiski olema aktsepteeritav.

Tavaliste kliendiprojektide puhul sõltub see sellest, kas projekt ise peab kasutama CEF-i poolt rakendatud funktsioone ja kas tasub toote paigalduspaketti nii palju suurendada. Muidugi on siin ka mõningaid rakenduse kompromisse, näiteks allalaadimine pärast installimist (isiklikult ei pea seda oluliseks, sest kasutajad, kes installivad pakette, saavad ka tarkvara alla laadida, et kiirendada).

Vahemälu:

Chrome'i vahemälu on loodud ainult ühe protsessi lugemiseks ja kirjutamiseks ning sama kehtib CEF-i kohta.

Klientide puhul, mida tuleb avada mitu korda, saab iga protsessi instantsi jaoks määrata ainult erineva vahemälukausta. Kuid see suurendab kahtlemata kõvaketta kasutust ning põhjustab ka seda, et mõned algselt vahemällu salvestatud failid laaditakse alla mitu korda (näiteks protsess A vahemällu salvestab jQuery.js, protsess B peab taotlema ja vahemällu salvestama ühe korra, sest see vahemällu salvestab erinevaid katalooge jQueyr.js

OSR:

OSR ei ole praegu nagu päris aknarežiim, mida saab kiirendada GPU abil, ja OSR-i saab renderdada ainult tarkvara abil, mis tähendab, et mõningaid CSS 3D efekte ei saa toetada.

Siiski paranevad OSR-i omadused endiselt ning minu arvates tasub seda siiski oodata.

Mida hiljem jagada
Pärast nii palju kirjutamist võib seda pidada sissejuhatuseks CEF-i ning tulevikus kirjutan ka mõningaid materjale, st CEF-i kasutamist, sealhulgas:

CEF-koodi hankimine, kompileerimine, manustamine, lehtede ja klientide API kõnede töötlemine, OSR-i ekraanivälise renderdamine, vahemällu salvestamine, kohandatud protokollid, CEF1 ja CEF3 jne.

Noh, tänaseks kõik.





Eelmine:Redis seadistab kaugühenduse ja ligipääsu paroolid
Järgmine:ASP.NET lehel on korraga mitu päringut, tekib peatatud animatsiooni blokeerimise olukord
Postitatud 25.02.2019 09:14:24 |
Suurepärane
 Üürileandja| Postitatud 12.08.2023 20:08:02 |
WebView2 (6) WebView2 käitusaja levitamine ja juurutamine
https://www.itsvse.com/thread-10372-1-1.html

[WebView2] (5) Virtuaalse hosti kohalike HTML-ressursside laadimine
https://www.itsvse.com/thread-10367-1-1.html

[WebView2] (4) Web ja WinForm kutsuvad üksteisele funktsioonimeetodeid
https://www.itsvse.com/thread-10365-1-1.html

WebView2 (3) Kahepoolne suhtlus veebi ja WinFormi rakenduste vahel
https://www.itsvse.com/thread-10364-1-1.html

[WebView2] (2) WinForm tutvustab WebView2 veebisisu kuvamiseks
https://www.itsvse.com/thread-10362-1-1.html

[WebView2] (1) Microsoft Edge WebView2 tehnoloogia esmatutvustus
https://www.itsvse.com/thread-10361-1-1.html
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com