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

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

導言

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

一個程序的開始---Application

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

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

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

在代碼的最後還有兩個得到全部回調的方法 collectXXXXXXXX()這個很好懂不做解釋 c++

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

接下來看下內部api!

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

沒了..

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

相關文章
相關標籤/搜索