專訪 · 夸克瀏覽器技術團隊:極簡產品背後的技術美學

去年10月末,夸克瀏覽器橫空出世。憑藉「極簡」主義的情感化設計以及無信息流、無干擾、沉浸式瀏覽的設計,吸引了大量用戶的眼球,2.0版本上線引入的「輕應用」也顛覆了傳統瀏覽器的形態,使人耳目一新。夸克瀏覽器打出的口號是「由簡致極 迴歸初心」,王自如也評價:UC 在獨善其身,夸克是兼濟天下。一個瀏覽器如何兼濟天下?掘金編輯 Linmi 帶着一樣的問題,對夸克瀏覽器研發團隊進行了一次線上專訪,嘗試從技術的角度回答這個問題。前端

人不在多,有碼則行

李志明: 瀏覽器

夸克瀏覽器 Android 和 iOS 兩個平臺都有。Android 端有5人,iOS 端有3人。隨着產品完善,需求逐步減小。目前 Android 端有 2人,iOS端 1 人,後面兩個平臺會保持 2人左右的開發人力。固然,咱們有近百人的內核開發團隊,這是夸克瀏覽器跟 UC 共用的。 團隊的兩位同窗。 @劉智藝 是負責夸克 iOS 的同窗, @張惠鈞 是負責夸克 Android 的同窗。他們都是開發經驗很是豐富、產品感很好的開發人員,有問題也能夠詢問他們哦。@張惠鈞 是酷安的小網紅了,暱稱「怕冷的瘦子」,在酷安跟夸克的愛好者打成了一片。緩存

強大內核與卓越外殼協同減小緩存與應用體積

Linmi 問:服務器

我剛剛去酷安看了一下,看到惠鈞有發一個關於瀏覽器緩存對比的圖片,夸克瀏覽器的緩存只有1.45M,而某瀏覽器有13.9M,想知道夸克瀏覽器是如何進行優化,將緩存減小到只有其餘瀏覽器的十分之一的?微信





張惠鈞 答:

其實這個問題存在一些誤會,瀏覽器的緩存數據大小跟用戶的使用時長有關,夸克在使用較長時間後數據也會增加。網絡

可是在同等使用條件下,夸克的緩存數據處理是頗有優點的,一方面有賴於咱們背後強大的內核團隊,它們在內核模塊作了十足的優化;另外一方面,咱們外殼(相對於內核部分就是外殼)在緩存數據的處理策略上也下了功夫,會智能地根據用戶的使用狀況、手機狀況去動態幫助用戶處理過期的、不須要的數據,讓瀏覽器保持乾淨。架構

Linmi 問:框架

我剛剛對比了手機上的夸克和 Chrome ,緩存相差已有百倍。惠鈞剛剛也說了夸克團隊在緩存數據的處理策略上下了功夫,那麼夸克做爲一款多端產品,iOS 和 Android 兩端的緩存優化的技術方案上有什麼異同?工具

我使用 App Store 下載夸克時,發現應用大小有29.3M,再去看 Android 應用市場,應用體積也達到了21.8M,和同類型的產品體積差很少,可是夸克的界面卻沒有同類產品複雜,那夸克這 20M 體積包含了什麼?性能

張惠鈞 答:

我來回答下第二個問題:

夸克是在去年10.31上線的,當時安卓版的大小是18+M,通過一年的版本迭代,逐漸達到了如今的21.8M;

這個包體大小,佔用最大的是咱們強大、高效的內核,其大小是14+M;
剩下的部分則是咱們外殼的代碼和資源(圖片、文字等);

iOS部分由@劉智藝補充~

劉智藝 答:

對於第一個問題,應該說兩端在緩存優化的技術方案上並無什麼差別。

第二個問題,對於 iOS 也是類似的,包 size 內容包含了咱們以 gruop 爲單位項目通用組件,大部分 UC 團隊的技術沉澱,雖然咱們較 Android 端來講沒有一個成塊的內核,可是優秀的網絡協議層、WebView 修飾技術、視頻託管服務等藏在深處的用戶服務支持能力,都是須要必須但並不大的 size 做爲前提。
並且由於 bitcode 的支持,理論上來講 AppStore 顯示的包 size 是包含全部機型處理器的可執行文件,而下載下來則否則。

Linmi 問:

由應用大小我想到了應用瘦身,掘金上常常有做者發佈應用瘦身的相關文章。我所瞭解的有圖片資源瘦身,對一些沒必要要的庫進行精簡。除了我說的那些,夸克團隊的同窗對應用瘦身方面,能否分享一下相關經驗?

劉智藝 答:

