搜尋
首頁常見問題android的四大組件是什麼

android的四大組件是什麼

Nov 24, 2022 pm 07:14 PM
android

四大元件:1、Activity元件,它一個單獨的窗口,程式流程都必須在【Activity】中運行,所有它是最基本的模組。 2、service元件,用於在背景完成使用者指定的操作。 3.content provider元件,會為所有的應用程式準備一個內容窗口,並且保留資料庫、檔案。 4、broadcast receiver元件,是程式之間傳遞訊息時的一種機制,作用就是接收或發送通知。

android的四大組件是什麼

本教學操作環境:Android 13系統、小米12手機。

Android四大元件分別為activity、service、content provider、broadcast receiver。

一、android四大元件詳解

#1、activity

Activity可以看成是安卓系統的根本,在這個根本上才可以進行其他的工作,因為在安卓系統裡運行的所有的程序,它的流程都必須在【Activity】中運行,所有他是最基本的模組。它的作用是一個框架或頁面,每個程式會有多個【Activity】組成。

(1)一個A​​ctivity通常就是一個單獨的畫面(視窗)。

(2)Activity之間透過Intent進行通訊。

(3)android應用程式中每一個Activity都必須要在AndroidManifest.xml設定檔中聲明,否則系統將無法辨識也不執行該Activity。

2、service

Service是安卓裡非常很重要的元件,它的地位和優先順序是與活動相似的,不過Service不能夠自己運行,它只能在安卓的後台運行。它的作用就是與安卓的其他逐漸進行交互,舉個簡單例子:當我們打開手機上音樂播放器並將它放到後台,此時播放的音樂就是由Service在負責控制。

1)service用於在背景完成使用者指定的操作。 service分為兩種:

  • started(啟動):當應用程式元件(如activity)呼叫startService()方法啟動服務時,服務處於started狀態。

  • bound(綁定):當應用程式元件呼叫bindService()方法綁定到服務時,服務處於bound狀態。

2)startService()與bindService()區別:

  • started service(啟動服務)是由其他元件呼叫startService()方法啟動的,這導致服務的onStartCommand()方法被呼叫。當服務是started狀態時,其生命週期與啟動它的元件無關,並且可以在後台無限期運行,即使啟動服務的元件已經被銷毀。因此,服務需要在完成任務後呼叫stopSelf()方法停止,或由其他元件呼叫stopService()方法停止。

  • 使用bindService()方法啟用服務,呼叫者與服務綁定在了一起,呼叫者一旦退出,服務也就終止,大有「不求同時生,必須同時死”的特點。

3)開發人員需要在應用程式設定檔中宣告全部的service,使用標籤。

4)Service通常位於後台運行,它一般不需要與使用者交互,因此Service元件沒有圖形使用者介面。 Service元件需要繼承Service基底類別。 Service元件通常用於為其他元件提供後台服務或監控其他元件的運作狀態。

3、content provider(內容提供者)

內容提供者這個元件是專門為第三方應用而設計的,它非常的靈活,而且相當重要,它會為所有的應用準備一個內容窗口,並且保留資料庫、文件,作用就是我們在使用這些第三方軟體的時候,可以有效的訪問,並且保護裡面的資料。

1)android平台提供了Content Provider使一個應用程式的指定資料集提供給其他應用程式。其他應用程式可以透過ContentResolver類別從該內容提供者取得或存入資料。

2)只有需要在多個應用程式間共享資料是才需要內容提供者。例如,通訊錄資料被多個應用程式使用,且必須儲存在一個內容提供者中。它的好處是統一資料存取方式。

3)ContentProvider實作資料共享。 ContentProvider用於保存和獲取數據,並使其對所有應用程式可見。這是不同應用程式間共享資料的唯一方式,因為android沒有提供所有應用程式共同存取的公共儲存區。

4)開發人員不會直接使用ContentProvider類別的對象,大多數是透過ContentResolver對象實作對ContentProvider的操作。

