很多初入Android開發的網頁可能不知道Android程式的入口點是什麼,不是main()嗎,當然我相信回複onCreate的在字面上不算錯,但是你們想的是Activity中的onCreate 方法吧,其實真正的入口點entrypoint是什麼。
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.app.Application這個包的onCreate才是真正的Android入口點,隻不過大多數開發者無需重寫該類,他的繼承關系如下圖:
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
android.app.Application類包含了4個公開的方法
void onConfigurationChanged(Configuration newConfig)
void onCreate() //這裡才是真正的入口點。
void onLowMemory()
void onTerminate()
是以真正的Android入口點是application的main,你可以看下androidmanifest.xml的包含關系就清楚了,并不是每個應用都必須有Activity的。