星期三, 9月 21, 2011

Application components

Android應用程式學習筆記

Application components

應用程式組件是組建android應用程式的重要區塊,每個組件都是系統能進入應用程式的不同進入點。不是所有組件都有給使用者實際進入點,有些是要依賴其他組件,但是每個組件都有它自己的實體和扮演的角色-每個組件都有獨一的建立區塊來幫助你完成應用程式的完整行為。

有四種類型應用程式組件,每種類型都有其目的以及生命週期。

以下就來簡單介紹這四種類型組件:

Activities
簡單地來說明activity的意思,可以解釋一個activity顯示一個使用者介面。例如,一個電子郵件應用程式可能有一個activity來列表顯示所有新郵件的介面,另一個activity來顯示撰寫郵件功能的介面,另一個activity顯示讀郵件的介面。在電子郵件應用程式中有許多activities通力合作拼合成使用者的使用體驗。而activities彼此之間是獨立的,因此,不同的應用程式可以啟動這些activties中的任何一個activity。例如,攝影應用程式可以啟動電子郵件應用程式的activity來撰寫新郵件,為了與朋友分享照片。
實現一個activity要繼承Activity類別。
Services
service是運行在後台的組件,用來執行長時間的操作或執行遠端進程的工作。與activity不同,service是不提供使用者介面。例如,一個service可能在後台播放音樂,當使用者在不同應用程式,或者從網路取得數據且不會阻塞正在與使用者互動的activity。其他組件也能啟動service並讓它運,或者綁定它與它互動。
實現service必須繼承Service類別。
Content provider
Content provider主要功能在管理應用程式分享的數據。你可以儲存數據在檔案系統、SQLite資料庫、網路、或者其他你得應用程式能夠存取的儲存設備,通過content provider,其他應用程式可以查詢甚至修改這些數據。例如,android系統提供content provider管理使用者的聯絡人資訊。因此,有適合許可的應用程式可以查詢content provider的部分,去讀及寫私人的資訊。
content provide也可以用來讀及寫你的應用程式私有的、不想分享的數據。
Broadcast receiver
Broadcast receiver是用來回應系統廣播的公告,許多廣播來自系統-例如,廣播公告螢幕已經關閉、電池為低電量或以取得相片。應用程式也可以初始一個廣播,例如,讓應用程式知道數據已經下載ˇ到裝置中,並且已準備好可以使用。雖然,broadcast receiver不提供使用者介面,它們可以在廣播事件發生時產生狀態列來提醒使用者。更常見地,廣播接收器就是其他組件的"出入口",也被命令做少量工作。
 Broadcast receiver繼承自BroadcastReceiver類別,每個廣播透過Intent物件傳遞訊息。
 Android系統獨特的設計是任何應用程式可以啟動其他應用程式的組件。例如,如果你想使用者用攝影機擷取相片,有其他應用程式也可以做到,那你的應用程式也可以用此應用程式來完成擷取相片的功能,取代自己開發。你不需要合併或者甚至連接攝影應用程式的程式碼,取而代之的是你可以輕易地攝影應用程式的activity來擷取相片。當完成後,相片甚至可以回傳到你的應用程式,所以你可以使用相片,對使用者來說,相機似乎就是應用程式的一部份。

當系統啟動一個組件,它會為應用程式產生進程,且實作組件需要的類別。例如,如果你的應用程式攝影應用程式擷取相片的activity,activity運行在屬於攝影應用程式的進程中,而不是在你的應用程式的進程中,因此,不像在大部分平台的應用程式,android應用程式不會有單一的進入點。

因為系統執行應用程式於分開的進程中,對其他應用程式有文件權限來限制存取,你的應用程式無法直接啟動其他應用程式的組件,然而,android系統可以,所以,激活其他應用程式的組件,你必須傳遞一個訊息給系統,你的intent物件來指定要啟動的特定組件,然後系統為你啟動組件。

沒有留言:

張貼留言