恩,是的。通常應用瘦身方案針對就這兩點,庫的精簡摘除主要是開發人員純人力的工做,而資源瘦身是有必定的技巧可尋的,業界經常使用的通常就是壓縮、選取最優格式支持、複用。UC 系列 App 的瘦身工具其實也是應用前端開發經常使用的雪碧圖原理,這裏能夠提供下歷史數據,UC 110M~80M,夸克 26M~24M。對於咱們須要兼顧日夜切換和高清顯示的業務需求,資源文件的確是包 size 大頭。

除了 U4 內核,更搶眼的是輕應用

Linmi 問:

很感謝你的回答。
我回顧一下剛剛夸克團隊同窗的回答,屢次提到了強大高效的內核。那麼,這個內核強大高效在哪裏?夸克瀏覽器在應用適配這個內核時,是否有相關踩坑經驗能夠分享一二?

張惠鈞 答:

內核部分是瀏覽器的核心基礎,有不少特性的都離不開它。

咱們用的內核跟 UC 是同一套的,都是 U4 內核,這是 UC 在瀏覽器行業十多年來的經驗和技術積累的產物。它強大在哪?從用戶的角度直觀地說,快速加載網頁、深度廣告過濾(包括手動標記廣告),友好的網頁排版(支持適應屏幕,部分網頁重排版),出色的視頻播放體驗等等都離不開內核的支持,固然還有不少其餘功能。。

適配內核過程還好,沒什麼特別的坑。只是因爲咱們內核有不少本身的特性,因此接口會跟原生的系統內核有差別,這個時候就是考驗咱們外殼的對接框架層的架構設計了。

固然,夸克能俘獲衆多用戶的喜好,除了內核的強大,也離不開外殼的支持。用戶喜歡的其餘特性,如毫秒級的啓動速度,絲滑般的操做體驗,炫酷的動畫與界面,極速的下載速度等等都離不開咱們外殼同窗的努力。

Linmi 問:

惠鈞剛剛有提到外殼的支持,我仔細體驗了一下夸克,發現夸克內置相關網站導航,而且對某些網站作了適配,使用起來像是原生應用同樣,對這些網站適配是隻是單純挨個站點適配,還有什麼相關黑科技?

張惠鈞 答:

我猜你說的是咱們的輕應用吧,很是有眼光,它是咱們夸克2.0改版後的一個新功能;

關於這塊,咱們並不是挨個站點去適配的,確實存在小小的黑科技:
首先,這塊咱們是跟「輕芒閱讀」團隊合做的,「輕芒」在這類型的功能已經有十分紅熟的技術,跟他們的合做很愉快;

其次,在實現上,咱們採用了基於阿里 Weex 改版的 UCWeex 框架搭建,Weex 是一個跨平臺的框架,代碼寫一份便可在 iOS 端和 Android 端雙端通用,因此如今輕應用的優化均可以由兩個以上的人力縮減到一我的來完成;大家所感覺到的原生應用的體驗也是在 Weex 框架上就能實現到;

最後,很多人第一次用輕應用的時候,都會誤覺得這是商業化,是赤裸裸的廣告。然而,你們都誤會了,上線輕應用,是咱們爲了讓用戶有更好的無廣告、良好的原生體驗所作的嘗試,咱們所抽選的站點都是咱們的用戶最常訪問的,用戶評價最好的一批站點。這個不只僅不是廣告,並且咱們還要爲這個功能付出必定服務器的費用。固然,目前輕應用功能還沒徹底成型,咱們還會繼續探索和完善。

嚴格遵照規範開發

Linmi 問:

看到惠鈞說和外部有相關合做,那團隊內部是怎麼合做的呢?是否能分享一下夸克團隊的工做流程,好比開發中相關規範和工具,團隊的 CodeView 是怎麼進行的?

輕應用是非商業化功能,那麼夸克將來會進行商業變現麼?變現方向能否透漏一二?(涉及商業祕密能夠不說哈)

順便提一句:看到輕應用上沒有掘金,我如今最想說的就是求加上掘金啊!🙃

張惠鈞 答:

跟大部分團隊同樣,咱們也是有本身的一套開發規範,也是 UC 的開發規範,全部代碼規範、代碼質量、代碼提交格式等都是嚴格遵循規範來走
咱們的開發環境仍是你們熟悉的 AndroidStudio,版本管理是 Git,CodeView 用的是 Gerrit,文檔記錄和管理用的是Confluence。

關於商業化變現,你們能夠放心。雖然夸克的崛起已然具有了極具潛力的商業價值,平時和會有一些廠商跟咱們接觸探討,但能夠確定的是,近階段商業化不會是咱們的重心,目前都沒有作商業化功能的計劃。能夠稍微透露一點,憑藉傳統的搜索分紅,咱們目前過得還挺好,因此咱們在商業化方面並不急,也毫不會貿然照搬現成的商業化模式,至於到底會怎樣,那都是後話了。

