Kas ir EISI? CEF ir saīsinājums no Chromium Embedded Framework, kas ir atvērtā koda tīmekļa pārlūkprogrammas vadīkla, kuras pamatā ir Google Chromium projekts, kas atbalsta Windows, Linux un Max platformas. Papildus C/C++ saskarņu nodrošināšanai ir arī porti citām valodām.
Tā kā CEF ir balstīts uz Chromium, tas atbalsta HTML5 funkcijas, kas ieviestas Webkit un Chrome, un veiktspējas ziņā ir salīdzinoši tuvu Chrome.
CEF nodrošina arī šādas funkcijas: pielāgoti spraudņi, pielāgoti protokoli, pielāgoti Javascrip objekti un paplašinājumi; Kontrolējama resursu ielāde, navigācija, konteksta izvēlnes utt.
Kas izmanto CEF Izmantosim dažus praktiskus piemērus, lai ilustrētu, ko ikviens ir paveicis ar EISI:
Dažādas pārlūkprogrammas
Agrīnās divkodolu pārlūkprogrammas (IE + Webkit), dažas izmantoja CEF kā Webkit kodola pārlūkprogrammas vadību.
Tomēr pārlūkprogrammām paplašināšana tieši pārlūkā Chrome faktiski ir karalis, un visi to dara tagad (dažādas ātras pārlūkprogrammas).
Evernote klients (operētājsistēmā Windows)
Evernote ļauj lietotājiem ielīmēt tīmekļa lapas piezīmēs, kā arī nodrošina spraudņus, lai saglabātu tīmekļa lapas kā piezīmes.
Tam jābūt nepieciešamībai pareizi atveidot lapu klientā, un šis uzdevums ir atstāts CEF.
GitHub klients (operētājsistēmā Windows)
GitHub ir arī iepakojis libcef.dll, no veiktspējas viedokļa ReadMe lapai, kas tiek izmantota projekta parādīšanai, jābūt CEF, un lietotāja interfeiss citur var tikt daļēji ieviests ar lapām.
QQ
QQ jau sen ir ieviesis dažas funkcijas un saskarnes, ieguldot IE. Kopš pagājušā gada QQ ir ieviesis CEF, aizstājot dažas vietas, kurās iepriekš tika izmantots IE, lai varētu izmantot dažas jaunas funkcijas, kuru pamatā ir Webkit, un tajā pašā laikā tas ir ieguvis priekšrocības ātrumā, stabilitātē un saderībā.
Adobe Edge Animate un Adobe Edge pārplūšana
Adobe ir izlaidis pilnu mūsdienīgu tīmekļa lapu (vai HTML5?) komplektu Mala.
Adobe Edge Animate animācijai var izveidot sarežģītas animācijas, rediģējot laika grafiku un izveidojot oriģinālus (Edge Animate sauktus par simboliem).
Edge Reflow ir dizains adaptīvs tīmeklis. Daži cilvēki to tulko kā atsaucīgu, kas patiesībā ir adaptīvs.
Iepriekš minētās divas programmatūras pamatā ir orientētas uz Webkit kodola pārlūkprogrammu, tāpēc ir nepieciešams iegult Webkit kodolu, lai nodrošinātu WYSIWYG priekšskatījuma un rediģēšanas interfeisu. Viņi visi izmantoja CEF. (Atšķirība starp EISI un tīru Webkit tiks ieviesta vēlāk)
Q+
Saskaņā ar Web App koncepciju Q+ nodrošina tīmekļa lapu darbības vidi (vienkārši sakot: klienta lodziņš un daži pieejamie API) un atbalsta IE un Webkit kodolus.
Tīmekļa izstrādes studentiem mūsu ieviestajam Webkit kodolam (faktiski CEF) nav jāņem vērā IE versiju saderības problēmas, kas ne tikai uzlabo izstrādes efektivitāti, bet arī ļauj mums izmantot dažas jaunas HTML5 funkcijas. Tajā laikā Q+ lietojumprogrammu tirgus, ziņojumu centrs, fona attēli, mūzikas logrīki un citas lietojumprogrammas tika izstrādātas, pamatojoties uz Webkit kodolu.
Var teikt, ka Q+ projekts ir veicis vairāk mēģinājumu EISI, piemēram:
Izstrādātais mūzikas logrīks izmanto HTML5 audio tag;
Dažas lietojumprogrammas izmanto HTML5 bezsaistes funkcionalitāti (t.i., ar manifesta failu), bet, protams, ir daži pagriezieni, un es esmu ieguvis lielu pieredzi.
Iepakoti Webkit izstrādātāju rīki.
Pielāgoti protokoli: Piemēram, piekļuvi qplus:// protokoliem var novirzīt uz īpašu mapi.
Ārpus ekrāna renderēšana (OSR): izmantojot renderēšanu ārpus ekrāna + Windows slāņainu logu, tiek izveidots neregulārs tīmekļa lapas logs (kāda ir tīmekļa lapas necaurspīdīgā laukuma forma, kāda ir loga forma)
Kāpēc iegult CEF klientiem? Ar tik daudziem piemēriem šo jautājumu ir daudz vieglāk pateikt:
To izmanto, lai parādītu tīmekļa lapas un izmantotu dažādus tīmekļa pakalpojumus;
Izmantojiet tīmekļa lapas, lai veiktu lietotāja interfeisu;
Izmantojiet HTML5 līdzekļus, piemēram, audio, audeklu utt., ieskaitot CSS3 funkcijas.
Ārpus ekrāna renderēšana (OSR):
Tā sauktais OSR ir atveidot visu lapu bitkartē, neizveidojot reālu logu. Protams, ne tikai renderēšana, bet arī virkne API, lai apstrādātu peli, tastatūras notikumus, ievades metodes notikumus utt.
Šī funkcija ir īpaši noderīga, ja nevar izmantot reālus logus, piemēram, slāņainos logos, vai kad spēlēs tie tiek atveidoti tekstūrās.
Izmantojot OSR funkcijas, var izveidot dažus interesantus efektus, piemēram:
AlloyTeam izveidoja Webtop, kas izmanto OSR, lai izveidotu pārlūkprogrammu, atskaņotāju utt.
Ir Awesomium projekts, kas arī atbalsta OSR, un jau ir spēļu projekti, kas izmanto Awesomium, lai atveidotu tīmekļa lapas spēlēs. (Aplūkojot Awesomium izvades failu, tam vajadzētu būt līdzīgam CEF ieviešanai, tas viss ir hroma pakete, un CEF, ko Awesomium var darīt, arī jādara)
Brīvajā laikā es izveidoju demonstrāciju un izmantoju CEF, lai atveidotu tīmekļa lapas OpenGL Texture, ko var uzskatīt par nelielu mēģinājumu piemērot CEF spēlei, kā parādīts attēlā:
Spēles pārlūka demonstrācija
Kāpēc EISI? IE
IE jau ilgu laiku ir bijusi iegulta pārlūkprogrammas vadīkla, un, precīzāk, mums tagad ir daudz alternatīvu IE.
CEF pret IE:
Saderības:
IE: Kodols svārstās no 6 līdz 10 versijām atkarībā no operētājsistēmas, un tīmekļa izstrādes darba slodzi, lai tā būtu saderīga ar šīm versijām, nevar novērtēt par zemu.
CEF: Tas izmanto Webkit kodolu, un no raksturlielumu viedokļa CEF versija var atbilst Chrome versijas numuram, lai tīmekļa izstrādei būtu skaidrs funkciju kopums, novēršot saderības apsvēršanas darba slodzi.
HTML5 standarta un jaunas funkcijas:
IE: Protams, vecākas IE versijas neatbalsta jaunākās HTML funkcijas un standartus.
CEF: Nav šaubu, ka Webkit un Chrome ir jaunu funkciju atbalsta priekšgalā.
Atvērtais kods un starpplatformas:
IE: Nav atvērtā koda, tikai Windows platforma
CEF: Atvērtais kods, Webkit un Chromium ir atvērtā koda, atvērtais kods nozīmē vairāk pielāgojamu iespēju; Un tas aptver Windows, Mac un Linux.
Renderēšana ārpus ekrāna (OSR):
IE: Jūs varat panākt renderēšanu ārpus ekrāna, izmantojot dažus hacks, bet darba slodze nav maza, un tā netiek oficiāli atbalstīta.
CEF: Ir īpašs renderēšanas režīms ārpus ekrāna un atbilstoša API.
Iekļūšana:
IE: Visiem Windows lietotājiem ir IE, kas ir IE priekšrocība (bet dažiem lietotājiem ir nepareizi IE iestatījumi, kas novedīs pie nelietojamības, piemēram, jscrip{filtering}t.dll nav reģistrēts, kā rezultātā nav iespējams izmantot Javascrip{filter}t)
CEF: Jums tas ir jāinstalē un jāiepako pašam
Tīmekļa komplekts
Kāpēc apzināti salīdzināt CEF un Webkit?
Es nesen izlasīju labu rakstu par to, kas ir Webkit, kas tas nav, un kāpēc ir tik daudz Webkit portu: "Kas izstrādātājiem jāzina par WebKit"
Šeit ir aptuvens kopsavilkums:
Webkit ir tīmekļa lapu parsēšanas un sakārtošanas programma, kas ir kopīga visām Webkit pārlūkprogrammām. Noklusējuma Webkit ports ir Safari, kas ir versija, kas lejupielādēta no Webkit avota koda kompilācijas. Ir arī citi Webkit porti, tostarp Chromium, QtWebkit utt., Kuriem ir dažādas 2D grafikas, GPU paātrinājuma, Javascrip dzinēja, audio / video dekodēšanas utt.
CEF vs webkit (faktiski Chromium vs Webkit)
V8 dzinējs, skia 2D renderēšana, Chromium GPU paātrināta ieviešana utt., Ar Chromium lieliskās ieviešanas palīdzību CEF ir kļuvis arī par lielisku Webkit portu.
EISI trūkumi: Esiet laipni, EISI ir arī savi trūkumi un ierobežojumi, un jūs nevarat tikai pieminēt priekšrocības, šeit es iepazīstināšu ar EISI trūkumiem un trūkumiem:
Tilpums:
Jaunākajai CEF versijai, visu DLL summai jābūt tuvu 40M, un tiek lēsts, ka pēc saspiešanas tā būs 10M+. Ja jūsu projekts pats par sevi nav liels un to nevar saņemt, tad CEF nav domāts jums.
Protams, spēlēm, kuras tagad aprēķina G, šim apjomam joprojām vajadzētu būt pieņemamam.
Parastajiem klientu projektiem tas ir atkarīgs no tā, vai pašam projektam ir jāizmanto CEF ieviestās funkcijas un vai ir vērts tik daudz palielināt produkta instalācijas paketi. Protams, šeit ir arī daži ieviešanas kompromisi, piemēram, lejupielāde pēc instalēšanas (es personīgi nedomāju, ka tas ir jēgpilni, galu galā lietotāji, kas instalē pakotnes, var arī izvēlēties lejupielādēt programmatūru, lai paātrinātu)
Kešatmiņa:
Chrome kešatmiņa ir paredzēta tikai vienam lasīšanas un rakstīšanas procesam, un tas pats attiecas uz CEF.
Klientiem, kas jāatver vairākas reizes, katrai procesa instancei var norādīt tikai citu kešatmiņas mapi. Tomēr tas neapšaubāmi palielina cietā diska lietojumu, kā arī izraisa dažu failu, kas sākotnēji tika saglabāti kešatmiņā, lejupielādi vairākas reizes (piemēram, process A kešatmiņā jQuery.js, process B ir jāpieprasa un kešatmiņā vienu reizi, jo tas kešatmiņā saglabā dažādus direktorijus jQueyr.js
OSR:
OSR pašlaik nav kā reāls loga režīms, ko var paātrināt ar GPU, un OSR var atveidot tikai ar programmatūru, kas nozīmē, ka dažus CSS 3D efektus nevar atbalstīt.
Tomēr OSR īpašības joprojām tiek uzlabotas, un es personīgi domāju, ka to joprojām ir vērts gaidīt.
Ko kopīgot vēlāk Pēc tik daudz rakstīšanas to var uzskatīt par ievadu CEF, un nākotnē es uzrakstīšu dažas sausas preces, tas ir, kā izmantot CEF, tostarp:
CEF koda iegūšana, kompilēšana, iegulšana, lapu un klientu API izsaukumu apstrāde, OSR renderēšana ārpus ekrāna, kešatmiņa, pielāgoti protokoli, CEF1 un CEF3 utt.
Nu, tas viss šodien.
|