是早期Google的招聘是出了名的難,它們只想招那些最知名大學(xué)里最厲害的尖子生,數(shù)學(xué)、編程、算法都得達(dá)到頂尖水平。
比如這個(gè)著名的招聘廣告,你得破解了它才能找到面試的方法。
但是有一群人,大學(xué)都沒(méi)畢業(yè),卻繞過(guò)了Google苛刻的招聘流程,順利加入Google,并且還做出了世界上最流行的操作系統(tǒng)。
這是怎么回事呢?
0 1
帝國(guó)的危機(jī)
故事得從20年前說(shuō)起,當(dāng)時(shí)Google如日中天,憑借Google搜索,GMail, GMap,Google Earth等服務(wù),建立了一個(gè)強(qiáng)大的互聯(lián)網(wǎng)帝國(guó)。
不過(guò),隨著黑莓等智能手機(jī)的推出,移動(dòng)互聯(lián)網(wǎng)開(kāi)始醞釀,Google帝國(guó)那堅(jiān)固的地基卻出現(xiàn)了裂痕。
如果一個(gè)新玩家霸占了移動(dòng)入口,Google那些服務(wù)很可能被新玩家替換掉,這非常可怕。
當(dāng)Google把目光轉(zhuǎn)向移動(dòng)市場(chǎng)的時(shí)候,發(fā)現(xiàn)這里有三個(gè)巨頭:
1.塞班,一個(gè)非常難用的平臺(tái)
2.黑莓,系統(tǒng)專有,只能用的黑莓手機(jī)上。
3.Windows Mobile,像PC一樣可以授權(quán)給手機(jī)制造商
Google當(dāng)然可以自己做,但是做手機(jī)或者手機(jī)操作系統(tǒng)和自家的主業(yè)確實(shí)差別太大。
于是,Google瞄準(zhǔn)了一家創(chuàng)業(yè)公司,這家公司最早是給相機(jī)做操作系統(tǒng)的。
公司只有8個(gè)人,有人大學(xué)沒(méi)畢業(yè),有人高中都沒(méi)畢業(yè)。
公司連個(gè)像樣的產(chǎn)品都沒(méi)有,僅僅是一個(gè)簡(jiǎn)單的用JavaScript寫的一個(gè)演示系統(tǒng)。
但是Google看中了這幫人以及他們想開(kāi)拓的新方向:開(kāi)源的手機(jī)操作系統(tǒng)。
這個(gè)開(kāi)源操作系統(tǒng)的定位非常好,提供一個(gè)單一的平臺(tái),一套解決方案,讓手機(jī)制造商可以輕松地使用它制造手機(jī),讓程序員可以輕松地在上面開(kāi)發(fā)應(yīng)用程序。
是的,這個(gè)創(chuàng)業(yè)公司就是后來(lái)大名鼎鼎的Android。
0 2
秘密招聘
進(jìn)入Google以后,Andorid遇到的第一個(gè)難題就是招聘。
此時(shí)Android還出于保密狀態(tài),沒(méi)法大肆宣傳打廣告招聘,只能悄悄地去聯(lián)系前同事,朋友,希望他們前來(lái)面試。
前來(lái)面試的人被面了好幾輪以后,才隱約地感受到:原來(lái)Google是要做一個(gè)手機(jī)操作系統(tǒng)啊。
嵌入式開(kāi)發(fā)人才很難找到,底層系統(tǒng)級(jí)開(kāi)發(fā)要學(xué)的東西太多了。
不過(guò),硅谷有三家公司有這樣的人才:
1.Danger 公司
這也是Andy Rubin1999年創(chuàng)立的公司,曾經(jīng)用Java 編程語(yǔ)言構(gòu)建了一個(gè)智能手機(jī)平臺(tái),有應(yīng)用商店,有后端服務(wù),可以說(shuō)是Android的雛形。
2.Be 公司
1995年成立,它開(kāi)發(fā)了非常有影響力的操作系統(tǒng)BeOS,在90年代大家還在用單核的時(shí)候,已經(jīng)原生支持多核處理器,特別適合音視頻處理,支持低延遲音頻、高清視頻播放與編輯,常被認(rèn)為是“為多媒體而生”的系統(tǒng)。
3.WebTV 公司
1995年成立,WebTV是一臺(tái)“上網(wǎng)機(jī)頂盒”,用戶只需一個(gè)電視 + WebTV 盒子 + 電話線,就能通過(guò)電視瀏覽網(wǎng)頁(yè)、收發(fā)郵件、聊天。
Android早期的開(kāi)發(fā)人員主要來(lái)自于這三家公司。
這三家公司是95年~99年之間成立的,在大部分國(guó)家還在撥號(hào)上網(wǎng)的時(shí)候,美國(guó)已經(jīng)做出了這樣先進(jìn)的軟硬件設(shè)備。
可見(jiàn)當(dāng)時(shí)美國(guó)的IT技術(shù)發(fā)展的確領(lǐng)先全球,在移動(dòng)互聯(lián)網(wǎng)爆發(fā)的前夜,Android出現(xiàn)在美國(guó)絕非偶然,它們已經(jīng)積累到那個(gè)程度了。
如果沒(méi)有Android,也會(huì)有另外一個(gè)東西出現(xiàn)。
0 3
選擇Java
我第一次看到Android程序的時(shí)候也很詫異,編程語(yǔ)言竟然是我日常使用的Java!
Java不是主要用在服務(wù)器端開(kāi)發(fā)嗎,那里CPU強(qiáng)勁,內(nèi)存管夠,在手機(jī)那端性能可就差遠(yuǎn)了,用它開(kāi)發(fā)App嗎?
為什么不用C++?
其實(shí)站在Android角度考慮一下就明白,C++雖然開(kāi)發(fā)底層應(yīng)用非常好,但是語(yǔ)法非常復(fù)雜,門檻很高,還需要手動(dòng)管理內(nèi)存,一不小心就會(huì)內(nèi)存泄漏,會(huì)嚇跑很多開(kāi)發(fā)人員的。
Java是當(dāng)時(shí)全球最流行的編程語(yǔ)言,有Eclipse,Netbean這樣免費(fèi)的IDE,可以吸引大量開(kāi)發(fā)者快速上手Android開(kāi)發(fā),這一點(diǎn)太關(guān)鍵了。
性能問(wèn)題怎么處理?
Android的辦法是:選擇Java,但是不用Java的字節(jié)碼。他們定義了一套自己的字節(jié)碼,開(kāi)發(fā)了自己的虛擬機(jī)Dalvik來(lái)執(zhí)行。
程序員寫的Java代碼,先被編譯成Java字節(jié)碼,然后轉(zhuǎn)換成Dalvik字節(jié)碼,然后在Dalvik虛擬機(jī)中執(zhí)行。
Dalvik虛擬機(jī)為移動(dòng)設(shè)備量身定制,內(nèi)存占用更小,性能優(yōu)化更激進(jìn)。
比如它就拋棄了JVM使用的棧架構(gòu),而是采用了寄存器架構(gòu),這雖然導(dǎo)致指令更加復(fù)雜,但是同樣程序所需指令更少。
Google 也沒(méi)有用Java的SDK,而是基于開(kāi)源的Apache Harmony進(jìn)行開(kāi)發(fā),Apache Harmony沒(méi)有獲得Sun 的JDK認(rèn)證,后來(lái)Sun被Oracle收購(gòu)后,Oracle還對(duì)Google發(fā)起了一場(chǎng)法律大戰(zhàn),指控Google侵權(quán)使用了Java 的API,這是后話了。
0 4
當(dāng)頭一棒
Android雖然被收購(gòu),但是依然保持了創(chuàng)業(yè)公司的風(fēng)格,特立獨(dú)行,有很大的自主權(quán)。
特別是團(tuán)隊(duì)不講什么Work Life Balance,每個(gè)人都在瘋狂工作,每周工作60到80小時(shí),他們編寫代碼,飛往世界各地尋找合適的零部件、供應(yīng)商和制造商,花了六個(gè)月時(shí)間制作原型,并計(jì)劃在年底前推出。
就在這時(shí),喬布斯登臺(tái)發(fā)布了iPhone,給了他們當(dāng)頭一棒。
第一代iPhone毫無(wú)疑問(wèn)是一個(gè)革命性的產(chǎn)品,它不僅外觀炫酷,更是創(chuàng)造了一種全新的交互方式:
使用虛擬鍵盤,在大觸摸屏上用軟件生成的按鈕替換大多數(shù)實(shí)體按鈕,每個(gè)應(yīng)用程序現(xiàn)在都可以擁有自己獨(dú)特的控制方式。
例如:播放、暫停和停止按鈕只有在聽(tīng)音樂(lè)或看視頻時(shí)才會(huì)出現(xiàn)。
當(dāng)你在瀏覽器中輸入網(wǎng)址時(shí),鍵盤會(huì)出現(xiàn),但當(dāng)你按下 Enter 鍵時(shí)它就會(huì)消失。
而Android團(tuán)隊(duì)正在努力奮斗的第一款手機(jī)是這樣的:
這一看就是兩個(gè)時(shí)代的產(chǎn)品!
Android手忙腳亂,不得不“重新開(kāi)始”,修改規(guī)范文檔,聲明“將支持觸摸屏”,盡管“本產(chǎn)品的設(shè)計(jì)時(shí)假設(shè)了獨(dú)立的物理按鍵,因?yàn)橛|摸屏無(wú)法完全取代物理按鍵”。
iPhone封閉的生態(tài)、獨(dú)特的模式對(duì)于手機(jī)廠商、運(yùn)營(yíng)商、芯片公司來(lái)說(shuō)都是巨大的壓力。
Google采用了相反的策略:把朋友搞得多多的,把敵人搞得少少的。
2007年11月5號(hào),Google振臂一呼,宣布成立開(kāi)放手機(jī)聯(lián)盟(Open Handset Alliance),成員包括HTC、索尼、Dell、Intel、摩托羅拉、高通、德州儀器、三星電子、LG 電子、T-Mobile、Nvidia、中國(guó)移動(dòng),華為等。
這是個(gè)看起來(lái)非常強(qiáng)大的聯(lián)盟,不過(guò)當(dāng)時(shí)只是個(gè)新聞發(fā)布會(huì),連一個(gè)可以運(yùn)行Android的商用手機(jī)都沒(méi)有。
幾天以后,Android SDK發(fā)布了。
為了吸引開(kāi)發(fā)者,Google專門舉辦了Android開(kāi)發(fā)挑戰(zhàn)賽,這次下了血本,獎(jiǎng)金高達(dá)1000萬(wàn)美元,就是為了讓開(kāi)發(fā)者在沒(méi)有手機(jī)的情況下,給Android開(kāi)發(fā)應(yīng)用程序。
為了讓評(píng)委們運(yùn)行參賽的1788款程序,Google給每個(gè)評(píng)委都郵寄了一臺(tái)筆記本電腦(據(jù)說(shuō)大部分都沒(méi)有歸還)!
每臺(tái)電腦里預(yù)裝了開(kāi)發(fā)團(tuán)隊(duì)特意開(kāi)發(fā)的程序,評(píng)委可以選擇要評(píng)測(cè)的應(yīng)用,然后在模擬器上運(yùn)行。
很難想象,現(xiàn)在這么強(qiáng)大的Android,當(dāng)時(shí)的發(fā)家史也如此艱難!
0 5
終獲成功
Android團(tuán)隊(duì)繼續(xù)奮戰(zhàn),在iPhone手機(jī)發(fā)布一年多以后,2008年10月,Android手機(jī)第一款手機(jī)HTC Dream/T-Mobile G1正式上市,依然是支持物理鍵盤。
G1支持提供可定制的圖形用戶界面、與Gmail等谷歌服務(wù)的集成、顯示應(yīng)用程序推送通知,以及用于下載其他應(yīng)用程序的Android 市場(chǎng)。
這款手機(jī)還是上個(gè)時(shí)代的感覺(jué),和精致的iPhone根本沒(méi)法比。
G1的銷量不好不壞,6個(gè)月賣了100萬(wàn)部,作為第一款A(yù)ndroid手機(jī),它更重要的意義是跑通了整個(gè)流程,讓手機(jī)商覺(jué)得,Android是真實(shí)的,這玩意兒是真的可以用在自家手機(jī)上的。
G1發(fā)布以后,Android團(tuán)隊(duì)不敢停歇,更加玩命兒似地開(kāi)發(fā),一年之內(nèi),竟然發(fā)布了4個(gè)版本,著實(shí)瘋狂。
手機(jī)廠商也開(kāi)始推出更好的Android手機(jī),比如摩托羅拉于2009年10月發(fā)布的Droid,這是第一款大獲成功的Android設(shè)備。
Droid配置極為豐富,3.7英寸854×480 觸摸屏,WiFi,GPS,數(shù)字羅盤,3.5mm 耳機(jī)插口、MicroUSB接口,500萬(wàn)像素自動(dòng)對(duì)焦帶雙LED閃光攝像頭、數(shù)字羅盤、加速度計(jì)。
在強(qiáng)大的營(yíng)銷活動(dòng)加持下,Droid發(fā)售的第一周就賣出了25萬(wàn)臺(tái)!
Droid的成功給其他廠商打了個(gè)樣,2010年,三星推出Galaxy系列,HTC 推出Desire,Legend,LG推出LG Optimus,索尼推出 Xperia X10......
歷經(jīng)千辛萬(wàn)苦,Android的命運(yùn)齒輪終于開(kāi)始轉(zhuǎn)動(dòng)了。
在中國(guó),看到風(fēng)口的小米也在2010年推出了MIUI,基于Android 2.2 ,廣受好評(píng)。第二年,小米手機(jī)1發(fā)布,Oppo、Vivo、華為等廠商也開(kāi)始采用Android,讓Android進(jìn)入了有著海量用戶的中國(guó)市場(chǎng)。
后面事情大家都知道了,Android瘋狂發(fā)展,設(shè)備數(shù)量一路超越蘋果,超越塞班,超越Windows,成為全球第一大操作系統(tǒng)。
寫完Android的發(fā)展歷程,不由得感慨:這真是一群最合適的人在正確的時(shí)間,做了正確的事情。
他們經(jīng)驗(yàn)豐富,擁有獨(dú)立自主權(quán),付出了遠(yuǎn)遠(yuǎn)超出常人的努力,在移動(dòng)互聯(lián)網(wǎng)的風(fēng)口創(chuàng)造了Android。
Android初始團(tuán)隊(duì)中高中沒(méi)畢業(yè)的Ficus,大學(xué)沒(méi)畢業(yè)的Brian恐怕不會(huì)想到,當(dāng)年那個(gè)3000行代碼的演示系統(tǒng),搖身一變,竟然進(jìn)入了30億設(shè)備中。
真是應(yīng)了那句話:“一個(gè)人的命運(yùn)啊,當(dāng)然要靠自我?jiàn)^斗,但是也要考慮到歷史的進(jìn)程。”
參考資料:
https://corecursive.com/android-with-chet-haase/
https://www.thesmilinghippo.com/gr/en/blog/google-project-restart-android/
《Androids: The Team That Built the Android Operating System》
全文完,覺(jué)得不錯(cuò)的話點(diǎn)個(gè)贊或者在看吧!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.