Android應用程序是由組件組成的茸俭,組件可以調(diào)用相互獨立的功能模塊。根據(jù)完成的功能安皱,組件可劃分為四類核心組件调鬓,即Activity、Service酌伊、BroadcastReceiver和ContentProvider腾窝。
1 Activity組件
Activity是Android最重要的組件,負責用戶界面的設計居砖。Activity用戶界面框架采用MVC 模式(Model View Controller) 虹脯。控制器負責接受并響應程序的外部動作;通過視圖反饋應用程序給用戶的信息(UI 界面反饋);模型是應用程序的核心奏候,用于保存數(shù)據(jù)和代碼循集。
2 Service組件
Service是Android提供的無用戶界面、長時間在后臺運行的組件蔗草。Android 提供了許多系統(tǒng)服務程序咒彤。
3 BroadcastReceiver組件
在Android系統(tǒng)中,當有特定事件發(fā)生時就會產(chǎn)生相應的廣播咒精。例如镶柱,開機啟動完成、收到短信模叙、電池電量改變歇拆、網(wǎng)絡狀態(tài)改變等。
為了通知手機用戶有事件發(fā)生范咨,在通常情況下故觅,通知管理器(NotificationManager)會在手機的狀態(tài)欄里產(chǎn)生一個具有提示音的通知,用戶通過下滑手勢可以查看相關信息湖蜕。
BroadcastReceiver(廣播接收者)接收來自系統(tǒng)或其他應用程序的廣播逻卖,并做出回應。
4 ContentProvider組件
為了跨進程共享數(shù)據(jù)昭抒, Android提供了ContentProvider接口,可以在無須了解數(shù)據(jù)源、路徑的情況下灭返,對共享數(shù)據(jù)進行查詢盗迟、添加、刪除和更新等操作熙含。
5 Application罚缕、Context和Intent
a.應用對象Application
當Android程序啟動時系統(tǒng)會創(chuàng)建一個Application類型的對象,用來存儲系統(tǒng)的一些信息完成數(shù)據(jù)傳遞怎静、共享和緩存等操作邮弹。
Application對象的生命周期是整個程序中最長的,它的生命周期就等于這個程序的生命周期蚓聘,且是全局腌乡、單例的,即在不同的Activity和Service中獲得的對象都是同一個對象夜牡。
b.上下文對象Context
Activity和Service都是Context的子類与纽,通過Context提供的方法getApplicationContext()就能獲得Context對象。
BroadcastReceiver塘装、ContentProvider并不是Context的子類急迂,其所持有的Context都是由其他組件傳遞過來的。
Android組件及通信機制蹦肴,如圖所示僚碎。
c.意圖對象Intent
Android提供輕量級的進程間通信機制Intent,使跨進程組件通信和發(fā)送系統(tǒng)廣播成為可能阴幌,組件Activity勺阐、Service和BroadcastReceiver都是通過消息機制被啟動(激活)的,其使用的消息就封裝在對象Intent里裂七。
6 Android應用程序的運行入口
在一個Android應用程序開始運行的時候皆看,會單獨啟動一個進程(Process)。默認的情況下背零,這個應用程序中的所有組件(Activity腰吟、Service、BroadcastReceiver和ContentProvider)都會運行在這個進程里徙瓶。
一個Android應用程序通常由多個Activity組成毛雇,但只有一個主Activity。在項目清單文件中使用< activity >
標簽注冊主Activity時侦镇,還需要內(nèi)嵌 < intent-filter >
灵疮、 < action> 和 < category >
標簽,以此說明該Activity為Android應用程序的入口壳繁。定義一個MainActivity.java為應用的主
Activity代碼如下: