都在唱衰Android,事實真的是這樣嗎?


都在唱衰Android,事實真的是這樣嗎?


開發現狀

目前,移動開發已經處於飽和的階段,Android開發也不如當年盛況,已經不再像前幾年前那麼火爆。以前是隻要你會Android四大組件的都是個香餑餑,那樣的時代已經過去了,隨著人機交互的體驗要求,App的用戶體驗的要求、流暢度等等,已經不可同日而語。在這樣的大環境下,那麼對我們的Android開發工程師也是同樣的改變。

在這樣的情況下,由於飽和,隨處都能招到初級的工程師,公司有了選擇的餘地,所以肯定會去選擇更加優秀的,這就必然導致了我們經常說的,Android開發者已經爛大街了,其實不然,只是公司的要求變高,市場飽和,門檻變高而已。所以這就要求我們更加的精於技術,據我瞭解,中、高級的工程師還是很受歡迎的。

職業發展

隨著Android的發展,有些人對Android未來感到茫然,經常有人問,“從事Android是不是沒有前途,找工作困難,希望能給點建議?”。早在2010年市場上有大量Android招聘,基本懂一點Java基礎的就可以搞Android,當時是移動互聯網創業的高峰期,號稱只要做個App就可以創業。“風來了豬都能找到工作,風停了最先摔死的都是豬”,如果你覺得找工作難,那一定是你在混日子,<strong>Android中高級以上的人才一直都非常稀缺

只要在Android領域深耕,做到極致,努力成為這個方向的專家,有精力再提升工程架構思維,軟件工程思想都是相通的,境界會得到提升,即便再學習新東西也會非常快。只要一個領域做到極致,即便Android被淘汰了,換新領域面試官依然會相信你也能做到極致。千萬不能用一年的工作能力混十年工作經歷,否則你的市場價格連一年都不如,成為工作困難戶。

跨平臺開發

目前移動端跨平臺開發中,大致歸納為以下幾種情況:

1.<strong>react native、<strong>weex均使用JavaScript作為編程語言,目前JavaScript在跨平臺開發中,可謂佔據半壁江山,大有“一統天下”的趨勢。react native 用了 react 的設計模式,但UI渲染、動畫效果、網絡請求等均由原生端實現。開發者編寫的js代碼,通過 react native 的中間層轉化為原生控件和操作,比ionic等跨平臺應用,大大提高了的用戶體驗。weex基於 Vue 設計模式,支持 web、android、ios 三端,原生端同樣通過中間層轉化,將控件和操作轉化為原生邏輯來提高用戶體驗。

2.<strong>Flutter 是 Google 力推的跨平臺框架,將是未來的 Google Fuchsia OS 下開發應用的主要技術框架。谷歌對 Flutter 的投入非常大,SDK 的更新頻率也很高。2019 年 5 月 8 號,谷歌剛剛發佈了 Flutter 1.5 穩定版。Flutter 的開發將不僅僅侷限於移動跨平臺,目前已經支持 Web 開發、後端開發、PC 桌面應用開發(內測中)、嵌入式開發(內測中)。其實,撇開個人開發者,許多大公司早就率先嚐試了 Flutter。國內的阿里巴巴、騰訊、愛奇藝等大公司已經把 Flutter 應用在實際開發中,例如閒魚團隊已經把 Flutter 技術應用在閒魚應用上。

學習的方向

  • Kotlin

Kotlin 作為 Android 開發語言是大勢所趨。在此之前很早,Kotlin 就有“Android 世界的 Swift ”的稱號。當然在這之前大家這樣說難免有些底氣不足,與其說是一種事實不如說是一種願望。而現在這麼說就理直氣壯多了。Kotlin 語言相對 Java有很多優勢,比如官網介紹的簡潔、安全。Kotlin具有現代靜態編程語言的很多特點,如類型推斷、多範式支持、可空性表達、擴展函數、DSL支持等。另外對於安卓開發還提供了 Kotlin 安卓擴展和 Anko 庫,參見 Kotlin 用於 Android 。關於與 Java 互操作,尤其是 Java 調用 Kotlin 是大家普遍覺得坑的地方,除了默認 final外,還有一個主要原因應該就是名字修飾,解決方式可以按照它修飾後名字去引用,或者在 Kotlin 端使用 @JvmName 註解來生成便於 Java 使用的名字。具體參見 Java 中調用 Kotlin 。

  • Jetpack

Jetpack 是一套庫、工具和指南,可幫助開發者更輕鬆地編寫優質應用。這些組件可幫助您遵循最佳做法、讓您擺脫編寫樣板代碼的工作並簡化複雜任務,以便您將精力集中放在所需的代碼上。

組件可以單獨採用(不過這些組件是為協同工作而構建的),同時利用 Kotlin 語言功能幫助您提高工作效率。

Android Jetpack 可管理繁瑣的 Activity(如後臺任務、導航和生命週期管理),以便您可以專注於如何讓自己的應用出類拔萃。

Android Jetpack 組件圍繞現代化設計實踐構建而成,具有向後兼容性,可以減少崩潰和內存洩漏。

  • 組件化設計


都在唱衰Android,事實真的是這樣嗎?


將一個app分成多個模塊,每個模塊都是一個組件(Module),開發的過程中我們可以讓這些組件相互依賴或者單獨調試部分組件等,但是最終發佈的時候是將這些組件合併統一成一個apk,這就是組件化開發。組件化開發中認為組件作為系統的一部分,是可獨立運行的服務。

現在很多公司面試都會問到組件化的問題,因為很多公司前期在做app的時候都沒有考慮過在業務量發展到一定的瓶頸的時候,app會變得十分臃腫,難以維護,又或者公司有其他的發展方向,需要做一個新的app,但是需要用到現有app的一部分業務功能,隨著公司發展,可能兩個app互相引用的業務模塊會越來越多,為了適應公司未來的發展,加快開發速度,組件化是不得不進行的一步。

  • 音視頻方向


都在唱衰Android,事實真的是這樣嗎?


這個一個很不錯的方向,特別是在直播、短視頻等風口讓這個方向變得很火熱,我算是半個音視頻開發的從業者,因為 GitHub 開源的 CarGuo/GSYVideoPlayer 用戶還不少,所以被逼著成了半桶水的音視頻開發。

<strong>未來 5G 時代音視頻方向肯定會繼續紅火。然而事實上一旦做了音視頻開發,你就會發現音視頻方向其實和 Android 沒有太大的必然聯繫,因為音視頻開發是服務於 Android ,而非用 Android 去開發音視頻。

音視頻開發首要的是需要學習C++,學習FFMpeg開源項目,瞭解音視頻的編碼協議、容器封裝和網絡協議,最後對於 Android來說就是NDK開發,然後還需要給iOS等其他平臺音視頻服務,因為如果音視頻項目只服務於Android是不現實的,所以選擇音視頻開發就要讓自己不侷限於 Android ,並且這個方向會是偏低層的學習,所以會比較累但是技術會相對穩定。

感想

行情好不好,還是靠自己的能力說話。Android開發人員要想邁向光明之路,必須得苦練內功,把自己從菜鳥修煉成大佬、甚至神仙,到時候自然會有大批公司搶著要。有一句老話說的好:“比你優秀的對手在學習,你的仇人在磨刀,你的閨蜜在減肥,隔壁老王在練腰,我們必須不斷學習,否則我們將被學習者超越。”


都在唱衰Android,事實真的是這樣嗎?


分享到:


相關文章: