Android 開發(fā)者的下半場

2018年,整個移動互聯(lián)網(wǎng)進入了下半場。為什么說已經(jīng)進入了下半場,談未來,先講歷史,我們來重頭開始捋一捋吧。

2005 年,Google 收購了成立不到兩年的 Android 公司,經(jīng)過三年多的研發(fā),于 2008年推出了 Android 1.0 ,此時還是搭載塞班系統(tǒng)的諾基亞的天下,業(yè)界并不看好 Google 的 Android ,很多人認(rèn)為最多一年 Google 就會放棄 Android。

2009 年, Android 1.5 出世,HTC G1 和 HTC G2 大賣,此時,國內(nèi)已經(jīng)有一批人開始寫 Android 應(yīng)用開發(fā)的入門教材了,盡管現(xiàn)在看來是多么沒含量、官方文檔一字不漏翻譯甚至有翻譯不當(dāng)?shù)慕滩?,但是人家的確是抓住了時機賺了一把,也感謝這些人,讓英文不佳的開發(fā)者快速入門。

2010 年,Android 2.3 面市,本人也是從這個版本開始擁有了第一臺 Android 手機,開始接觸 Android 開發(fā),也就是這時開始 Android 手機的市場占有開始快速提升,在美國的市場占有率達到了 30%。而這時,有一個巨頭開始在崩塌,它就是那個鈴聲都能讓人幻聽的諾基亞,一代手機帝國,轟然倒下了。

2011 年中,喬布斯生前的最后一部金典的產(chǎn)品 iPhone 4S 面市,把業(yè)界智能手機品質(zhì)推到了一個新高度,當(dāng)時的 Android 手機和 iPhone 比起來,無論是在工業(yè)設(shè)計還是運行速度、無論是穩(wěn)定性還是安全性,Android 都是初生的嬰兒。可惜 iPhone 太貴了,在當(dāng)時看來 ,手持 iPhone 是一種身份的象征,也就是這個時候,小米橫空出世,讓 Android 市場開啟了千元機的時代,我們應(yīng)該感謝小米、華為讓我們大多數(shù)人快速上手智能手機。這一年,國內(nèi)一大批 JavaEE 開發(fā)者開始轉(zhuǎn) Android 開發(fā)了,我就是其中的一員,此時開發(fā)手段也是比較原始的,比如網(wǎng)絡(luò)框架,基本都是在 HttpClient 或 HttpUrlConnection 上手動封裝, 大家都在干重復(fù)的活,程序員最不愿意干重復(fù)的活,后來才有了 AndroidAsyhcHttp、Volley、Ritrofit…

2012 年,Android 相序推出了 Android 3.x 和 Android 4.x ;3.x 主要用于平板設(shè)備,這個時候 Android 程序員開始認(rèn)識 Fragments,一種為大屏而生的視圖,如今被你我他用得很頻繁;4.x 在流程度和易用性上做了幾次優(yōu)化,例如動畫繪制二級緩沖升到三級緩沖。

到這個時候國內(nèi) Android 開發(fā)已經(jīng)是火得一塌糊涂,學(xué)過 Java ,不管你有沒有 Android 經(jīng)驗,只要你愿意從事 Android 開發(fā)就能找到待遇不錯的工作;整個行業(yè)一片欣欣向榮,隨便一家互聯(lián)網(wǎng)公司,不做兩個 App 都不好意思說自己是互聯(lián)網(wǎng)公司,那些做渠道、市場的也是豪賺了一把,比如 91、豌豆莢。也醞釀出了第一批 APP ,比如當(dāng)時我們手機裝得最多的就是 QQ 、微信、360助手、搜狗輸入法、百度地圖、UC瀏覽器、天天動聽、優(yōu)化大師、墨跡天氣??吹?jīng)]有,大多數(shù)都是工具屬性,還談不上改變生活,還沒有滴滴打車、還沒有各種 O2O 應(yīng)用、微信也只是單純的聊天工具。但是大家都看到了移動互聯(lián)網(wǎng)即將進入生活的方方面面的趨勢了, 還有好多 APP 要開發(fā),從零到一的開發(fā)一款 APP 的機會一大把, 還需要好多 Android 開發(fā)者入局干事情。