5)ContentProvider使用URI來唯一標識其資料集,這裡的URI以content://作為前綴,表示該資料由ContentProvider來管理。

4、broadcast receiver(廣播接收器)

在安卓系統中,廣播接收器並不是直接就可以看到的,它是程式之間傳遞訊息時的一種機制,作用就是接收或發送通知。通俗的來說廣播接收器更像是一種傳遞元件,它能夠將訊息接收,甚至可以對它進行過濾然後回應。

1)你的應用程式可以使用它對外部事件進行過濾,只對感興趣的外部事件(如當電話呼入時,或者當資料網路可用時)進行接收並做出回應。廣播接收器沒有使用者介面。然而,它們可以啟動一個activity或serice來回應它們收到的訊息,或用NotificationManager來通知使用者。通知可以用很多方式來吸引使用者的注意力,例如閃爍背燈、震動、播放聲音等。一般來說是在狀態列上放一個持久的圖標,用戶可以打開它並獲取訊息。

2)廣播接收者的註冊有兩種方法,分別是程式動態註冊和AndroidManifest檔案中進行靜態註冊。

3)動態註冊廣播接收器特點是當用來註冊的Activity關掉後,廣播也就失效了。靜態註冊無需擔憂廣播接收器是否關閉,只要設備是開啟狀態,廣播接收器也是開啟著的。也就是說就算app本身未啟動,該app訂閱的廣播在觸發時也會對它起作用。

二、android四大元件總結:

#1、4大元件的註冊

#4大基本元件都需要註冊才能使用,每個Activity、service、Content Provider都需要在AndroidManifest檔案中進行設定。 AndroidManifest檔案中未進行聲明的activity、服務以及內容提供者將不為系統所見,從而也就不可用。而broadcast receiver廣播接收者的註冊分靜態註冊(在AndroidManifest檔案中進行設定)和透過程式碼動態建立並以呼叫Context.registerReceiver()的方式註冊至系統。需要注意的是在AndroidManifest檔案中進行配置的廣播接收者會隨系統的啟動而一直處於活躍狀態,只要接收到感興趣的廣播就會觸發(即使程式未運行)。

2、4大元件的啟動

內容提供者的啟動:當接收到ContentResolver發出的請求後,內容提供者被啟動。而其它三種元件activity、服務和廣播接收器被一種叫做intent的非同步訊息所啟動。

3、4大元件的關閉

內容提供者僅在回應ContentResolver提出請求的時候啟動。而一個廣播接收器僅在回應廣播訊息的時候啟動。所以,沒有必要去顯式的關閉這些組件。 Activity關閉:可以透過呼叫它的finish()方法來關閉一個activity。服務關閉:對於透過startService()方法啟動的服務要呼叫Context.stopService()方法關閉服務,使用bindService()方法啟動的服務要呼叫Contex.unbindService()方法關閉服務。

4、android中的任務(activity棧)

a)任務其實就是activity的棧,它由一個或多個Activity組成,共同完成一個完整的使用者體驗。棧底的是啟動整個任務的Activity,棧頂的是當前運行的用戶可以交互的Activity,當一個activity啟動另外一個的時候,新的activity就被壓入棧,並成為當前運行的activity。而前一個activity仍保持在棧之中。當使用者按下BACK鍵的時候,當前activity出棧,而前一個恢復為目前運行的activity。棧中保存的其實是對象,棧中的Activity永遠不會重排,只會壓入或彈出。

b)任務中的所有activity是作為一個整體進行移動的。整個的任務(即activity棧)可以移到前台,或退至後台。

c)Android系統是一個多任務(Multi-Task)的作業系統,可以在用手機聽音樂的同時,也執行其他多個程式。每多執行一個應用程序,就會多耗費一些系統內存,當同時執行的程序過多,或者是關閉的程序沒有正確釋放掉內存,系統就會覺得越來越慢,甚至不穩定。為了解決這個問題,Android引入了一個新的機制,即生命週期(Life Cycle)。

更多相關知識,請造訪常見問題欄位!

以上是android的四大組件是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器