6/30/2011

[Android] 組成

Android應用程式基本上是由下面四個區塊組合而成:
1. Activity
2. Broadcast Intent Receiver
3. Service
4. Content Provider


並不是所有的應用程式一定要包含上面這四大部分,依開發人員針對應用程式的需求來組合.一旦開發人員決定在應用程式中使用那些區塊來組成,開發人員應該在AndroidManifest.xml文件中列出來。這是一個XML文件,開發人員可以在其中聲明應用程式用到的區塊組件以及此區塊提供的功能和必要的條件。例如應用程式需使用到上列的四個區塊元件,其AndroidManifest.xml如下所示:使用內建工具引用至每個JAVA class
image
Activity:
Activity算是在android裡面最常使用到的區塊,在android中每一個Activity就會對應到一個Layout,其Layout就是一個畫面,也就是說一個Activity通常就是一個單獨的畫面.
不過大部分的應用程式會包含多個畫面所組成,例如電話的應用程式,在使用撥打電話時,會開啟電話的通訊錄,其通訊錄的開啟就是另一個畫面的顯示,每一個畫面都會實作在一個Activity裡。切換到另一個畫面就是去啟動另一個Activity起來,而各個換面的通知與開啟是透過Intent的方式.來在畫面之間做移動的動作,Intent是用來描述一個應用程式想要做什麼事情。在Intent資料結構中兩個最重要的部份,一個是動作及對資料產生什麼樣的反應。例如:現行的activity就使用startActivity(myIntent)方法
Broadcast Intent Receiver:
當應用程式希望對外部的事件發生時,需做一些的處理時,就需要用到Broadcast Intent Receiver,例如:電池電量快用盡時,網路連線斷線時,可能需要告知使用者須趕緊完成未完成的處理,或者是有來電或簡訊通知時,告知使用者是否要處理,應用程式並不會因為Broadcast Receivers被呼叫而被它執行起來。而且當Broadcast Receivers被觸發時,系統會依宣告的需求來執行相對應的應用程式。應用程式可以利用 Context.sendBroadcast()方法來發出他們自己的intent broadcast給其他的應程式。
應用程式本身也可以發出廣播訊息,可以做為其他應用程式溝通的管道
廣播訊息是公開的,任何的應用程式都可以透過註冊Broadcast Receiver來接收到你所廣播的訊息,所以信用卡帳號不建議用廣播
一般通常用來作為Services與Activity溝通使用
Service:
Service是在背景運作,不直接與使用者互動,故不需要對應單獨的layout,也就不會有單獨的畫面,如手機上的音樂撥放器,就是在背景撥放音樂,以及利用Service在背景接收網路的訊息
Service無法自行獨立運作,必須透過Activity或Context物件來呼叫啟動Service~Context.startServices()
Service有獨立的生命週期,不會受到Activity的生命週期所影響,如有自己的OnCreate().OnStart(),但是須注意需要執行一些耗時的處理,請使用thread方式做處理,以避免造成UI操作時LOCK
Content Provider:
應用程式可以將應用程式的資料儲存到檔案、SQLite資料庫或其他的機制儲存起來。當開發人員希望應用程式的資料可以被其他應用程式共享時,Content Provider就會非常有用。Content Provider實現了讓應用程式之間互相分享資料的機制。

沒有留言:

張貼留言

請留言~一起討論吧~