2013 年到 2014 年這兩年 google 相序發(fā)布了 4.4 和 5.0,前面講過,早期的 Android 就是初生的嬰孩,安全、性能都存在問題,比如 2012 年,有人讓我寫程序監(jiān)聽別人的電話、短信,居然輕而易舉地就能實現(xiàn)這個功能,可見安全漏洞是多么明顯,然而在4.4、5.0 上就難了,在后面的 6.x、7.x 就更難了。在性能方面,我覺得 4.4 和 5.0 具有劃時代的意義,4.4 開始 google 開始引入 ART 虛擬機準(zhǔn)備代替 Davik 虛擬機, 5.0 以后,在摩爾定律的作用下, 手機硬件性能、內(nèi)存也上來了, 徹底廢棄了 Davik, 完全使用 ART ; 為啥 ART 之后為速度就快了?這里我簡單解釋一點, 了解 JVM 的應(yīng)該比較好理解, Java 字節(jié)碼需要通過 JVM 解釋成目標(biāo) CPU 可執(zhí)行的指令集, 這也是 Java 運行速度慢的原因, 后來出現(xiàn)了 JIT 編譯, 對經(jīng)常執(zhí)行的熱區(qū)代碼做一次解釋,解釋成對應(yīng)目標(biāo) CPU 指令集, 放到內(nèi)存中, 下一次執(zhí)行的時候就直接從內(nèi)存中取出這部分 CUP 指令直接執(zhí)行, 省去了每次都解釋執(zhí)行的耗時; Davik 也是有 JIT 特性的, 不過還不夠好;能不能再安裝的時候就提前把要解釋的字節(jié)碼翻譯好? 內(nèi)存允許的話,答案是肯定的, ART 上面就這么干的, 這種方式叫做 AOT,即提前編譯。所以我們會發(fā)現(xiàn) 5.0 以后安裝程序會比較慢, 但運行速度快了太多, 5.0 以后 Android 和 iOS 的差距越來越小了。

2013 年到 2014 這兩年,移動互聯(lián)網(wǎng)進入了新一輪的爆發(fā)式增長,真正把草莽叢生、野蠻生長演繹到了極致,記得我在《一個程序員的運氣》這篇文章中講過一個故事:一個在 2010 年底還在白石洲和我同學(xué)一起住農(nóng)民房、擠公交的師兄,2014 年的時候已經(jīng)是身價千萬的副總了; 同一年,另一個公司的年終時候在樓下擺滿了奧迪作為年終獎,它就是 UC。經(jīng)過兩三年的瘋狂發(fā)展,生活的方方面面都可以在手機上進行了,各種 o2o 應(yīng)用打得不可開交,打的不用再去馬路邊等著、超市到路邊攤都不再需要掏現(xiàn)金、外賣隨叫隨到,移動互聯(lián)網(wǎng)真正改變了人民的生活方式…

這個時候整個行業(yè)需要從零到一開發(fā) APP 機會少了很多了,到 2015 年的時候很多創(chuàng)業(yè)公司第一步想到的不是要開發(fā)一個 APP ,而是先開一個微信公眾號。而這個時候 APP 端的開發(fā)模式也慢慢在發(fā)生變化,各種動畫開源庫、網(wǎng)絡(luò)開源庫不說,原生開發(fā)已經(jīng)相當(dāng)成熟了,熱更新插件化開發(fā)也初出鋒芒,摩爾定律的作用下,硬件性能上來了,H5 也越來越多的分擔(dān)了頁面任務(wù),Android 開發(fā)進入混合開發(fā)時代。

提高效率、解放雙手是人類永恒的追求,程序員的理想就是要干到自己“沒活干”。2015 年底 facebook 推出 React Native,跨平臺、動態(tài)性和性能達到雙平衡,我也第一時間研究并寫了 demo,發(fā)現(xiàn)上手也快,這種 web 化的開發(fā)方式、原生化的體驗一定是趨勢,js 再次發(fā)光發(fā)熱。2016 年插件化框架徹底成熟,沒過多久,阿里的 Weex 發(fā)布,和 RN 如出一轍,Android 開發(fā)徹底進入混合時代,這個時后對端的架構(gòu)能力是有要求的,你要考慮你的應(yīng)用是不真的需要組件化,如果需要,又怎么把組件、業(yè)務(wù)插件、Web 容器、統(tǒng)跳協(xié)議等有效結(jié)合。

2017 微信小程序面市,跟著文檔這個 Demo 輕而易舉,站在創(chuàng)業(yè)者的角度,你還會花這么多成本去開發(fā)一個原生的 App 嗎?而且這個時候各個領(lǐng)域、細(xì)分領(lǐng)域刮分已經(jīng)完成,開發(fā)新 App 的機會真的沒有多少了。 如今小程序自己形成氣候,各家 App 都想仗著平臺和流量做自己的航母,都要做自己的小程序,真是畸形,從統(tǒng)一的角度看,我還是希望快應(yīng)用能成。

