Android應用層源碼閱讀筆記--Application

Android應用層源碼閱讀筆記--Application

導言

在這個年頭,問到看過android 源碼沒?必定問的就是你是否看過android linux層的代碼,你說沒看過,都貌似不好意思說自己學過android的.我就想了,android linux層的代碼對於一個沒搞過linux,c/ c++的人來說,對於一個從c#,java,python,js 轉過來學android的人來說對於他們有啥意義?難道我會用 gcc 編譯一段 c語言,然後在內核上打上一個patch實現一個關機鬧鐘纔是真正的會android ?能力有限,就做下應用層的源碼筆記.

一個程序的開始---Application

什麼?一個程序的開始是activity?好吧,不跟你爭論,咱們來看下源代碼是怎麼處理.

Application 的源碼傳送門 https://github.com/android/platformframeworksbase/blob/master/core/java/android/app/Application.java

Applcation 這個可以說的上是我們android 應用程序的開始,不管你之前知不知道這個類,它都默默的完成了android程序的初始化工作...接着就開始了我們的activity. 源碼還是很好懂的: private ArrayList<ComponentCallbacks> mComponentCallbacks = new ArrayList<ComponentCallbacks>(); private ArrayList<ActivityLifecycleCallbacks> mActivityLifecycleCallbacks = new ArrayList<ActivityLifecycleCallbacks>();

在代碼的最後還有兩個獲得所有回調的方法 collectXXXXXXXX()這個很好懂不作解釋

application 用了兩個arraylist 進行我們組件和activity生命週期的管理,我們再來看下(在哪裏看?上面的傳送門不去?)ActivityLifecycleCallbacks ,是不是很熟悉!不就是我們一開始學的activity的玩意了,所有的開始就是從這裏定義的了. 接下來就是對組件的註冊和移除,這個不用說各位一定能看得明白.

接下來看下內部api!

除了一開始的 attach,你會看得剩下的都是一堆dispatch XXX 開頭的方法,這會你查下字典的話,你就發現,就是有"調度,分配"的意思,這些api就是控制我們所有!activity的開始就是處這裏開始的了!

沒了..

從application開始看源代碼的話,不會感覺到那麼絕望,建議讀應用層的從這裏開始,收穫一下自信心..下一次,咱們來說說android 應用核心部分:Context是個什麼玩意..

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章