關於學習安卓底層

關於學習安卓底層,懂得進_百度知道

    關於學習安卓底層,懂得進搜索
    2014-11-09 11:23 程軒104 分類:移動開發 | 瀏覽 888 次
    Android

    我想學習安卓底層,自己是作嵌入式的,請問安卓底層有哪些是要學的,有沒有比較推薦的網站或者論壇?學好了大概能夠找哪幾個方向的工做,好比說網絡機頂盒,手機rom等,這之類,歡迎暢談。

    分享到:

    2014-11-09 12:25

    提問者採納

    我幹了3年Android sdk開發,以爲到了瓶勁無法更進一步,因而花了一年多點時間,大概摸到點門徑。根據前輩的經驗,Android底層徹底入門須要兩年。

    先說下個人入門過程:
    第零步,下載源碼,我下的4.2的,框架層源碼10G,內核2G多,ctags給框架層建的標籤文件都有600M,當時讓我有點震撼,用的vim+ctags+cscope來閱讀,還算不錯,架構挺清晰的。

    第一步,我找到了一本好書《Android的設計與實現 第一卷》它講了Android框架層的啓動,初始化,服務框架初始化,Binder,消息循環,PackageManagerService,ActivityManagerService。據做者說後面會出講UI子系統的第二卷,拭目以待。其實這本書看了幾十頁我就發現須要第二步的知識,不然看不下去,因而跳去第二步。

    第二步,學習Linux系統編程,在看《Android的設計與實現》的時候我發現,框架層的Native部分,全是Linux編程。爲了掌握這部分知識,我花了4個月學習了《Linux系統編程手冊》(TLPI)這本1000多頁的書,我之前是搞WIndows文件系統這塊的,因此C語言還比較熟,TLPI的習題頗有意思,量也比較大,堅持下來仍是收穫不少。

    第三步,花了4個月學習了一些Linux內核的知識,看了LKD,PLKA看了一半多。越學越沒底,以爲不懂得愈來愈多,不過這個也正常,只有靠慢慢磨,估計之後要不斷的磨這塊。

    第四步,回頭看Android源碼,此次一口氣看完了《Android的設計與實現 第一卷》,終於對框架層有了譜。同時真的數次把我看暈,前面看Linux內核源碼都沒這麼暈,不斷在Java層和Native層之間跳有點磨腦漿。其中我又以爲Java的基礎沒有打太牢,回去補了一個月的《Core Java》第八版。可是這書沒有涉及UI子系統,因而又看了《Android內核剖析》

    第五步,《Android內核剖析》(這本書其實是講框架層的,做者也是個搞嵌入式的,因此他在寫框架層的時候文筆不太好,很羅嗦,不過仍是有不少看點,到他後來寫作ROM,玩開發板時估計是說到了他的本行,一會兒遛起來了看得出仍是挺有水平的,這本書知識有點舊畢竟講的是2.3不少代碼已通過時,可是做者不少點子頗有參考價值)這本書講UI子系統和按鍵/觸摸消息處理系統仍是頗有份量的,尤爲13章View繪製那裏,結合源碼研究頗有收穫。然後面他講編譯框架和ROM相關的東西都是挺寶貴的資料。

    第六步,爲了再補一下其餘諸如電源管理模塊等子系統的知識看了,《深刻理解android》系列,我的認爲這個系列看起來有點不太舒服,不過做爲補充印證仍是比較有價值。

    第七步,《Android系統源代碼情景分析》,羅昇陽的源碼分析大做,比《Android的設計與實現》分析得更細緻,但缺點是涉及到模塊比較少,選用的源碼也比《Android的設計與實現》更舊一點。看完書後須要去研究做者的博客,東西挺多的,必定讓你滿意。

    第八步,買塊開發板本身玩。這步我還沒走到,緣由是我以爲我還差點準備知識。可能要再幾個月,到時準備入塊6410或者樹莓派。

    最後,因爲我11年之前都是搞Windows這塊的,因此對Linux知識不是很瞭解,不得已看了這麼些書,若是是一直作Linux的人,不少步驟估計能夠省掉了。直接上源碼纔是正道。

    我自己作着移動GIS開發的工做,學框架層全是由於興趣,但招聘平臺Android框架層開發人員仍是蠻有競爭力的有很多定製ROM,智能電視的工做都處於人才難求狀態,畢竟有必定的門檻,如今各類ios培訓,讓奔着錢幹開發的人紛紛涌入,而ios只能幹sdk開發的缺點就暴露出來了,一堆新手老手,菜鳥大牛全擠在SDK開發這塊,我以爲不太妙。 反觀Android這邊,雖然入門菜鳥沒有搞ios來錢,可是可持續性很好,從sdk-》框架》驅動》內核這樣幹下去。幹着幹着發現本身漸漸變成了Linux開發者/嵌入式開發者的人也很多,新人,老手,菜鳥大牛各居其位,層次性很好。

    追問:

    你回答的很認真,按照這種態度去學習遲早成大牛,學習了。謝謝

    提問者評價

        太給力了,你的回答完美的解決了個人問題!

android

相關文章
相關標籤/搜索