Android學習進階路線導航線路(Android源碼分享)

 

     前言:公司最近來了不少應屆實習生,看着他們充滿信心但略帶稚氣的臉龐上,想到了去年的本身,那是的我是否是也和 html

   如今的他們同樣呢?如今的我又改變了什麼?公司的給這些實習生指定的相關培訓制度仍是比較完善的(我但是個菜鳥)。但我反 android

   過來想,假如是我,我會制定一個怎樣的短時間或者長遠的計劃?總結了本身學到的知識,造成了一個學習線路,但願能給予同 sql

   道中人一點兒小小幫助。 shell

        畢業8月有餘,同時伴隨着從事Android開發的經驗的提高。仔細思量過去的工做內容,掐指算來也是少得可憐---主要維護FM 數據庫

音機模塊,間或看看Lancher模塊的代碼。儘管這樣,總的來講,在這八個月事件的學習裏,我自我感受收穫仍是很大的---自學了不少 網絡

Android相關方面的知識。雖然裏真正的大牛還有很遠的一段路程要走,本身也會堅持學習、堅持走下去。 框架

   

       再次,把本身學習過程當中總結的一些經驗總結出來,幫助那些剛剛步入Android的網友以及有了取得了一些經驗但不知如何 ide

繼續前行的朋友,但願大家可以早日在Android世界裏看到但願的曙光。同時歡迎各位朋友拍磚。 學習

      另外,本文總結的一些學習線路都是針對於Java上層應用開發的。對中間層相關開發並無涉及到。 url

    1、 基礎篇         須要掌握的技能以下:

               1、熟練掌握基本控件以及容器控件的使用

                         經常使用的基本控件有:Button TextViewEditTextListView

                         經常使用的容器控件有:FrameLayoutLinearLayoutRelativeLayout

               2、熟練掌握相關監聽器的註冊和使用:

                         經常使用監聽器有: OnClickListenerOnLongClickListenerOnItemClickListener

               3、掌握Log的使用以及分析方法

               4、掌握ActivityService的生命週期和使用方法

               5、掌握BroadcastReceiver(廣播)的接受和使用   

               6、掌握Intent以及IntentFilter的使用   

               7、基本掌握數據庫方面知識,包括SQLiteDatabase以及ContentProvider的使用方法

  

         除此以外,咱們必須得掌握adb shell 的使用方法,經常使用功能有:

                        adb pull   adb push adb remount 指令等

         因爲shell類同於Linux shell ,咱們還得掌握基本的Linux指令等,例如catcd

    知識獲取渠道主要爲:

                  Android SDK以及網上大牛的博客。

      附: 關於基礎知識的介紹,國內的一些書籍質量真是至關差勁,味同嚼蠟。強烈不建議在此階段買書籍。

   

       這時,您已經小有所成了,可以基本掌握Android開發了。這兒,我推薦一個手把手講解Android項目的視頻:

               zhengping老師講解的,強烈推薦。

                  視頻下載地址:http://www.verycd.com/topics/2847310/

     祝您一臂之力的固然還有Mars老師的視頻了。

     實踐出真知。這個階段,你能夠本身編寫一些小Demo了,幫助本身在更深層次發展了。

        PS:我經過看了Mars老師視頻後,編寫了一個簡易的音樂播放器Demo 感受挺有成就感的。

  經過前面的學習,咱們能夠成功進入第二個階段了。

  2、 提升篇        須要掌握的技能以下:

                 1、掌握Canvas類的使用-- 如何繪圖

                 2掌握消息通訊機制---Handler相關類的使用以及原理

                 3掌握Context類以及實現原理

                 4掌握View樹的繪製流程   View繪製流程很重要,掌握它就基本上掌握了Android核心之一了。

                         4.1、掌握觸摸事件的分發流程--- onInterceptTouchEvent以及onTouchEvent方法流程

                         4.2、掌握相關監聽器的調用機制。例如OnClickListener監聽時怎麼調用的?

                         4.3、可以編寫自定義View以及ViewGroup

                 5理解Binder機制----Binder機制很重要,Android的進程間通訊都是靠它完成的。掌握它,纔可以好的完成接下

                    來的學習。

                 6、基本掌握ActivityManagerService類的使用,主要掌握的知識點包括以下:

                          6.1startActivity()流程,即啓動一個Activity的流程  ;

                          6.2startService()流程,即啓動一個Service的流程 ;

                 7、基本掌握PackageManagerService類的使用,主要掌握的知識點包括以下:

                          7.1、開機時如何解析全部已安裝應用程序的Apk包的信息

                          7.2Intent以及IntentFilter的匹配規則以及解析過程

                 8、基本掌握View添加至窗口的過程---WindowManagerIml WindowManagerService類的用法

   知識渠道:

                      網上相關大牛的博客。 (我這一畝三分地也有點貨咯。(*^__^*) )

   

                      必備書籍: <Android內核剖析>

                              

                           Android源代碼一份

         PS: 您的我的電腦上必定得有份  Android源代碼,不然何以笑傲江湖 。

  3、 進階篇

            1、基本理解SystemServer類加載流程以及WatchDog的功能

            2more......

   

         我也仍是個小菜鳥,更多的就不知道咯。但願之後可以完善起來。和你們共同成長。

      最後,我總結的一些學習知識點只是一個提綱挈領,幫助你們學習成長的點或者線。例如:我負責通信錄模塊,固然得把數據

庫方面知識弄得一清二楚啊。否則,公司要我何用。所以你們在學習的時候,找出更適合本身的點。

      有些人可能會想,工做中我用不到,學它幹嗎?再次也規勸你們在工做之餘,給本身充充電,多學點知識只有好的沒有壞的。

     

      但願你們天天能進步一點,成長一點,接近心目中的那個天空更近一點。     

   前面說的博客,在此推薦兩個我常去的吧:

        1   應用方面,主要是魏祝林的csdn博客 http://blog.csdn.net/Android_Tutor 但他的博客主要是以代碼爲主,

            須要本身結合源代碼揣摩

        2   框架方面,主要是老羅的csdn博客 http://blog.csdn.net/Luoshengyang/   但他的博客主要是以流程分析

            爲主,  而對 流程 須要的前期準備知識介紹不足,初步看起來比較難以理解,所以,買本《Android內核剖析》是必須

            的,能夠參考源代碼仔細領悟, 強烈推薦該書籍。

        

    因爲網絡上Android源碼不太好找,特此共享下Android部分源碼,主要包括框架層、中間層、以及一些App等,對上層開發

和中間層開發仍是頗有益處的:

           源碼對應目錄:                            下載地址:

           frameworks             http://115.com/file/dpna22jr#frameworks.rar

           packages                [url]http://115.com/file/dpnay9ug#packages.rar[/url]

           kernel                   [url]http://115.com/file/anqptq4l#kernel.rar[/url]

           ndk                        [url]http://115.com/file/c2libfmk#ndk.rar[/url]

           system                   [url]http://115.com/file/beh14i2o#system.rar[/url]

相關文章
相關標籤/搜索