Android 開發者的下半場如何進行 [復制鏈接]

2019-2-26 14:25
sergiochanTest 閱讀:879 評論:1 贊:3
Tag:  

2018年,整個移動互聯網進入了下半場。為什么說已經進入了下半場,談未來,先講歷史,我們來重頭開始捋一捋吧。

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

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

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

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

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

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

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

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

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

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

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

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

下半場

下半場我們的戰場在哪里?

區塊鏈

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

小程序

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

人工智能

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

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

如何在下半場走得更遠

無論是上半場還是下半場,我們只是換了個現場而已,在我們一生所學的本領中,有些換了個戰場就不能用了,有些還能繼續使用。

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

Android 開發者的下半場

從上到下衰竭周期越長,從下到上變化越多同時短期內的需求越多。長遠來看,越是底層的東西越值得我們去研究,底層的搞明白了,上層變化再多都能很快上手,以不變應萬變。以上圖片是我個人 YY 的,一定不全面,但能表達一個意思:技術服務業務, 越是上層的技術越受制于業務,業務千變萬化,上層的技術形態也就千變萬化。


我來說兩句
您需要登錄后才可以評論 登錄 | 立即注冊
facelist
所有評論(1)
[email protected] 2019-2-26 15:29
寫的不錯。
回復
領先的中文移動開發者社區
18620764416
7*24全天服務
意見反饋:[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粵ICP備15117877號 )

两码中特期期