第一次接觸瀏覽器開發(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)?..