PS:輕應用將來確定加上大掘金的

Linmi 問:

謝謝!
關於代碼質量能否簡要說一下,做爲開發者,對一些大廠內部技術仍是想了解一下。

張惠鈞 答:

通常狀況下,咱們提交代碼都是須要經過 CodeReview 的,尤爲是要發送給模塊 Owner 去 Review,只有 Review 經過才能提交;

在平時咱們也有不少自動化的測試、性能測試等來監控咱們的程序質量;

在發佈前,咱們會讓團隊裏全部人花上半個小時左右時間去進行衆測,你們都須要測試不是本身負責的模塊,保證上線前一些明顯的問題提早發現並解決;

大概就是這樣子~

李志明 答:

關於自動化測試這一塊,我補充下:
Android 平臺,咱們使用 Robolectric+JUnit 的單元測試框架。對於非 UI 相關的代碼,好比關鍵的 Model 或業務邏輯,咱們會寫單元測試。團隊成員 push 代碼前,須要本身執行全部的單元測試(經過執行一個腳本),確保全部單元測試 case 經過,才能夠 push 代碼。另外,主線的每一次代碼提交都會自動觸發服務器執行單元測試,若是單元測試的 case 不經過,代碼提交人和開發團隊會收到郵件報警。

將經過掘金專欄對外輸出

Linmi 問:

自動化開發的確省時省力,這時候我想到了夸克團隊內已經有相關成熟體系了。那夸克團隊是否有對外輸出,對技術輸出態度是什麼樣?好比怎麼看待開源,是否鼓勵團隊對外輸出開源項目?

李志明 答:

咱們從開源的技術得到了不少,好比剛剛說的 Robolectric,以及咱們用來實現Doodle的 Lottie. 咱們也很樂意能反哺開源社區。但目前咱們面臨的一個問題是團隊精力不夠。開源的技術文檔、維護是比較耗時間和精力的。因此短時間沒有打算。但長期,當咱們團隊有必定的時間富餘後,咱們但願能作這個事情。目前,咱們仍是專一於作好產品,還有不少用戶反饋的問題待解決。雖然比起同類產品,夸克很出色,但離咱們心中完美的瀏覽器還有大段的距離。可是一些技術分享的事情,咱們已經籌劃在作了。好比,在貴平臺上發專欄的技術文章(夸克瀏覽器技術團隊掘金專欄),但願跟掘金的讀者多交流~

王者榮耀五黑缺人,瘋狂招聘中

Linmi 問:

哈哈,很開心夸克瀏覽器的小夥伴能來掘金這個技術平臺作輸出,歡迎!
聊完技術話題,那咱們聊聊夸克團隊生活做爲結尾,好比夸克團隊業餘時間都在作些什麼?團隊的福利,團隊的激勵措施等等…..

李志明 答:

團隊的業餘時間聊得最多的是技術和創意。咱們常常在週五下午週會的時候,帶上一大堆零食,由某個成員做主題分享,或你們一塊兒討論技術和創意。一些好的創意和技術會用在咱們的產品上或申請專利。午餐後,愛好王者的同窗也會開黑。之前經常在會議室跟其餘團隊55開黑,如今集體開黑就比較少了,由於有些人棄坑了,也有些人迷上了吃雞。團隊和公司的福利主要是團隊活動,好比集體看電影、吃飯、年度旅遊。團隊的激勵有松果獎、戰功獎、年終獎。申請專利也會有專利獎金。

看來,夸克瀏覽器不只手握 U4 內核這個積累多年的利器,還有一隊追求極致的工程師。不光從產品功能上兼濟天下,更從團隊內部開始,用技術「兼濟天下」。

夸克瀏覽器技術團隊
夸克瀏覽器技術團隊

剛好,夸克在招 iOS 研發,尋找技術和產品都追求極致的同道中人,有意者都請把簡歷發到 quark-dev@alibaba-inc.com。 另外,夸克所在的阿里巴巴移動事業羣(UC)正在招兵買馬→UC招聘。掘金的同窗們直接砸簡歷吧!

掘金專訪的目的是幫助你們瞭解不一樣的開發團隊,經過簡單的問題一窺各公司的技術氛圍、研發體系和團隊風氣。若是您有想了解的開發團隊,或者您所在的開發團隊想與社區有更普遍的交流。歡迎聯繫 YoungZ。微信:sunmatter

相關文章
相關標籤/搜索