隨著 RN、Weex、小程序等前端技術(shù)的出現(xiàn),技術(shù)發(fā)展又完成了一個輪回,在摩爾定律作用下,歷史是如此的相似。還記得那個曾經(jīng)差點要了微軟命的瀏覽器公司嗎,你操作系統(tǒng)很牛逼,但是流量入口都在我這,微軟也感覺到了不妙,后來才出現(xiàn)了 IE 瀏覽器,IE 瀏覽器出現(xiàn)后微軟內(nèi)部也開始了系統(tǒng)派和瀏覽器派兩個派系曠日持久的斗爭,最終系統(tǒng)派獲勝了,不知道這是不是后來微軟在新互聯(lián)網(wǎng)時代衰敗的原因!移動互聯(lián)網(wǎng)和PC互聯(lián)網(wǎng)的發(fā)展軌跡太像了,只不過移動互聯(lián)網(wǎng)是螺旋上升的一個輪回,2008 年到現(xiàn)在,正好十年,十年一輪回。

下半場

下半場我們的戰(zhàn)場在哪里?

區(qū)塊鏈

2018年初,投資大亨徐小平的一張聊天截屏撼動了整個互聯(lián)網(wǎng)圈,可謂一石激起千層浪。一時間,連賣菜大媽都在討論區(qū)塊鏈,各類打著區(qū)塊鏈的牌子圈錢割韭菜的公司、創(chuàng)業(yè)團隊如雨后春筍,直到李笑來的一段錄音流出,感覺大家都被這場“革命”的資本家當(dāng)傻逼使了,著實為這把大火澆了一盆水。說區(qū)塊鏈會比曾經(jīng)的互聯(lián)網(wǎng)革命還要猛烈,我覺得有點喧賓奪主了,區(qū)塊鏈只是互聯(lián)網(wǎng)這個土壤上長出來的一根藤,只會在有限領(lǐng)域發(fā)揮很好的作用。技術(shù)上看,區(qū)塊鏈不是什么新技術(shù),是密碼學(xué)、分布式、p2p等技術(shù)結(jié)合經(jīng)濟學(xué)在特定領(lǐng)域的應(yīng)用。如果你本身在密碼學(xué)、安全領(lǐng)域或分布式開發(fā)領(lǐng)域有經(jīng)驗,轉(zhuǎn)區(qū)塊鏈開發(fā)又有何難?換個賽道開車而已。不過據(jù)我所知的 Android 客戶端開發(fā),95% 是沒有機會也沒自主去從事或深入研究過這方面的技術(shù),所以基本認(rèn)定區(qū)塊鏈不是 Android 開發(fā)的下半場,轉(zhuǎn)崗搞區(qū)塊鏈優(yōu)勢不大。

小程序

RN、Weex、小程序出來的時候,我都有研究過,并且能輕易上手,作為一名 Android 原生開發(fā)的我都能輕易上手,更不用說那些前端工程師了,而且現(xiàn)在各家小程序的上層開發(fā)技術(shù)在我看來都是快消品,五年、十年后他們還在么?當(dāng)然如果我們能抽象一下各家小程序背后的技術(shù)本質(zhì),例如深入研究 JS 執(zhí)行引擎原理、瀏覽器內(nèi)核等,那你又管他五年后XX小程序還是WW小程序呢?肯定離不開這些技術(shù)本質(zhì),這一點很多前端小伙伴一定比我們終端小伙伴玩的溜。

人工智能

人工智能并不是什么新概念了,可以說自計算機誕生就有人思考人工智能的問題了,不過人工智能的概念是在 1956 年夏天、美國達特茅斯學(xué)院的一次研討會上首次提出的,那次會議聚集了麥卡錫、香農(nóng)等業(yè)界泰斗,被認(rèn)為是人工智能的誕生標(biāo)志,史稱達特茅斯會議。此后,每隔一段時間,人工智能就發(fā)展到一個新的階段,例如 1963 年計算機與人類的首次象棋大戰(zhàn)、1996 年深藍(lán)計算機戰(zhàn)勝國際象棋大師、1997 年比爾蓋茨的智能化豪宅建成,推進智能家居的概念誕生、近些年 Google 的 AlphaGo、無人無人車等,語音、圖像識別等技術(shù)已經(jīng)進入多個領(lǐng)域的應(yīng)用。2018 年,移動互聯(lián)網(wǎng)各個方面應(yīng)用領(lǐng)域進入紅海,各大巨頭都在尋找新的賽場,人工智能成了“兵家必爭之地”,BAT 等互聯(lián)網(wǎng)巨頭都紛紛成了 AI 實驗室…

