chrome源碼研究啟航篇

第一次接觸瀏覽器開發(fā)是在09年上半年, 一款J2me的開源瀏覽器。瀏覽器中對(duì)一些常規(guī)的標(biāo)簽做了樣式定制,訪問(wèn)各網(wǎng)站渲染出來(lái)風(fēng)格都像是自己開發(fā)的,勾起了極大的研究興趣。心想如果把標(biāo)簽解析和繪制工作完全按自己的意愿去定制一遍 ,那豈不是一個(gè)瀏覽器開發(fā)下來(lái),再訪問(wèn)所有網(wǎng)站都delistyle 了。激情滿滿的對(duì)已有的基礎(chǔ)標(biāo)簽樣式改了一個(gè)遍(基礎(chǔ)標(biāo)簽基礎(chǔ)樣式)。對(duì)簡(jiǎn)單網(wǎng)頁(yè)支持還不錯(cuò),復(fù)雜網(wǎng)頁(yè)解析不出來(lái)的直接過(guò)濾掉。最終止步于對(duì)于對(duì)等復(fù)雜標(biāo)簽的支持和CSS支持樣式的擴(kuò)展及Js解析能力上。工程量太大,標(biāo)簽和樣式想都支持真心水平和精力不夠(C/S架構(gòu))。

隨著移動(dòng)互聯(lián)網(wǎng)大潮的興起,10年獨(dú)立開發(fā)了幾款移動(dòng)游戲,11年開發(fā)手機(jī)錢包(億陽(yáng)),12年開發(fā)社交類應(yīng)用(人人),13年開發(fā)電商類應(yīng)用(百度糯米)。移動(dòng)端產(chǎn)品各類型開發(fā)了一圈后,最后選擇沉心在一個(gè)業(yè)務(wù)方向上,14年初加入了360手機(jī)瀏覽器,一直到現(xiàn)在。

國(guó)內(nèi)的瀏覽器開發(fā)多數(shù)處于殼層面的開發(fā)(IE,Chrome,Firefox, Safari ,Opera在爭(zhēng)份額,爭(zhēng)制定Html標(biāo)準(zhǔn)的話語(yǔ)權(quán)),在定位上,并非作為一個(gè)中立的工具去開發(fā),而是賦予了更多的商業(yè)化屬性的產(chǎn)品。重在推搜索,推內(nèi)容服務(wù)(包括廣告)。

手機(jī)瀏覽器也同樣如此。通過(guò)提供搜索,內(nèi)容聚合,個(gè)性推薦,省流,廣告攔截等服務(wù)吸引用戶擴(kuò)大市場(chǎng)份額,爭(zhēng)奪流量入口,并逐步向平臺(tái)級(jí)應(yīng)用發(fā)展,最終成為可提供所有內(nèi)容服務(wù)的超級(jí)容器和平臺(tái)。

做殼有做殼的玩法,在業(yè)務(wù)層面上開發(fā)功能和服務(wù)是沒(méi)有任何阻力的,想做的事幾乎都能在殼上做。這也是為什么國(guó)內(nèi)到目前仍有很多家在堅(jiān)持只做殼的瀏覽器。

然而純做殼也有其逃脫不了的限制:核版本碎片化導(dǎo)致的解析渲染能力不統(tǒng)一,接口不統(tǒng)一;核層面的問(wèn)題無(wú)法解決;核層面服務(wù)定制無(wú)法觸及。

為什么選擇下一步研究核?

國(guó)內(nèi)瀏覽器業(yè)務(wù)上的開發(fā)已趨于成熟,可玩的花樣基本均能玩轉(zhuǎn),后續(xù)拼的是服務(wù)能力和基礎(chǔ)體驗(yàn)。

服務(wù)能力體現(xiàn)在基于大數(shù)據(jù)云服務(wù)提供更精準(zhǔn)的內(nèi)容分發(fā)&推送,搜索推薦,安全保障。

