不少初入Android開發的網頁可能不知道Android程序的入口點是什麼,不是main()嗎,不少網友可能直接回復是onCreate,固然我相信回覆onCreate的在字面上不算錯,可是大家想的是Activity中的 onCreate方法吧,這裏Android開發網告訴下你們真正的入口點entrypoint是什麼。java
Android使用Google Dalvik VM,相對於傳統Java VM而言有着很大的不一樣,在Sun的Java體系中入口點和標準c語言同樣是main(),而每一個Android程序都包含着一個Application 實例,一個Application實例中有多個Activity、Service、ContentProvider或Broadcast Receiver。由於大部分的應用都包含Activity因此,說不少網友認爲是Activity的onCreate,可是你沒有發現你的工程中有多個 Activity嗎? 你可能沒有見過沒有Activity的Android應用吧。android
其實在android.app.Application這個包的onCreate纔是真正的Android入口點,只不過大多數開發者無需重寫該類,他的繼承關係以下圖:app
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Applicationide
android.app.Application類包含了4個公開的方法xml
void onConfigurationChanged(Configuration newConfig)
void onCreate() //這裏纔是真正的入口點。
void onLowMemory()
void onTerminate()繼承
因此但願你們,記住真正的Android入口點是application的main,你能夠看下androidmanifest.xml的包含關係就清楚了,並非每一個應用都必須有Activity的。開發