一個Android偏底層開發人員,對發展很迷茫,我該怎麼發展?
一直是在做Android系統定製的工作,framework、HAL、kernel均有接觸,除了APP不做,其他基本都可以做。改邏輯,解BUG(淺層),適配HAL,編譯修改kernel這些統統都做過。但是做的越多,總是覺得自己越弱,好像什麼都不會,卻什麼都能做些的感覺,不知道有沒有人能體會這種感覺。對一些流程分析跟蹤什麼的也很喜歡,我想知道,我現在所做的這些究竟叫什麼?應該有什麼樣的發展路線,或者說,我該重點關注哪裡?求高人指教,迷茫啊。我算得上是BSP開發嗎?
個人認為做BSP一般分成兩種:bring up和porting。一般做產品的基本上都沒有機會做bring up工作。做bring up一般都是方案商或者晶元廠商。
以下分析下做porting讓人迷茫的原因:
做porting的確會讓人迷茫,因為在這個過程中我們需要改動的代碼其實不多,面臨整個產品的BSP porting工作時,我們需要熟悉kernel / android HAL / android framework各個子系統,但子系統太多導致我們可能沒法精通所有的子系統。譬如 kernel中的usb 的枚舉過程、pcie設備的枚舉過程、ALSA中如何加入新的 audio codec驅動、V4L2中如何添加新的camera sensor的驅動等等。簡單說,android體系龐大,BSP部分涉及3種編程語言,多個子系統,全部精通對個人而言不太現實,所以總會感覺自己什麼都不會,但什麼又都知道一點。
想要破除這個魔咒,「普遍撒網,重點捉魚」的戰術會湊效。譬如我做過一年硬體,做了三年的kernel driver porting,做了一年android kernel/HAL/Framework開發維護,體系跨度不算大,但東西都比較繁雜,技術含量並不高。所以我得規劃是重點學習 audio/video部分,以後做多媒體部分的工作。
以上說的可能會比較亂,想到哪寫到哪,希望對你有所幫助。其實我也比較迷茫,人生不就是這樣么,迷茫著,然後一輩子就過去了^v^也是這樣,我還是做了多年的單片機轉過來的做android底層好幾年了。我個人的總結就是心太大,老追求全盤掌握,結果沒一個部分能完全精通,都是做單片機時候那種全盤掌握的感覺害的。
讓我們最應用層的情何以堪
專業做應用層X年,咱倆換換?
我覺得可以主要做Java Native Interface層面的開發,現在的Android APP,核心的東西基本上都是封裝成動態鏈接庫,增加被反編譯和抄襲的難度。
樓主 ,你好!你在哪個城市 考慮來我們公司工作嗎?我們在杭州!期待你的加入
同樣的工作,同樣的疑惑,迷茫
@on Crush 說的很對。
一款Android嵌入式設備,底層開發工作分為兩個部分,一個部分是bring up,另一個部分是porting+bugfix。
Bring up工作基本上晶元廠商會協助你一起工作,所以沒啥技術含量。proting+bugfix工作就跟沒勁了,學不到東西,公司有一天黃了的話,如果你年齡大,工作都不好找了。
但是on Crush說要往Audio+video發展。我理解應該是Android Framwork中的Audio system/flinger/track/HAL,以及Video的libmediaplayerservice/MediaCodec/OMX。
我認為這個方向挺好,但是往Video去是不對的,因為大多數晶元廠商都會負責Video,根本不需要你去做什麼。
真正還有一些技術含量的是Audio,會參與bring up及設計的工作。
希望能夠幫到你。
其實不算廣告植入,但是還是要來個推薦!技術小黑屋!關注他,如果你在北京的話可以跟他分享討論,確實很不錯,一直很努力的一個技術博主,個人比較喜歡。寫了很多文章也有對職業生涯的規劃,當然每個人的路徑可能不同,但是或多或少有些感觸
Kernel沒搞過,其它都接觸過,求帶
推薦閱讀:
※友盟推送裡面的Alias怎麼用?可以理解成賬號嗎?
※Android QQ 和釘釘冷啟動如何做到秒開的?
※國內有什麼類似App Annie的網站,可以監控國內安卓渠道的排名情況?
※Linux下交叉編譯出的so庫依賴libstdc++.so.6的問題?
※如何評價Zealer安卓版客戶端?