-
1 # 西門大哥哥
-
2 # 勿與君子鬥名
成為高階Android開發工程師,最好是已經有了一定的程式設計,作業系統基礎。
程式語言你可以選擇Java,或者是Kotlin。前者源自Sun,後來被Oracle收購了。因為Java的專利問題,Google一直在努力去Java,這也是Kotlin誕生的原因之一。Kotlin可以認為是Android專用開發語言。但因為其誕生之時大量使用Java實現了其作業系統的諸多框架,Android始終無法完全擺脫Java。所以作為一個高階的Android開發者你最好掌握Java和Kotlin。
Android的開發核心還是其框架,要快速掌握,最好的方法是在瞭解基礎概念(Service,Activity,View等)之後從程式碼例項深入學習。如果你的Java能力比較好,會幫助你加速這個過程。如果你沒有Java的背景,但其他程式語言的能力很強,也應該會有幫助。尤其是C++能力很強話,加上你比較好的掌握虛擬機器、JIT,應該也可以很快從案例程式碼中快速掌握安卓應用開發。如果你能力很強,可以遊刃有餘地把握大量的程式碼庫,你完全可以去看Android框架的Java程式碼,可以讓你用最短的時間掌握核心框架知識。
以我自己的經驗為例,我接觸Andoid系統開發時(2009)沒有用過Java,但是我對C/C++的掌握是極深的,善於把握大型框架程式碼,雖然完全沒有寫過Java,但是閱讀Android OS的所有程式碼不成問題。作為高階的你,就算不用大量C/C++,你還是應該掌握,因為大機率你需要用JNI呼叫Native Code。
開發工具,你現在可以選擇Android Studio,較新的版本已經做得很實用了,經過那麼多年的迭代,其IDE已經很完善。在國內不足的地方是你可能很難下載或者更新SDK,你需要花點時間,透過三方渠道獲取SDK。但是AOSP(Android OS的開原始碼庫)恐怕要再付出一些努力才能得到了。
至於作業系統,我建議用Linux(比如Ubuntu)做Android開發。Android本是Linux,其自身原本也是在Linux下開發出來的。所以如果你能夠熟練掌握Linux環境的開發,是會比用其他系統做安卓更方便的。另外作為高階的你,應該花時間去玩一下AOSP,在Linux下試著編譯出虛擬機器,甚至是嘗試修改系統框架或者預設APP的程式碼,然後看其在AOSP中的結果。花時間去搗鼓這些,有助於你更好地理解整個框架。要搗鼓這些你需要掌握如何寫Android Build System的模組,如何加入自己的模組,等等。相關的工具有Makefile,GNU Toolchain等等(好的Linux C++開發基礎很有幫助)。
當然不去折騰AOSP也可以走向高階,但是未能深入其系統框架的原始碼,始終有點遺憾,很多東西也可能需要花更大的精力才能理解。
身為高階開發,建議你不要完全限制在Android Studio,最好也掌握Android的命令列開發,可以讓你更好理解,以及更直接的解決問題。當然對你的要求也更高。早期我們基本上都不用Android的IDE,沒有命令列便捷。直到現在,我們也會堅持用命令列完成幾乎所有流程,Android Studio成為我們很好的輔助工具。
-
3 # 谷歌開發者
如果是擴寬知識,並且專案有要求,那麼得從整個系統設計上面學習,整個系統有哪些東西,需要用哪些語言。現在移動端幾乎在廣域條件下都是混合開發,學會plugman寫外掛,認識ios系統機制例如uiwebview無法載入超過2000萬畫素的圖片等。這樣對於整個研發系統層面上有較為系統的認知。然後從事rn,ionic,weex等混合開發專案上可以得心應手。不僅在原生應用上面對android甚至ios的程序上面有深入的認知,更對一些前端語言頗有涉獵。
如果是鑽研,那麼比如現在的tf-lite或者ffmpeg這樣的c/c++庫進行研究,可以自己針對專案寫圖形影象演算法,智慧化Ai演算法等,對自己的程式設計思想提升是非常明顯的。
總之一句話,興趣是最好的老師,不要因為錢而去做高階工程師,而要根據自己的愛好去選擇,去發展,去掌握!
-
4 # 戴丶小莫
有一句話叫打鐵還得自身硬。如果你位置隨便一個人可以替代那麼建議你去努力提升自己再考慮待遇。如果你的位置組織內無人替代可以參考市場平均待遇。與老闆協商。如果你在單位有足夠的提示空間(發展前景。技術提升等等)待遇問題建議緩緩。
回覆列表
不請自來。
我也是一名移動端程式開發者,不過與樓主相反,我是做iOS 開發的。提問題的想必是剛入行不久的開發者吧?
高工是怎樣煉成的,不管是部落格還是各大技術平臺,類似的文章數不勝數,如何才能快速成長為高工呢?
首先,具有過硬的技術水平。吃飯的傢伙,不多說,技術水平決定了自己在行業內生存的空間和價值。當然對於小白來說,可以先把基礎打好,常見的的演算法,設計模式,最好其他端的開發知識也略知一二,拓寬自己的知識結構。
其次就是軟實力的強大。技術強大隻能說明你是個技術比較牛逼的程式設計師而已,但高工往往還有軟實力的考驗。一名合格的高工能在需求評審時發現問題,為專案負責。倘若任由產品經理天馬行空,最後做不了的時候才來一句該需求實現不了,這樣的高工是不合格的。
總而言之,想快速成為一名合格高工,要多主動承擔,最起碼要在團隊內部具有核心競爭力,並且有一定影響力。雖然現在很多公司高工被人吐槽為PPT工程師,但做好PPT也是高工具體能力的一個體現,如果連最基本的PPT核心內容都構思不好,那程式碼水平也可見一般了。
最後不要管網路上各種高工養成教程,包括我上面的廢話,要結合自己的實際,制定屬於自己的方案,別人成功了說什麼都是對的,不成功再好的方案也沒人認可,守住自己的內心,你才是真正的強大!