外加一個重要組件 intent的具體解釋。(主要來自於網絡)android
一、Activity數據庫
一個Activity一般展示爲一個可視化的用戶界面。好比,一個activity可能展示爲一個用戶可以選擇的菜單項列表或者展示一些圖片以及圖 片的標題。一個消息服務應用程序可能包括一個顯示聯繫人列表的activity,一個編寫信息的activity,以及其餘一些查看信息和改動應用程序設 置的activity。儘管這些activity一塊兒工做,共同組成了一個應用程序,但每一個activity都是相對獨立的。每一個activity都 是Activity(android.app.Activity)的子類。網絡
一個應用程序可能僅僅包括一個activity,或者像上面提到的消息服務程序同樣有多個activity。一個應用程序包括幾個activity以 及各個activity完畢什麼樣的功能全然取決於應用程序以及它的設計。一般每個應用程序都包括一個在應用程序啓動後第一個展示給用戶的 activity。在當前展示給用戶的activity中啓動一個新的activity,可以實現從一個activity轉換到另一個 activity。數據結構
每個activity都會有一個用於繪製用戶界面的窗體。一般這樣一個窗體會填充整個屏幕,固然這個窗體也可以比屏幕小並漂浮在其它窗體之上。 activity還可以使用一些額外的窗體,好比一個要求用戶響應的彈出式對話框,或者是當用戶在屏幕上選擇一個條目後向用戶展示一些重要信息的窗體。app
展現activity窗體的可視化內容區域是一些具備層次關係(很是像數據結構中的樹)的視圖,而視圖則是由類View的子類表示的。每個視圖控制窗 口中的一個矩形區域。父視圖包括一些子視圖並管理子視圖的佈局。位於葉節點的視圖直接控制並響應用戶的動做。所以視圖就是activity與用戶交互的接 口。好比,一個顯示圖片的視圖,當用戶單擊的時候它可能會啓動一個動做。Android有不少開發者可以直接使用的視圖,包括button,文本域,滾動欄,菜 單,複選框等。異步
經過調用Activity.setContentView()方法來設置展示activity的窗體的視圖。內容視圖則是視圖層次結構中的根節點視圖。ide
二、Service佈局
Service是Android的四大組件之中的一個,即Android系統的服務(不是一個線程,是主程序的一部分),與Activity不一樣,它是不能與用戶交互的,不能本身啓動的,需要調用Context.startService()來啓動,執行後臺,假設咱們退出應用時,Service進程並無結束,它仍然在後臺行。
spa
service沒實用戶界面,但它會在後臺一直執行。好比,service可能在用戶處理其餘事情的時候播放背景音樂,或者從網絡上獲取數據,或者執行一些運算,並把運算結構提供給activity展現給用戶。每個service都擴展自類Serivce。線程
多媒體播放器播放音樂是應用service的一個很好的樣例。多媒體播放器程序可能含有一個或多個activity,用戶經過這些 activity選擇並播放音樂。然而,音樂回放並不需要一個activity來處理,因爲用戶可能會但願音樂一直播放下去,即便退出了播放器去執行其餘 程序。爲了讓音樂一直播放,多媒體播放器activity可能會啓動一個service在後臺播放音樂。Android系統會使音樂回放service一 直執行,即便在啓動這個service的activity退出以後。
應用程序可以鏈接到一個正在執行中的service。當鏈接到一個service後,可以使用這個service向外暴露的接口與這個service進行通訊。對於上面提到的播放音樂的service,這個接口可能贊成用戶暫停,中止或又一次播放音樂。
與activity以及其餘組件同樣,service相同執行在應用程序進程的主線程中。因此它們不能堵塞其餘組件或用戶界面,一般需要爲這些service派生一個線程執行耗時的任務。
三、Broadcase receiver
一、BroadcastReceiver 用於異步接收廣播Intent。主要有兩大類,用於接收廣播的:
正常廣播 Normal broadcasts(用 Context.sendBroadcast()發送)是全然異步的。它們都執行在一個沒有定義的順序,通常是在同一時間。這樣會更有效,但意味着receiver不能包括所要使用的結果或停止的API。
有序廣播 Ordered broadcasts(用 Context.sendOrderedBroadcast()發送)每次被髮送到一個receiver。所謂有序,就是每個receiver執行後可以傳播到下一個receiver,也可以全然停止傳播--不傳播給其它receiver。 而receiver執行的順序可以經過matched intent-filter 裏面的android:priority來控制,當priority優先級一樣的時候,Receiver以隨意的順序執行。
二、廣播接收器是一個專一於接收廣播通知信息,並作出相應處理的組件。很是多廣播是源自於系統代碼的──比方,通知時區改變、電池電量低、拍攝了一張照片或者用戶改變了語言選項。應用程序也可以進行廣播──比方說,通知其餘應用程序一些數據下載完畢並處於可用狀態。
三、應用程序可以擁有隨意數量的廣播接收器以對所有它感興趣的通知信息予以響應。所有的接收器均繼承自BroadcastReceiver基類。
四、廣播接收器沒實用戶界面。然而,它們可以啓動一個activity來響應它們收到的信息,或者用NotificationManager來通知用戶。通知可以用很是多種方式來吸引用戶的注意力──閃動背燈、震動、播放聲音等等。通常來講是在狀態欄上放一個持久的圖標,用戶可以打開它並獲取消息。
四、Content provider
ContentProvider(內容提供者)是Android中的四大組件之中的一個。主要用於對外共享數據,也就是經過ContentProvider把應用中的數據共享給其它應用訪問,其它應用可以經過ContentProvider對指定應用中的數據進行操做。ContentProvider分爲系統的和本身定義的,系統的也就是好比聯繫人,圖片等數據。
五、intent