android 組件

 

Android組件相關概念總結
2010-01-25 15:10 佚名 博客園  我要評論(0) 字號: T |  T
一鍵收藏,隨時查看,分享好友!

Android組件能夠支持相應的特性,那麼今天咱們將會經過對Activities;Services;Broadcast receivers;Content providers這四個組件進行詳細的介紹。數據庫

AD:編程

 

Android 手機操做系統是一款開源的系統。對編程有所瞭解的朋友們能夠經過各類編寫方式來使這款系統應用於手機中來知足各類需求。下面咱們將會對Android組件的一些概念進行一個總結,以方便你們的學習。ide

 

Android的一個核心特性就是,一個應用程序能利用另外應用程序的元素(假如這些應用程序容許這樣作)。舉個例子,若是你的程序須要展現一個能夠滾動的圖片列表,正好有另一個程序已經有這樣一個合適的滾動條而且也容許其餘程序使用,那麼你就可使用這個滾動條來完成你的工做,而不是開發你本身的。你的應用不須要內含其餘應用的代碼或者鏈接到他。相反,它只是簡單的啓動了須要的部分。函數

爲了讓這個特性可以工做,系統必須可以實現運行一個部分組件被須要的應用,併爲那個部分實例化一個Java對象。所以,與大多數系統上的應用不同,Android應用沒有爲應用中的任何部分提供一個單一的入口(好比說,沒有main()函數)。相反的,他們用系統能實例和運行的本質組件。下面是4種組件:工具

Android組件之Activities佈局

一個活動爲一個具備焦點、用戶能夠操做的行爲展現了一個可視化的用戶接口。舉例,一個活動能夠展現一個用戶能夠選擇的菜單選項列表,或者展現有字幕的照片。一個文字短信應用可能有一個用來展現能夠選擇發送短信聯繫人列表的活動,一個用來給這個選擇的聯繫人寫短信的活動,其餘用來查看之前的短信和改變設置的一些活動。雖然他們一塊兒工做,構成了一個聯繫緊密的用戶接口,每個活動相對於其餘活動倒是獨立的。每個活動都是繼承於基類Activity。性能

一個應用能夠只有一個活動,或者就像上面的文字短信應用同樣,能夠有幾個。這些活動是什麼,有多少,固然,取決於應用程序和他的設計。典型的,這些活動中的一個Activity被標記爲程序啓動後第一個呈如今用戶眼前。從一個活動轉到另一個活動只是在當前的活動啓動下一個。學習

每個活動都被給與一個缺省的窗口用來繪製。典型的,這個窗口填充了整個屏幕,可是他能夠比這個窗口小,漂浮在其餘窗口之上。一個活動也可利用額外的窗口。舉例,一個彈出的對話框等待用戶的反應,出如今這個活動的中間,或者當用戶在屏幕上選擇特別的選擇時的一個位用戶展現重要信息的窗口。ui

這個視覺上的窗口的內容由一套視圖提供,繼承於基類View的實例。每個視圖控制一個在窗口內的特殊的矩形空間。父類視圖包含並安排了子類的佈局。在這套視圖體系底部的視圖在他們所控制的矩形空間中繪製,並對用戶直接對這個空間的行爲做出反應。所以,視圖就是用戶行爲發生交互的地方。舉例,一個視圖可能展現了一個很小的圖像,並在用戶觸摸這個圖片時建立了一個動做。Android有大量的已經完成,你可使用的視圖,包括按鈕,文字框,滾動條,菜單項,複選框…。url

一套視圖經過Activity.setContentView()填充到Activity所在窗體中。這個內容視圖使這套體系的根視圖。

Android組件之Services

服務不須要可視化的用戶界面,相反在一段不肯定的時間段裏運行在後臺。舉例,當用戶在處理其餘問題時,服務能夠播放背景音樂,或者他能夠從網上獲取數據,計算,提升,提供給活動所須要的結果。每一個服務繼承於服務基類。

一個基本的例子就是媒體播放器播放列表中的歌曲。播放應用程序可能會有一個或多個活動,容許用戶選擇歌曲並播放它們。可是,音樂回放不會被一個活動處理,由於用戶指望音樂在他們離開這個播放程序界面後仍能播放。爲了知足這個要求,這個播放活動應該開啓一個在後臺運行的服務。系統就能繼續播放音樂,即便用戶選擇播放音樂後離開了這個界面。

能夠實現鏈接到(綁定到)一個正在運行的服務(也能夠開啓一個當前沒有運行的服務)。鏈接以後,你能夠經過系統給出的一個接口與這個服務進行通訊。對於這個音樂服務,這個藉口能夠容許用戶去暫停,倒退,中止,重放和回放。

就像活動和其餘的組件,服務運行在應用程序進程中的主線程中。所以,他們不會阻塞到其餘組件或者用戶界面,服務一般會生成其餘線程用來作那些耗時間的任務(就像音樂播放同樣)。

Android組件之Broadcast receivers

廣播接收器只能接收廣播,對廣播的通知作出反應。不少廣播都產生於系統代碼--舉例,時區改變的通知,電池電量不足,照了一張相片,或者用戶改變了語言偏好。應用也能夠發出廣播--舉例,讓其餘應用知道已從網上下載了一些數據,而且它們可使用這些數據。

一個應用能夠有不少廣播接收器來對它認爲重要的通知作出反應。全部的接收器繼承於BroadcastReceiver基類。

廣播接收器不展現一個用戶界面。可是,它們能夠爲他們接收到得信息啓動一個活動,或者它們可使用NotificationManager來通知用戶。通知能夠以不一樣形式獲得用戶的注意--閃爍背景燈,震動手機,發出聲音,等等。它們一般在狀態欄上放置一個暫時的圖標,用戶能夠經過打開這個圖標獲取信息。

Android組件之Content providers

內容提供者提供了一套特殊的可供其餘應用使用的數據。這些數據能夠存儲在文件系統中,SQLite數據庫中,或者其餘有意義的形式。內容提供者繼承於ContentProvider基類,實現了一套標準的容許其餘用戶檢索,儲存數據的方法。可是,應用程序並不能直接使用這些方法。他們必須使用ContentProvider的實例,調用它的方法。ContentResolver能夠與任何內容提供者交流,他們之間的合做能夠管理進程間的通訊。

無論何時有一個須要被一個特殊的Android組件處理的請求,Android確保這個應用組件的進程在運行中,若是有須要就啓動它,確保組件的合適的實例是可用的,若有須要就實例化它。

相關文章
相關標籤/搜索