Kas yra EITP? CEF yra "Chromium Embedded Framework" santrumpa, kuri yra atvirojo kodo žiniatinklio naršyklės valdymas, pagrįstas "Google Chromium" projektu, palaikantis "Windows", "Linux" ir "Max" platformas. Be C/C++ sąsajų, yra ir kitų kalbų prievadų.
Kadangi CEF yra pagrįstas "Chromium", jis palaiko HTML5 funkcijas, įdiegtas "Webkit" ir "Chrome", ir yra gana artimas "Chrome".
CEF taip pat teikia šias funkcijas: pasirinktinius papildinius, pasirinktinius protokolus, pasirinktinius Javascrip objektus ir plėtinius; Valdomas išteklių įkėlimas, naršymas, kontekstiniai meniu ir kt.
Kas naudojasi EITP Panaudokime keletą praktinių pavyzdžių, iliustruodami, ką visi padarė su EITP:
Įvairios naršyklės
Ankstyvosios dviejų branduolių naršyklės (IE + Webkit), kai kurios naudojo CEF kaip Webkit branduolio naršyklės valdymą.
Tačiau naršyklėms išplėsti tiesiogiai "Chrome" iš tikrųjų yra karalius, ir dabar tai daro visi (įvairios greitos naršyklės).
"Evernote" klientas ("Windows")
"Evernote" leidžia vartotojams įklijuoti tinklalapius į užrašus, taip pat teikia papildinius, leidžiančius išsaugoti tinklalapius kaip užrašus.
Tai turi būti poreikis teisingai atvaizduoti puslapį kliente, ir ši užduotis paliekama CEF.
"GitHub" klientas ("Windows")
"GitHub" taip pat supakavo libcef.dll, našumo požiūriu, "ReadMe" puslapis, naudojamas projektui rodyti, turi būti CEF, o vartotojo sąsaja kitur taip pat gali būti iš dalies įdiegta su puslapiais.
QQ
QQ įdiegė kai kurias funkcijas ir sąsajas įterpdamas IE seniai. Nuo praėjusių metų QQ pristatė CEF, pakeisdama kai kurias vietas, kuriose anksčiau buvo naudojama IE, kad būtų galima naudoti kai kurias naujas funkcijas, pagrįstas "Webkit", ir tuo pačiu įgijo greičio, stabilumo ir suderinamumo pranašumų.
"Adobe Edge Animate" ir "Adobe Edge Reflow"
"Adobe" išleido visą šiuolaikinių tinklalapių rinkinį (arba HTML5?) Kraštas.
Animacijai skirta "Adobe Edge Animate" gali sukurti sudėtingas animacijas redaguodama laiko planavimo juostą ir kurdama originalus ("Edge Animate" vadinamus simboliais).
Edge Reflow yra dizainas reaguojantis žiniatinklis. Kai kurie žmonės tai verčia kaip reaguojantį, o tai iš tikrųjų yra prisitaikanti.
Pirmiau minėtos dvi programinės įrangos iš esmės yra orientuotos į Webkit branduolio naršyklę, todėl būtina įterpti Webkit branduolį, kad būtų pateikta WYSIWYG peržiūros ir redagavimo sąsaja. Jie visi naudojosi EITP. (Skirtumas tarp EITP ir gryno Webkit bus pristatytas vėliau)
Klausimas +
Pagal žiniatinklio programos koncepciją, Q+ suteikia tinklalapiams veikiančią aplinką (paprasčiau tariant: kliento dėžutę ir kai kurias galimas API) ir palaiko IE ir Webkit branduolius.
Žiniatinklio kūrimo studentams, Webkit branduolys (iš tikrųjų CEF) mes pristatėme nereikia atsižvelgti į IE versijų suderinamumo klausimus, o tai ne tik pagerina kūrimo efektyvumą, bet ir leidžia mums pasinaudoti kai kuriomis naujomis HTML5 funkcijomis. Tuo metu Q+ programų rinka, pranešimų centras, fono paveikslėliai, muzikos valdikliai ir kitos programos buvo sukurtos remiantis Webkit branduoliu.
Galima sakyti, kad Q+ projektas padarė daugiau bandymų EITP įgyvendinti, pavyzdžiui:
Sukurtas muzikos valdiklis naudoja HTML5 garso žymą;
Kai kurios programos naudoja HTML5 funkciją neprisijungus (ty su manifesto failu), tačiau, žinoma, yra keletas posūkių, ir aš įgijau daug patirties.
Supakuoti Webkit kūrėjų įrankiai.
Pasirinktiniai protokolai: Pavyzdžiui, prieiga prie qplus:// protokolų gali būti nukreipta į specialų aplanką.
Atvaizdavimas ne ekrane (OSR): Naudojant atvaizdavimą už ekrano ribų + "Windows" sluoksniuotą langą, sukuriamas netaisyklingas tinklalapio langas (kokia yra nepermatomos tinklalapio srities forma, kokia lango forma)
Kodėl verta įterpti CEF klientams? Turint tiek daug pavyzdžių, šį klausimą daug lengviau pasakyti:
Jis naudojamas tinklalapiams rodyti ir įvairioms žiniatinklio paslaugoms naudoti;
Naudokite tinklalapius vartotojo sąsajai;
Naudokite HTML5 funkcijas, tokias kaip garsas, drobė ir kt., įskaitant CSS3 funkcijas.
Ne ekrano atvaizdavimas (OSR):
Vadinamasis OSR yra atvaizduoti visą puslapį į bitmap nesukuriant realaus lango. Žinoma, ne tik atvaizdavimas, bet ir daugybė API, skirtų tvarkyti pelę, klaviatūros įvykius, įvesties metodo įvykius ir kt.
Ši funkcija ypač naudinga, kai negalima naudoti tikrų langų, pvz., sluoksniuotuose languose, arba kai žaidimuose pateikiami tekstūros.
Naudojant OSR funkcijas, galima sukurti keletą įdomių efektų, tokių kaip:
"AlloyTeam" sukūrė "Webtop", kuris naudoja OSR naršyklei, grotuvui ir kt.
Yra "Awesomium" projektas, kuris taip pat palaiko OSR, ir jau yra žaidimų projektų, kurie naudoja "Awesomium" tinklalapiams atvaizduoti žaidimuose. (Žvelgiant į išvesties failą Awesomium, jis turėtų būti panašus į CEF įgyvendinimą, tai yra visas paketas Chromium, ir CEF, kad Awesomium gali padaryti taip pat turėtų būti padaryta)
Laisvalaikiu sukūriau demonstracinę versiją ir naudojau CEF tinklalapiams atvaizduoti OpenGL Texture, o tai gali būti laikoma nedideliu bandymu pritaikyti CEF žaidimui, kaip parodyta paveikslėlyje:
Žaidimo naršyklės demonstracinė versija
Kodėl EITP? IE
IE ilgą laiką buvo įterptas naršyklės valdiklis, o tiksliau sakant, dabar turime daug IE alternatyvų.
EITP ir IE:
Suderinamumo:
IE: Branduolys svyruoja nuo 6 iki 10 versijų, priklausomai nuo operacinės sistemos, todėl negalima nuvertinti žiniatinklio kūrimo darbo krūvio, kad jis būtų suderinamas su šiomis versijomis.
CEF: Jame naudojamas "Webkit" branduolys, o charakteristikų požiūriu CEF versija gali atitikti "Chrome" versijos numerį, kad žiniatinklio kūrimas turėtų aiškų funkcijų rinkinį, pašalinant suderinamumo darbo krūvį.
HTML5 standartas ir naujos funkcijos:
IE: Žinoma, senesnės IE versijos nepalaiko naujausių HTML funkcijų ir standartų.
CEF: Nėra abejonių, kad "Webkit" ir "Chrome" yra naujų funkcijų palaikymo priešakyje.
Atvirasis kodas ir kelios platformos:
IE: Ne atvirojo kodo, tik "Windows" platforma
CEF: Atvirojo kodo, Webkit ir Chromium naudojami visi atvirojo kodo, atviras kodas reiškia daugiau pritaikomų galimybių; Ir jis apima "Windows", "Mac" ir "Linux".
Atvaizdavimas už ekrano ribų (OSR):
IE: Galite pasiekti atvaizdavimą už ekrano naudodami kai kuriuos įsilaužimus, tačiau darbo krūvis nėra mažas ir jis nėra oficialiai palaikomas.
CEF: Yra specialus atvaizdavimo už ekrano ribų režimas ir atitinkama API.
Įsiskverbimas:
IE: Visi "Windows" vartotojai turi IE, o tai yra IE pranašumas (tačiau kai kurie vartotojai turi neteisingus IE nustatymus, dėl kurių nebus galima naudoti, pvz., jscrip{filtering}t.dll neregistruotas, todėl nebus galima naudoti Javascrip{filter}t)
CEF: turite jį įdiegti ir supakuoti patys
Žiniatinklio rinkinys
Kodėl sąmoningai lyginti CEF ir Webkit?
Neseniai perskaičiau gerą straipsnį apie tai, kas yra "Webkit", kas tai nėra, ir kodėl yra tiek daug "Webkit" prievadų: "Ką kūrėjai turi žinoti apie "WebKit"
Štai apytikslė santrauka:
"Webkit" yra tinklalapių analizės ir išdėstymo variklis, kuriuo dalijasi visos "Webkit" pagrįstos naršyklės. Numatytasis "Webkit" prievadas yra "Safari", kuri yra versija, atsisiųsta iš "Webkit" šaltinio kodo kompiliacijos. Yra ir kitų "Webkit" prievadų, įskaitant "Chromium", "QtWebkit" ir kt., kurie turi skirtingą 2D grafikos, GPU pagreitėjimo, "Javascrip" variklio, garso / vaizdo dekodavimo ir kt. įgyvendinimą.
CEF vs webkit (iš tikrųjų Chromium vs Webkit)
V8 variklis, skia 2D atvaizdavimas, "Chromium" GPU pagreitintas diegimas ir kt., Puikaus "Chromium" diegimo pagalba CEF taip pat tapo puikiu "Webkit" prievadu.
EITP trūkumai: Būkite malonūs, EITP taip pat turi savų trūkumų ir apribojimų, ir jūs negalite tik paminėti privalumų, čia pristatysiu EITP trūkumus ir trūkumus:
Tūris:
Naujausia CEF versija, visų DLL suma turėtų būti artima 40M, o manoma, kad po suspaudimo ji bus 10M+. Jei pats jūsų projektas nėra didelis ir negali jo gauti, tada CEF ne jums.
Žinoma, žaidimams, kuriuos dabar skaičiuoja G, šis tūris vis tiek turėtų būti priimtinas.
Paprastiems klientų projektams tai priklauso nuo to, ar pačiam projektui reikia naudoti CEF įdiegtas funkcijas ir ar verta taip padidinti produkto diegimo paketą. Žinoma, čia taip pat yra tam tikrų įgyvendinimo kompromisų, tokių kaip atsisiuntimas po įdiegimo (aš asmeniškai nemanau, kad tai prasminga, juk vartotojai, kurie įdiegia paketus, taip pat gali pasirinkti atsisiųsti programinę įrangą, kad pagreitintų)
Talpykla:
"Chrome" talpykla sukurta taip, kad būtų galima skaityti ir rašyti tik vieną procesą, tas pats pasakytina ir apie CEF.
Klientams, kuriuos reikia atidaryti kelis kartus, kiekvienam proceso egzemplioriui gali būti nurodytas tik skirtingas talpyklos aplankas. Tačiau tai neabejotinai padidina standžiojo disko naudojimą, taip pat sukelia kai kuriuos failus, kurie iš pradžių buvo saugomi talpykloje, atsisiųsti kelis kartus (pavyzdžiui, procesas A talpykloje jQuery.js, procesas B turi prašyti ir talpykloje vieną kartą, nes jis talpykloje saugo skirtingus katalogus jQueyr.js
OSR:
OSR šiuo metu nėra panašus į realaus lango režimą, kurį gali pagreitinti GPU, o OSR gali būti atvaizduojamas tik naudojant programinę įrangą, o tai reiškia, kad kai kurie CSS 3D efektai negali būti palaikomi.
Tačiau OSR savybės vis dar tobulinamos, ir aš asmeniškai manau, kad vis dar verta laukti.
Ką bendrinti vėliau Parašius tiek daug, tai gali būti laikoma įvadu į EITP, ir ateityje parašysiu keletą sausų prekių, tai yra, kaip naudoti EITP, įskaitant:
CEF kodo įsigijimas, kompiliavimas, įterpimas, puslapių ir klientų API iškvietimų apdorojimas, OSR atvaizdavimas už ekrano ribų, talpykla, pasirinktiniai protokolai, CEF1 ir CEF3 ir kt.
Na, tai viskas šiandien.
|