人工智能的基礎(chǔ)是數(shù)據(jù)和算法,而數(shù)據(jù)又必須基于連接獲取,需要萬物聯(lián)網(wǎng),強大的數(shù)據(jù)加算法作為神經(jīng)中樞,各種各樣的終端設(shè)備就是神經(jīng)末梢,神經(jīng)末梢感知數(shù)據(jù)通過聯(lián)網(wǎng)傳遞到中樞,神經(jīng)中樞在越來越多的數(shù)據(jù)喂養(yǎng)下反過來更好的為各個終端提供更精確的決策和服務(wù),這就是馬云爸爸說過的 DT 時代,2018 年,我們從 IT 時代進入了 DT 時代,紅衣教主周鴻祎 2013 年的時候就說過未來的手機硬件一定是沒有利潤的,甚至揚言要做免費的手機,通過軟件增值來賺錢,而在 DT 時代這一點將會更加明顯,萬物聯(lián)網(wǎng)的終端硬件一定不是盈利點,真正的價值還是在數(shù)據(jù)和服務(wù)。作為多年的 Android 開發(fā),我也一直在思考在這個時代,我們的競爭力在哪里?近年大數(shù)據(jù)工程師、算法工程師比較吃香,終端開發(fā)有必要轉(zhuǎn)算法嗎?如果你抱著五年十年長時間打算,我到覺得未嘗不可。不過我覺得如果對 Android 系統(tǒng)研究的足夠深入,這個時代依然還是我們的時代,萬物聯(lián)網(wǎng),一定會需要一大波終端工程師,而未來的智能設(shè)備一定需要離線算法能力,終端要承擔(dān)一部分算法,到時候我們能發(fā)揮的空間更大。

如何在下半場走得更遠(yuǎn)

無論是上半場還是下半場,我們只是換了個現(xiàn)場而已,在我們一生所學(xué)的本領(lǐng)中,有些換了個戰(zhàn)場就不能用了,有些還能繼續(xù)使用。

說到這個, 我想起了有個前輩說的一個概念:知識衰竭周期,這里我拓展為技能衰竭周期。我們一身中所學(xué)習(xí)的技能,有的很快就過時,稱之為衰竭,有的技能十年、百年都不過時,這里有個最鮮明對比: 研究心血管的醫(yī)生和 fash 程序員,醫(yī)生完全不用擔(dān)心人體心血管結(jié)構(gòu)會變化而自己的技能經(jīng)驗會淘汰,而十年前比較火的 flash 開發(fā)技術(shù)如今快面臨淘汰了,所以說學(xué)醫(yī)的普片越老越吃香,而我們程序員不得不不斷學(xué)習(xí)。既然要學(xué)習(xí),我們也考慮下成本和收益,多花些心思在衰竭周期較長的知識、技能上。

image

從上到下衰竭周期越長,從下到上變化越多同時短期內(nèi)的需求越多。長遠(yuǎn)來看,越是底層的東西越值得我們?nèi)パ芯?,底層的搞明白了,上層變化再多都能很快上手,以不變?yīng)萬變。以上圖片是我個人 YY 的,一定不全面,但能表達一個意思:技術(shù)服務(wù)業(yè)務(wù), 越是上層的技術(shù)越受制于業(yè)務(wù),業(yè)務(wù)千變?nèi)f化,上層的技術(shù)形態(tài)也就千變?nèi)f化。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,488評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,034評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,327評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,554評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,337評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,883評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,975評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,114評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,625評論 1 332
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,555評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,737評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,244評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,973評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,615評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,343評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,699評論 2 370

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,588評論 25 707
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,765評論 2 59
  • 書中很多的案例讓自己明白太多的問題,所以我會去改善關(guān)于對兩性相處的錯誤認(rèn)識。 每個人都需要有空間,但是卻不能完全脫...
    換氧閱讀 271評論 0 0
  • 體會過最好的,也承受過最壞的;不卑不穴,舉止從容;心中既有高山,又有深谷;既對生活躊躇滿志,又謙卑溫順;繁華過眼仍...
    newzr閱讀 297評論 0 0
  • C語言沒有STL,缺乏對動態(tài)長度字符串功能的支持;同時,C使用'\0'判斷字符串的結(jié)尾,不具有二進制安全性。然而在...
    ColeWang閱讀 1,474評論 1 4