基礎(chǔ)體驗(yàn)體現(xiàn)于網(wǎng)頁(yè)打開速度(轉(zhuǎn)碼服務(wù),省流服務(wù),核渲染解析能力)要最快,閱讀要最舒服(排版,網(wǎng)頁(yè)操作支持)。

再去碼磚碼業(yè)務(wù)已沒(méi)有太高的價(jià)值,專注于在服務(wù)和基礎(chǔ)體驗(yàn)上提升才是拼份額爭(zhēng)用戶的最好武器。

為什么選擇選擇研究Chromium_Android?

1,Chromium足夠強(qiáng)大(OS級(jí));

2,項(xiàng)目開源;(C層開源已久,UI層代碼也均開源)

3,很可能會(huì)成為未來(lái)技術(shù)風(fēng)口;

4,做殼久了,也該剝開看看;

5,工作需要,瀏覽器體驗(yàn)之爭(zhēng),離不開在核上深度優(yōu)化;

怎樣的研究計(jì)劃?

step1,編譯Chrome源碼,構(gòu)建工程;

step2,基于源碼工程,做各業(yè)務(wù)實(shí)現(xiàn)分析和嘗試。

step3,分析核解析,渲染,硬件加速,通信代理等技術(shù)。

step4,各業(yè)務(wù)嘗試,編譯產(chǎn)出webview.apk|chrome_public_apk

為什么寫出來(lái)?

這將是一個(gè)漫長(zhǎng)和極富挑戰(zhàn)的學(xué)習(xí)過(guò)程。通過(guò)定期總結(jié)的方式,一方面為了定期整理思路,整理所學(xué),督促自身;另一方面希望能在前進(jìn)的路上找到更多同行者。過(guò)程會(huì)將項(xiàng)目開源,結(jié)合項(xiàng)目記錄學(xué)習(xí)和實(shí)踐過(guò)程。

做殼那些事:

1,PC打通,收藏夾,歷史紀(jì)錄和PC的數(shù)據(jù)同步&網(wǎng)址傳輸;

2,省流服務(wù),通過(guò)設(shè)置local代理,實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求走代理服務(wù)器,進(jìn)而實(shí)現(xiàn)省流。

3,免流服務(wù),同上。關(guān)鍵是和運(yùn)營(yíng)商合作,實(shí)現(xiàn)結(jié)算和對(duì)賬服務(wù)。

4,廣告攔截,通過(guò)adblock過(guò)濾規(guī)則+白名單+黑名單。

5,小說(shuō),視頻,新聞:插件化,JS注入。

6,網(wǎng)址安全檢測(cè)。

7,Push。

8,業(yè)務(wù)性功能:導(dǎo)航,宮格,截圖,分享,換膚,夜間模式,翻頁(yè)模式,UA,標(biāo)簽,WI-FI,下載...

9,基礎(chǔ)服務(wù):版本控量升級(jí),插件控量升級(jí),矩陣?yán)?..

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,143評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,416評(píng)論 4 61
  • 今天在用Webpack開發(fā)的時(shí)候,突然發(fā)現(xiàn)文件變動(dòng)后熱部署功能不工作了,感覺(jué)好像是webpack檢測(cè)不到文件的修改...
    kongxx閱讀 1,120評(píng)論 0 1
  • 小時(shí)候讀古詩(shī),總是覺(jué)得古人故作風(fēng)雅,任何感覺(jué)都咬文嚼字,那么多的心緒,要用那么少的字去描述,好像字越少的表達(dá),才能...
    簡(jiǎn)樂(lè)兮閱讀 1,264評(píng)論 3 15
  • Day 2 按第一天晚導(dǎo)游的信息,準(zhǔn)時(shí)來(lái)到約定地點(diǎn)等候旅游大巴,開啟新一天的旅程。 第一站 南普陀寺 南普陀寺是廈...
    雪落無(wú)語(yǔ)閱讀 528評(píng)論 0 0

友情鏈接更多精彩內(nèi)容