網(wǎng)絡(luò)優(yōu)化系列專(zhuān)題龙屉,聊一聊面對(duì)復(fù)雜多變的移動(dòng)網(wǎng)絡(luò)嗡善,我們需要掌握哪些網(wǎng)絡(luò)基礎(chǔ)知識(shí),以及該如何做好網(wǎng)絡(luò)優(yōu)化這項(xiàng)工作褐荷。
網(wǎng)絡(luò)優(yōu)化系列專(zhuān)題
- 網(wǎng)絡(luò)優(yōu)化背景知識(shí)(待完善)
《關(guān)于 5G,你應(yīng)該知道的發(fā)展史》
《HTTP 發(fā)展的前世今生》
《網(wǎng)絡(luò)安全 — HTTPS》
《關(guān)于網(wǎng)絡(luò)優(yōu)化嘹悼,你需要了解什么叛甫?》
《HTTP 的第一次變革 — HTTP/2》
《展望更好 — HTTP/3》
-
如何優(yōu)化網(wǎng)絡(luò)性能(待更)
...
如今,打開(kāi)手機(jī)或電腦杨伙,只要你上網(wǎng)合溺,不論是選擇哪個(gè)操作系統(tǒng),不論是用瀏覽器還是 App缀台,不論是看新聞棠赛、短視頻還是聽(tīng)音樂(lè)...,總會(huì)有 HTTP 在后臺(tái)默默為你服務(wù)膛腐。
在享受如此便捷舒適的網(wǎng)絡(luò)生活時(shí)睛约,你是否有想過(guò),HTTP 協(xié)議是怎么來(lái)的哲身?它最開(kāi)始是什么樣子的辩涝?又是如何發(fā)展到今天,幾乎“統(tǒng)治”整個(gè)互聯(lián)網(wǎng)世界的呢勘天?
今天我們就來(lái)聊一聊 HTTP 的發(fā)展歷程怔揩,了解下它的成長(zhǎng)軌跡捉邢。
誕生
1989 年 3 月 12 日,任職于 CERN(歐洲核子研究中心)的 Tim Berners-Lee(蒂姆.伯納斯 - 李)提交了一篇名為《Information Management : a proposal》(關(guān)于信息化管理的建議)文章商膊,提出了在互聯(lián)網(wǎng)上構(gòu)建超鏈接文檔系統(tǒng)的構(gòu)想伏伐,初步闡述了后來(lái)被稱(chēng)為 World Wide Web(萬(wàn)維網(wǎng)) 的信息管理概念,該篇文章中他確立了三項(xiàng)關(guān)鍵技術(shù):
URI(Uniform Resource Identifier):即統(tǒng)一資源標(biāo)識(shí)符晕拆,作為互聯(lián)網(wǎng)上資源的唯一身份藐翎;
HTML(Hypertext Markup Language):超文本標(biāo)記語(yǔ)言,描述超文本文檔实幕;
HTTP(Hypertext Transfer Protocol):即超文本傳輸協(xié)議吝镣,用來(lái)傳輸超文本。
基于它們昆庇,就可以把超文本系統(tǒng)完美地運(yùn)行在互聯(lián)網(wǎng)上末贾,讓各地的人們能夠自由地共享信息,這也是我們現(xiàn)在所熟知的 Web整吆。
所以在這一年未舟,HTTP 誕生了,從此開(kāi)始了它的光輝之路掂为。由于該篇文章裕膀,1989 年也被認(rèn)為是蒂姆.博納斯 - 李發(fā)明 World Wide Web 的年份。
HTTP/0.9
20 世紀(jì) 90 年代初期的互聯(lián)網(wǎng)世界非常簡(jiǎn)陋勇哗,計(jì)算機(jī)處理能力弱昼扛,存儲(chǔ)容量小,網(wǎng)速很慢欲诺,還是一片“信息荒漠”抄谐。網(wǎng)絡(luò)上絕大多數(shù)的資源都是純文本,很多通信協(xié)議也都使用純文本扰法,所以 HTTP 的設(shè)計(jì)也不可避免地受到了時(shí)代的限制蛹含。
這一時(shí)期的 HTTP 被定為 0.9 版本,結(jié)構(gòu)比較簡(jiǎn)單塞颁,為了便于服務(wù)器和客戶(hù)端處理浦箱,它也采用純文本格式。蒂姆.博納斯 - 李最初設(shè)想系統(tǒng)里的文檔都是只讀的祠锣,所以只允許用 “GET” 操作從服務(wù)器上獲取 HTML 文檔酷窥,并且在響應(yīng)請(qǐng)求之后立即關(guān)閉連接,功能非常有限伴网。
HTTP/0.9 雖然很簡(jiǎn)單蓬推,但它作為一個(gè)“原型”,充分驗(yàn)證了 Web 服務(wù)的可行性澡腾,而“簡(jiǎn)單”也正式它的優(yōu)點(diǎn)沸伏,因?yàn)檫@蘊(yùn)含了后來(lái)進(jìn)化和擴(kuò)展的可能性:把簡(jiǎn)單的系統(tǒng)變復(fù)雜糕珊,要比把復(fù)雜的系統(tǒng)變簡(jiǎn)單容易得多。
第一個(gè)網(wǎng)站
1990 年 12 月 20 日毅糟,蒂姆.博納斯 - 李架設(shè)了人類(lèi)歷史上第一個(gè)網(wǎng)站红选,域名為 Info.cern.ch,它被用于 CERN 內(nèi)部留特;所使用的服務(wù)器則是他的個(gè)人 NeXT 電腦纠脾,直到今天玛瘸,這臺(tái) NeXT 電腦依然被作為人類(lèi)首個(gè)網(wǎng)站的服務(wù)器蜕青,當(dāng)然這個(gè)網(wǎng)站也被 CERN 保留了下來(lái)。
1991 年 8 月 6 日糊渊,蒂姆.博納斯 - 李又將與 World Wide Web 項(xiàng)目相關(guān)的總結(jié)文檔上傳至互聯(lián)網(wǎng)右核,這是第一個(gè)出現(xiàn)在互聯(lián)網(wǎng)上的 Web 網(wǎng)站,距離現(xiàn)在已經(jīng)整整 28 周年了渺绒。
HTTP / 1.0
但是在當(dāng)時(shí)贺喝,World Wide Web 并沒(méi)有迅速獲得世人的認(rèn)可。盡管博納斯·李堅(jiān)信自己的發(fā)明將會(huì)“統(tǒng)治世界”宗兼,但是到了 1992 年躏鱼,他的論文還是被“超文本會(huì)議”拒絕了。
而這時(shí)殷绍,正在美國(guó)伊利諾大學(xué) NCSA(美國(guó)國(guó)家超級(jí)計(jì)算應(yīng)用中心) 學(xué)習(xí)(兼職)的馬克.安德森出現(xiàn)了染苛,年僅 22 歲的他已經(jīng)對(duì)互聯(lián)網(wǎng)頗為熟悉了;他覺(jué)得在 World Wide Web 加上圖形更有意思主到,就與人合作開(kāi)發(fā)出第一個(gè)可以圖文混排的瀏覽器 Mosaic茶行。該瀏覽器一經(jīng)發(fā)布就受到了熱烈歡迎。但由于 Mosaic 是由大學(xué)的資金和設(shè)備開(kāi)發(fā)的登钥,所以它的所有權(quán)歸 NCSA 所有畔师。
注意,Mosaic 并不是第一個(gè)圖形接口瀏覽器牧牢,比它更早的例如由蒂姆.博納斯 - 李本人開(kāi)發(fā)的 WorldWideWeb(世界上第一個(gè)網(wǎng)頁(yè)瀏覽器看锉,后更名為 Nexus)、鮮為人知的 Erwise 和 ViolaWWW塔鳍。但是 Mosaic 卻是第一個(gè)可以在文字中嵌入圖片度陆,而不是在單獨(dú)窗口中顯示圖片的瀏覽器。
同一時(shí)期献幔,計(jì)算機(jī)多媒體技術(shù)也有了新的發(fā)展懂傀,1992 年 JPEG(聯(lián)合圖像專(zhuān)家小組) 圖像格式誕生,1995 年發(fā)明了 MP3(動(dòng)態(tài)影像專(zhuān)家壓縮標(biāo)準(zhǔn)音頻層面3)音樂(lè)格式蜡感。
這些新軟件蹬蚁,新技術(shù)一經(jīng)推出立刻就吸引了廣大網(wǎng)民的熱情恃泪,更多的人開(kāi)始認(rèn)識(shí)互聯(lián)網(wǎng),開(kāi)始使用互聯(lián)網(wǎng)犀斋,研究 HTTP 并提出改進(jìn)意見(jiàn)贝乎,甚至實(shí)驗(yàn)性地往協(xié)議里添加各種新特性,從用戶(hù)需求的角度促進(jìn)了 HTTP 的發(fā)展叽粹。
于是在這些已有實(shí)踐的基礎(chǔ)上览效,經(jīng)過(guò)一系列的草案,HTTP/1.0 版本在 1996 年正式發(fā)布虫几,它在多方面增強(qiáng)了 0.9 版本锤灿,形式上已經(jīng)和我們現(xiàn)在的 HTTP 差別不大了,例如:
- 增加了 HEAD辆脸、POST 等新方法但校;
- 增加了響應(yīng)狀態(tài)碼,標(biāo)記可能的錯(cuò)誤原因啡氢;
- 引入?yún)f(xié)議版本號(hào)概念状囱;
- 引入了 HTTP Header 的概念,讓 HTTP 處理請(qǐng)求和響應(yīng)更加靈活倘是;
- 傳輸數(shù)據(jù)不在僅限于文本亭枷。
但是 HTTP/1.0 并不是一個(gè)標(biāo)準(zhǔn),只是記錄已有實(shí)踐和模式的一份參考文檔搀崭,不具有實(shí)際的約束力叨粘,就有點(diǎn)類(lèi)似于備忘錄。
所以 HTTP 1.0 的發(fā)布门坷,對(duì)于當(dāng)時(shí)正在蓬勃發(fā)展的互聯(lián)網(wǎng)來(lái)說(shuō)宣鄙,并沒(méi)有太多的實(shí)際意義,各方“勢(shì)力”仍然按照自己的意圖繼續(xù)在市場(chǎng)上奮力“拼殺”默蚌。
HTTP / 1.1
前面我們有提到冻晤,第一個(gè)圖文混排的瀏覽器 Mosaic 由馬克.安德森與他人合作開(kāi)發(fā),但是它的所有權(quán)歸 NCSA 所有绸吸,而 NCSA 最后決定將 Mosaic 交給了 Spyglass (實(shí)際是 NCSA 的一個(gè)分支鼻弧,旨在將 NCSA 技術(shù)商業(yè)化)用于商業(yè)用途和運(yùn)營(yíng)。
于是锦茁,1994 年馬克.安德森離開(kāi) NCSA攘轩,與人合作創(chuàng)辦了 Netscape,也就是網(wǎng)景公司(最初叫做 Mosaic 公司码俩,為了規(guī)避與 NCSA 的法律糾葛度帮,同年 11 月公司最終變更為 Netscape),專(zhuān)門(mén)用來(lái)開(kāi)發(fā)用于商業(yè)運(yùn)作的圖形瀏覽器,公司的產(chǎn)品也更名為網(wǎng)景瀏覽器笨篷。同年 12 月 15 日網(wǎng)景瀏覽器 1.0 正式發(fā)布瞳秽,軟件改名為 NetScape Navigator(網(wǎng)景導(dǎo)航者)。
網(wǎng)景瀏覽器是第一個(gè)大獲成功的商業(yè)瀏覽器率翅,它將蒂姆.博納斯 - 李發(fā)明的 World Wide Web 從實(shí)驗(yàn)室?guī)У搅斯娨曇傲防徽绮┘{斯 - 李預(yù)言的那樣,World Wide Web 開(kāi)始了“統(tǒng)治世界”的進(jìn)程冕臭。
隨著網(wǎng)景公司的日益強(qiáng)大腺晾,公司開(kāi)始嘗試創(chuàng)做一種能夠讓用戶(hù)通過(guò)瀏覽器操作的網(wǎng)絡(luò)應(yīng)用系統(tǒng)。這讓微軟感受到了威脅辜贵,擔(dān)心網(wǎng)景可能威脅到微軟的操作系統(tǒng)和應(yīng)用程序市場(chǎng)悯蝉。于是微軟于 1995 年研發(fā)了自己的 Internet Explorer,這一年開(kāi)始了著名的瀏覽器大戰(zhàn)念颈,網(wǎng)景的 NetScape Navigator 和微軟的 Internet Explorer 都希望在互聯(lián)網(wǎng)上占據(jù)主導(dǎo)地位泉粉。
雖然這場(chǎng)“戰(zhàn)爭(zhēng)”的結(jié)果你一定早就知道了连霉,最終微軟的 IE 取得了決定性的勝利榴芳,而網(wǎng)景則“敗走麥城”(最后憑借 Mozilla Firefox 又扳回一局)。
具有諷刺意味的是跺撼,Internet Explorer 正是在馬克.安德森開(kāi)發(fā)的 Mosaic 的基礎(chǔ)上發(fā)展而來(lái)的窟感。當(dāng)然,微軟獲得了伊利諾大學(xué)的許可歉井。
不可否認(rèn)柿祈,“瀏覽器大戰(zhàn)”再一次極大地推動(dòng)了 Web 的發(fā)展,HTTP/1.0 也在這個(gè)過(guò)程中經(jīng)受了實(shí)踐的檢驗(yàn)哩至。于是在 “大戰(zhàn)” 結(jié)束之后的 1999 年躏嚎,HTTP/1.1 發(fā)布了 RFC(Request for Comments)文檔,編號(hào)為 2616菩貌,正式確立了延續(xù)十余年的傳奇卢佣。
從版本號(hào)我們就可以看出,HTTP/1.1 是對(duì) HTTP/1.0 的小幅度修正箭阶。但一個(gè)重要的區(qū)別是:它是一個(gè)正式的標(biāo)準(zhǔn)虚茶,而不是一份可有可無(wú)的參考文檔。這意味著今后互聯(lián)網(wǎng)上所有的瀏覽器仇参、服務(wù)器嘹叫、網(wǎng)關(guān)和代理等等,只要用到 HTTP 協(xié)議诈乒,就必須嚴(yán)格遵守這個(gè)標(biāo)準(zhǔn)罩扇,相當(dāng)于是互聯(lián)網(wǎng)世界的一個(gè)“立法”。
不過(guò)怕磨,說(shuō) HTTP/1.1 是小幅度“修正”也不太確切喂饥,它還是有很多實(shí)質(zhì)性進(jìn)步的寞缝。畢竟經(jīng)過(guò)了多年的實(shí)戰(zhàn)檢驗(yàn),比起 0.9 和 1.0 更加接近用戶(hù), 同時(shí)表述也更加嚴(yán)謹(jǐn)仰泻。HTTP/1.1 主要的變更有以下:
- 增加了 PUT荆陆、DELETE 等新方法;
- 增加了緩存管理和控制集侯;
- 明確了連接管理被啼,允許持久連接;
- 允許響應(yīng)數(shù)據(jù)分塊(chunked)棠枉,利于傳輸大文件浓体;
- 強(qiáng)制要求 Host 頭,讓互聯(lián)網(wǎng)主機(jī)通關(guān)成為可能辈讶。
由此命浴,互聯(lián)網(wǎng)在它的“保駕護(hù)航”下邁開(kāi)了新的步伐,開(kāi)啟了后續(xù)的 Web 1.0贱除,Web 2.0 時(shí)代∩校現(xiàn)在許多知名企業(yè)都是在這個(gè)時(shí)間點(diǎn)左右創(chuàng)立的,例如 Google月幌、新浪碍讯、搜狐、網(wǎng)易扯躺、騰訊等捉兴。
- 不過(guò)由于 HTTP/1.1 太過(guò)龐大和復(fù)雜,所以在 2014 年又做了一次修訂录语,原來(lái)一個(gè)大文檔被拆分成了六份較小的文檔倍啥,編號(hào)為 7230 ~ 7235,優(yōu)化了一些細(xì)節(jié)澎埠,但此外沒(méi)有任何實(shí)質(zhì)性的改動(dòng)虽缕。
Google 開(kāi)始領(lǐng)航
HTTP/1.1 發(fā)布之后,整個(gè)互聯(lián)網(wǎng)世界呈現(xiàn)出了爆發(fā)式的增長(zhǎng)失暂,度過(guò)了十多年的“快樂(lè)時(shí)光”彼宠,更涌現(xiàn)了 Facebook、Twitter弟塞、淘寶和京東等互聯(lián)網(wǎng)新貴凭峡。
然而,這期間也出現(xiàn)了一些對(duì) HTTP 不滿(mǎn)的意見(jiàn)决记,主要是連接慢摧冀,無(wú)法跟上迅猛發(fā)展的互聯(lián)網(wǎng),但 HTTP/1.1 標(biāo)準(zhǔn)一直“巋然不動(dòng)”,無(wú)奈之下人們只好發(fā)明各式各樣的“小花招”來(lái)緩解這些問(wèn)題索昂,比如以前常見(jiàn)的切圖建车、JS 合并等網(wǎng)頁(yè)優(yōu)化手段。
HTTP/2.0
終于有一天椒惨,搜索巨頭 Google 忍不住了缤至,決定“揭竿起義”,那么它是怎么開(kāi)始“造反”的呢康谆?
Google 首先開(kāi)發(fā)了自己的 Chrome 瀏覽器领斥,然后推出了新的 SPDY 協(xié)議,并在 Chrome 里應(yīng)用于自家的服務(wù)器沃暗,如同十多年前的網(wǎng)景和微軟一樣月洛,從實(shí)際的用戶(hù)來(lái)“倒逼” HTTP 協(xié)議的變革,這也開(kāi)啟了第二次“瀏覽器大戰(zhàn)”孽锥。
歷史再次重演嚼黔,不過(guò)這次的勝利者是 Google,Chrome 目前在全球的占有率超過(guò)了 60%惜辑,“挾用戶(hù)以號(hào)令天下”唬涧,Google 借此順勢(shì)把 SPDY 推上了標(biāo)準(zhǔn)的寶座,互聯(lián)網(wǎng)標(biāo)準(zhǔn)化組織以 SPDY 為基礎(chǔ)開(kāi)始制定新版本的 HTTP 協(xié)議韵丑,最終在 2015 年發(fā)布了 HTTP/2.0 RFC 編號(hào) 7540爵卒。
- SPDY 并不是首字母縮略字虚缎,僅僅是 speedy 的縮寫(xiě)撵彻。Google 最早是在 Chromium 中提出 SPDY 協(xié)議,HTTP/2 的關(guān)鍵功能主要來(lái)自 SPDY 技術(shù)实牡,換言之陌僵,SPDY 的成果被采納而最終演變?yōu)?HTTP/2。SPDY 協(xié)議通過(guò)壓縮创坞、多路復(fù)用和優(yōu)先級(jí)來(lái)縮短加載時(shí)間碗短。
HTTP/2 的制定充分考慮了互聯(lián)網(wǎng)的現(xiàn)狀:帶寬、移動(dòng)和不安全题涨,在高度兼容 HTTP/1.1 的同時(shí)更注重性能方面的改進(jìn)偎谁,主要的特點(diǎn)有:
- 二進(jìn)制協(xié)議,不再是純文本纲堵;
- 可發(fā)起多個(gè)請(qǐng)求(多路復(fù)用)巡雨,廢棄了 1.1 里的通道;
- 使用專(zhuān)用算法壓縮頭部席函,減少數(shù)據(jù)傳輸量铐望;
- 允許服務(wù)器主動(dòng)向客戶(hù)端推送數(shù)據(jù);
- 增強(qiáng)了安全性,要求加密通信正蛙。
連接復(fù)用
網(wǎng)絡(luò)連接這個(gè)環(huán)節(jié)需要經(jīng)過(guò) TCP 三次握手督弓、TLS 秘鑰協(xié)商,連接建立的代價(jià)是非常大的乒验,這里優(yōu)化思路是復(fù)用連接愚隧,這樣不用每次請(qǐng)求都重新建立連接。這里我們利用的是 HTTP 協(xié)議里的 keep-alive锻全。而 HTTP/2.0 的多路復(fù)用則可以進(jìn)一步的提升連接復(fù)用率奸攻。它復(fù)用的這條連接支持同時(shí)處理多條請(qǐng)求,所有請(qǐng)求都可以并發(fā)在這條連接上進(jìn)行虱痕。
HTTP/3
HTTP/2 這么好睹耐,是不是已經(jīng)完美了呢?答案是否定的部翘,H2 的多路復(fù)用在本質(zhì)上依然是同一條 TCP 連接硝训,如果所有域名的請(qǐng)求都集中在某一條連接上,在網(wǎng)絡(luò)擁塞的時(shí)候容易出現(xiàn) TCP 隊(duì)首阻塞的問(wèn)題新思。
這一次還是 Google窖梁,而且它要“革自己的命”。在 HTTP/2 還處于草案之時(shí)夹囚,Google 又發(fā)明了一個(gè)新的協(xié)議 — QUIC(Quick UDP Internet Connection)纵刘,而且還是相同的“套路”,繼續(xù)在 Chrome 和自家服務(wù)器里“試驗(yàn)著玩”荸哟,依托它的龐大用戶(hù)量和數(shù)據(jù)量假哎,持續(xù)地推動(dòng) QUIC 協(xié)議成為互聯(lián)網(wǎng)上的“既成事實(shí)”。
在連接復(fù)用中我們說(shuō)過(guò) HTTP/2 + TCP 會(huì)存在隊(duì)首阻塞的問(wèn)題鞍历,基于 UDP 的 QUIC 才是終極解決方案舵抹。 QUIC 也確實(shí)因?yàn)樽陨硭刭|(zhì)過(guò)硬,在 2018 年劣砍,互聯(lián)網(wǎng)標(biāo)準(zhǔn)化組織 IETF 提議將 “HTTP over QUIC” 更名為 HTTP/3 并獲得成功惧蛹,HTTP/3 正式進(jìn)入了標(biāo)準(zhǔn)化制定階段,也許幾年以后就會(huì)正式發(fā)布刑枝,到時(shí)候我們說(shuō)不定可以直接跳過(guò) HTTP/2 直接進(jìn)入 HTTP/3香嗓。
如下圖所示,可以把 QUIC 簡(jiǎn)單理解為 HTTP/2.0 + TLS 1.3 + UDP装畅。
目前 QUIC 還有很多坑還沒(méi)有踩完靠娱,發(fā)現(xiàn)的主要問(wèn)題例如有創(chuàng)建連接成功率和運(yùn)營(yíng)商劫持等。
小結(jié)
2019 年 3 月 12 日洁灵,是 World Wide Web 誕生 30 周年的紀(jì)念日饱岸,當(dāng)然也是 HTTP 協(xié)議的整個(gè)發(fā)展過(guò)程掺出,這里再簡(jiǎn)單總結(jié)下:
1. HTTP 協(xié)議始于三十年前蒂姆.博納斯 - 李的一篇論文;
2. HTTP/0.9 是個(gè)簡(jiǎn)單的文本協(xié)議苫费,只能獲取文本資源汤锨;
3. HTTP/1.0 確立了大部分現(xiàn)在使用的技術(shù),但它不是正式標(biāo)準(zhǔn)百框;
4. HTTP/1.1 是目前互聯(lián)網(wǎng)上使用最廣泛的協(xié)議闲礼,功能也非常完善;
5. HTTP/2.0 基于 Google 的 SPDY 協(xié)議铐维,注重性能改善柬泽,改善的目標(biāo)是低延遲,但其普及率并不高嫁蛇。
6. HTTP/3 基于 Google 的 QUIC 協(xié)議锨并,目前正在制定中,將是未來(lái)發(fā)展的方向睬棚。
最后
通過(guò)今天的介紹第煮,相信你對(duì) HTTP 有了一個(gè)初步但清晰的認(rèn)識(shí)。另外大家對(duì) HTTP 的發(fā)展還有哪些理解和認(rèn)識(shí)抑党?歡迎大家留言分享或指正包警。
文章如果對(duì)你有幫助,請(qǐng)留個(gè)贊吧底靠。
彩蛋
早期的 HTTP/0.9 是沒(méi)有版本號(hào)的害晦,0.9 這個(gè)版本號(hào)是后來(lái)才加上去的,用于區(qū)別之后的 1.0/1.1暑中;
HTTP/1.0 的 RFC 編號(hào)是 1945壹瘟,而 HTTP/0.9 則沒(méi)有 RFC;
一個(gè)有趣的事實(shí):“World Wide Web” 是英語(yǔ)中極少數(shù)縮寫(xiě)(WWW)比原文發(fā)音更長(zhǎng)的詞痒芝。
擴(kuò)展閱讀
- 關(guān)于 5G俐筋,你應(yīng)該知道的發(fā)展史
- 關(guān)于 5G,我們從一個(gè)公式談起
- 他 25 年前重新發(fā)明了互聯(lián)網(wǎng)严衬,卻放棄了成為比爾·蓋茨的機(jī)會(huì)
UI 優(yōu)化系列
- 關(guān)于 UI 渲染,你需要了解什么笆呆?
- Android 之如何優(yōu)化 UI 渲染(上)
- Android 之如何優(yōu)化 UI 渲染(下)
- Android 之 Choreographer 詳細(xì)分析
- LayoutAnimation 炫酷的布局動(dòng)畫(huà)及原理分析
- Android 之你真的了解 View.post() 原理嗎请琳?
存儲(chǔ)優(yōu)化系列