Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android組件相關概念總結

Android組件相關概念總結

編輯:高級開發

android 手機操作系統是一款開源的系統。對編程有所了解的朋友們可以通過各種編寫方式來使這款系統應用於手機中來滿足各種需求。下面我們將會對android組件的一些概念進行一個總結,以方便大家的學習。

  • android本地廣播相關操作分析
  • android Widget工具箱
  • android菜單系統基本概念詳解
  • android Intent應用實踐經驗總結
  • android數據庫工作方式解析

android的一個核心特性就是,一個應用程序能利用另外應用程序的元素(假如這些應用程序允許這樣做)。舉個例子,如果你的程序需要展示一個可以滾動的圖片列表,正好有另外一個程序已經有這樣一個合適的滾動條並且也允許其他程序使用,那麼你就可以使用這個滾動條來完成你的工作,而不是開發你自己的。你的應用不需要內含其他應用的代碼或者連接到他。相反,它只是簡單的啟動了需要的部分。

為了讓這個特性能夠工作,系統必須能夠實現運行一個部分組件被需要的應用,並為那個部分實例化一個Java對象。因此,與大多數系統上的應用不一樣,android應用沒有為應用中的任何部分提供一個單一的入口(比如說,沒有main()函數)。相反的,他們用系統能實例和運行的本質組件。下面是4種組件:

android組件之ActivitIEs

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

一個應用可以只有一個活動,或者就像上面的文字短信應用一樣,可以有幾個。這些活動是什麼,有多少,當然,取決於應用程序和他的設計。典型的,這些活動中的一個Activity被標記為程序啟動後第一個呈現在用戶眼前。從一個活動轉到另外一個活動只是在當前的活動啟動下一個。

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

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

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

android組件之Services

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

一個基本的例子就是媒體播放器播放列表中的歌曲。播放應用程序可能會有一個或多個活動,允許用戶選擇歌曲並播放它們。但是,音樂回放不會被一個活動處理,因為用戶期望音樂在他們離開這個播放程序界面後仍能播放。為了滿足這個要求,這個播放活動應該開啟一個在後台運行的服務。系統就能繼續播放音樂,即使用戶選擇播放音樂後離開了這個界面。

可以實現連接到(綁定到)一個正在運行的服務(也可以開啟一個當前沒有運行的服務)。連接之後,你可以通過系統給出的一個接口與這個服務進行通信。對於這個音樂服務,這個借口可以允許用戶去暫停,倒退,停止,重放和回放。

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

android組件之Broadcast receivers

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

一個應用可以有很多廣播接收器來對它認為重要的通知做出反應。所有的接收器繼承於BroadcastReceiver基類。

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

android組件之Content providers

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

不管什麼時候有一個需要被一個特殊的Android組件處理的請求,android確保這個應用組件的進程在運行中,如果有需要就啟動它,確保組件的合適的實例是可用的,如有需要就實例化它。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved