當前位置:首頁 » 安卓系統 » android四大組件作用

android四大組件作用

發布時間: 2022-12-13 15:08:38

① 什麼是android的四大組件

四大組件包括如下內容:
Android有四大組件:Activity、Service、Broadcast Receiver、Content Provider

在這些組件之間的通訊中,主要是由Intent協助完成的。
Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,並完成組件的調用。
因此,Intent在這里起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的解耦。
例如,在一個聯系人維護的應用中,當我們在一個聯系人列表屏幕(假設對應的Activity為listActivity)上,點擊某個聯系人後,希望能夠跳出此聯系人的詳細信息屏幕(假設對應的Activity為detailActivity)
為了實現這個目的,listActivity需要構造一個 Intent,這個Intent用於告訴系統,我們要做「查看」動作,此動作對應的查看對象是「某聯系人」,然後調用startActivity (Intent intent),

② Android 一一 簡述Android四大組件

應用程序中,一個Activity就相當於手機屏幕,它是一種可以包含用戶界面的組件,主要用於和用戶進行交互。一個應用程序可以包含許多活動,比如事件的點擊,一般都會觸發一個新的Activity。

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

內容提供者主要用於在不同應用程序之間實現數據共享的功能,它提供了一套完整的機制,允許一個程序訪問另一個程序中的數據,同時還能保證被訪問數據的安全性。只有需要在多個應用程序間共享數據時才需要內容提供者。例如:通訊錄數據被多個應用程序使用,且必須存儲在一個內容提供者中。它的好處:統一數據訪問方式。

是Android中實現程序後台運行的解決方案,它非常適合去執行那些不需要和用戶交互而且還要長期運行的任務(一邊打電話,後台掛著QQ)。服務的運行不依賴於任何用戶界面,即使程序被切換到後台,或者用戶打開了另一個應用程序,服務扔然能夠保持正常運行,不過服務並不是運行在一個獨立的進程當中,而是依賴於創建服務時所在的應用程序進程。當某個應用程序進程被殺掉後,所有依賴於該進程的服務也會停止運行(正在聽音樂,然後把音樂程序退出)。

③ Android的四大組件是哪些,它們的作用

Android四大組件分別為activity、service、content provider、broadcast receiver。
一、android四大組件詳解
1、activity
(1)一個Activity通常就是一個單獨的屏幕(窗口)。
(2)Activity之間通過Intent進行通信。
(3)android應用中每一個Activity都必須要在AndroidManifest.xml配置文件中聲明,否則系統將不識別也不執行該Activity。
2、service
(1)service用於在後台完成用戶指定的操作。service分為兩種:
(a)started(啟動):當應用程序組件(如activity)調用startService()方法啟動服務時,服務處於started狀態。
(b)bound(綁定):當應用程序組件調用bindService()方法綁定到服務時,服務處於bound狀態。
(2)startService()與bindService()區別:
(a)started service(啟動服務)是由其他組件調用startService()方法啟動的,這導致服務的onStartCommand()方法被調用。當服務是started狀態時,其生命周期與啟動它的組件無關,並且可以在後台無限期運行,即使啟動服務的組件已經被銷毀。因此,服務需要在完成任務後調用stopSelf()方法停止,或者由其他組件調用stopService()方法停止。
(b)使用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四大組件 —— Activity(窗口)

Activity是一個 界面 的載體,可以把它與html頁面進行類比,html頁面由各種各樣的標簽組成,而Activity則可以由 各種控制項 組成。

Activity的掌握重點主要在於:

     a.Activity的生命周期 

     b.Activity的啟動模式

              onCreate() : 

            當Activity第一次被創建的時候調用此方法.一般在此方法中 進行控制項的聲明,添加事件等初始化工作 .

            onStart():

            當Activity被顯示到屏幕上的時候調用此方法,執行完此方法後 界面可見

            onResume():

            當此Activity能夠被操作之前,也就是能夠獲得用戶的焦點之前調用此方法.

            onRestart():

            當Activity被停止後又被再次啟動之前調用此方法.接著將調用onStart()方法.

            onPause():

            當第一個Activity通過Intent啟動第二個Activity的時候,將調用第一個Activity的onPause()方法.然後調用第二個Activity的onCreate(),onStart(),onResume()方法,接著調用第一個Activity的onStop()方法.如果Activity重新獲得焦點,則將調用onResume()方法;如果此Activity進入用戶不可見狀態,那麼將調用onStop()方法.

            onStop():

            當第一個Activity被第二個Activity完全覆蓋,或者被銷毀的時候回調用此方法.如果此Activity還會與用戶進行交互,將調用onRestart方法();如果此Activity將被銷毀,那麼將調用onDestroy()方法.

            注意:

              a.home鍵返回,鎖屏,關閉界面肯定會調用onStop方法

              b.但是開啟另一個Activity並不一定會調用onStop方法

            onDestroy():

               Activity被銷毀之前調用此方法.或者是調用finish()方法結束Activity的時候調用此方法.可以在此方法中進行收尾工作,比如釋放資源等.

             Active/Runing 一個新 Activity 啟動入棧後,它在屏幕最前端,處於棧的最頂端,此時它處於可見並可和用戶交互的激活狀態。

             Paused  當 Activity 被另一個透明或者 Dialog 樣式的 Activity 覆蓋時的狀態。此時它依然與窗口管理器保持連接,系統繼續維護其內部狀態,所以它仍然可見,但它已經失去了焦點故不可與用戶交互。

             Stoped  當 Activity 被另外一個 Activity 覆蓋、失去焦點並不可見時處於  Stop ed 狀態。

             Killed  Activity 被系統殺死回收或者沒有被啟動時處於  Killed 狀態。

            在 manifest 文件中聲明 activity 時,利用activity元素的 launchMode 屬性來設定 activity 與 task 的關系。

launchMode 屬性 指明了 activity 啟動 task 的方式,默認 standard方式

             standard(默認模式):

          系統在啟動 activity 的 task 中創建一個新的 activity 實例,並把 intent 傳送路徑指向它。 該 activity 可以被實例化多次,各個實例可以屬於不同的 task,一個 task 中也可以存在多個實例。

             singleTop:

           如果 activity 已經存在一個實例並位於當前 task 的 棧頂 ,則系統會調用已有實例的 onNewIntent() 方法把 intent 傳遞給已有實例,而不是創建一個新的 activity 實例。activity 可以被實例化多次,各個實例可以屬於不同的 task,一個 task 中可以存在多個實例(但僅當 back stack 頂的 activity 實例不是該 activity 的)。

               singleTask:

            系統將創建一個新的 task,並把 activity 實例 作為根 放入其中。但是,如果 activity 已經在其它 task 中存在實例,則系統會通過調用其實例的onNewIntent() 方法把 intent 傳給已有實例,而不是再創建一個新實例。 此 activity 同一時刻只能存在一個實例。

            例如:可以用於關閉所有Activity或重新登錄等

             singleInstance:

            除了系統不會把其它 activity 放入當前實例所在的 task 之外,其它均與"singleTask"相同。activity 總是它所在 task 的唯一成員;它所啟動的任何 activity 都會放入其它 task 中

            主要是startActivity(intent),或者帶值返回startActivityForResult(intent) , Activity的跳轉方式  。

⑤ Android有哪四大組件每一個組件在一個app中占據了多少比重

四大組件以及通訊機制: activity (1)一個Activity通常就是一個單獨的屏幕(窗口)。 (2)Activity之間通過Intent進行通信。 (3)android應用中每一個Activity都必須要在AndroidManifest.xml配置文件中聲明,否則系統將不識別也不執行該Activity。 service (1)service用於在後台完成用戶指定的操作。service分為兩種: (a)started(啟動):當應用程序組件(如activity)調用startService()方法啟動服務時,服務處於started狀態。 (b)bound(綁定):當應用程序組件調用bindService()方法綁定到服務時,服務處於bound狀態。 (2)startService()與bindService()區別: (a)started service(啟動服務)是由其他組件調用startService()方法啟動的,這導致服務的onStartCommand()方法被調用。當服務是started狀態時,其生命周期與啟動它的組件無關,並且可以在後台無限期運行,即使啟動服務的組件已經被銷毀。因此,服務需要在完成任務後調用stopSelf()方法停止,或者由其他組件調用stopService()方法停止。 (b)使用bindService()方法啟用服務,調用者與服務綁定在了一起,調用者一旦退出,服務也就終止,大有「不求同時生,必須同時死」的特點。 (3)開發人員需要在應用程序配置文件中聲明全部的service,使用<service></service>標簽。 (4)Service通常位於後台運行,它一般不需要與用戶交互,因此Service組件沒有圖形用戶界面。Service組件需要繼承Service基類。Service組件通常用於為其他組件提供後台服務或監控其他組件的運行狀態。 content provider (1)android平台提供了Content Provider使一個應用程序的指定數據集提供給其他應用程序。其他應用可以通過ContentResolver類從該內容提供者中獲取或存入數據。 (2)只有需要在多個應用程序間共享數據是才需要內容提供者。例如,通訊錄數據被多個應用程序使用,且必須存儲在一個內容提供者中。它的好處是統一數據訪問方式。 (3)ContentProvider實現數據共享。ContentProvider用於保存和獲取數據,並使其對所有應用程序可見。這是不同應用程序間共享數據的唯一方式,因為android沒有提供所有應用共同訪問的公共存儲區。 (4)開發人員不會直接使用ContentProvider類的對象,大多數是通過ContentResolver對象實現對ContentProvider的操作。 (5)ContentProvider使用URI來唯一標識其數據集,這里的URI以content://作為前綴,表示該數據由ContentProvider來管理。 broadcast receiver (1)你的應用可以使用它對外部事件進行過濾,只對感興趣的外部事件(如當電話呼入時,或者數據網路可用時)進行接收並做出響應。廣播接收器沒有用戶界面。然而,它們可以啟動一個activity或serice來響應它們收到的信息,或者用NotificationManager來通知用戶。通知可以用很多種方式來吸引用戶的注意力,例如閃動背燈、震動、播放聲音等。一般來說是在狀態欄上放一個持久的圖標,用戶可以打開它並獲取消息。 (2)廣播接收者的注冊有兩種方法,分別是程序動態注冊和AndroidManifest文件中進行靜態注冊。 (3)動態注冊廣播接收器特點是當用來注冊的Activity關掉後,廣播也就失效了。靜態注冊無需擔憂廣播接收器是否被關閉,只要設備是開啟狀態,廣播接收器也是打開著的。也就是說哪怕app本身未啟動,該app訂閱的廣播在觸發時也會對它起作用。

⑥ android四大組件是什麼

Android四大組件有:活動、服務、內容、提供廣播接收器。活動應用程序是顯示層,每一個畫面對應於你的應用程序服務,服務應用程序中不可見的工人,而內容是指提供共享的數據儲存,用來管理和共享應用程序的資料庫,廣播接收器是指廣播

⑦ 什麼是android的四大組件

Android四大組件有Activity,Service服務,Content Provider內容提供,BroadcastReceiver廣播接收器。

Android應用程序由一些零散的有聯系的組件組成,通過一個工程manifest綁定在一起。在manifest中,描述了每一個組件以及組件的作用,其中有6個組件,它們是Android應用程序的基石

(7)android四大組件作用擴展閱讀

Activities(活動)

應用程序的顯示層。每一個畫面對應於你的應用程序,將會是Activity類的擴展。Activity使用Views去構建UI來顯示信息和響應用戶的行為。就桌面開發而言,一個Activity相當於一張Form。

Services(服務)

Android應用程序中不可見的「工人」。 Service組件運行時不可見,但它負責更新的數據源和可見的Activity,以及觸發通知。它們常用來執行一些需要持續運行的處理,當你的 Activity已經不處於激活狀態或不可見。

Content(內容)

提供共享的數據存儲。Content Provider(內容提供器)用來管理和共享應用程序的資料庫。在應用程序間,Content Provider是共享數據的首選方式。

Broadcast Receivers(廣播接收器)

Intent廣播的「消費者」。通過創建和注冊一個Broadcast Receiver,應用程序可以監聽符合特定條件的廣播的Intent。Broadcast Receiver 會自動的啟動你的Android應用程序去響應新來的Intent。Broadcast Receiver是事件驅動程序的理想手段。

參考資料來源:網路-Android組件

⑧ Android N 四大組件的工作原理

本文側重講解android N 系統中四大組件的工作原理,不同系統原理略有差別。通過分析四大組件的工作流程加深對Android Framework的理解,也為插件化開發打下基礎。

Activity
展示一個界面並和用戶交互,它扮演的是一個前台界面的角色。

Service
計算型組件,用於後台執行一系列計算任務,工作在主線程,耗時操作需要另起線程, 分為啟動狀態和綁定狀態。

BroadcastReceiver
消息型組件,主要用於不同組件或者不同應用之間的消息傳遞,它工作在系統內部,不適合執行耗時操作,操作超過5s,會出現ANR。

ContentProvider
數據共享型組件,用於向其他組件或者應用共享數據,主要執行CURD操作。

我們啟動一個activity有兩種方法,
第一種(Activity直接啟動方式):
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);

第二種(Context啟動方式)
Intent intent = new Intent(this, MainActivity.class);
getApplicationContext().startActivity(intent);

不同的啟動方式Activity的工作流程有點差別。

兩種啟動都會調用到Instrumentation類中的execStartActivity的方法,系統最終是通過ActivityThread中的performLaunchActivity完成Activity的創建和啟動。
performLaunchActivity方法主要完成以下工作:
1、通過ActivityClientRecord對象獲取啟動activity的組件信息
2、通過mInstrumentation對象的newActivity方法調用classloader完成activity的創建
3、通過r.packageInfo(LoadedApk 對象)的makeApplication方法嘗試創建Application對象
4、創建ContextImpl對象並調用Activity的attach方法完成一些數據的初始化
5、調用Activity的onCreate方法

在Activity啟動的過程中,App進程會頻繁地與AMS進程進行通信:

App進程會委託AMS進程完成Activity生命周期的管理以及任務棧的管理;這個通信過程AMS是Server端,App進程通過持有AMS的client代理IActivityManager完成通信過程;
AMS進程完成生命周期管理以及任務棧管理後,會把控制權交給App進程,讓App進程完成Activity類對象的創建,以及生命周期回調;這個通信過程也是通過Binder完成的,App所在server端的Binder對象存在於ActivityThread的內部類ApplicationThread;AMS所在client通過持有IApplicationThread的代理對象完成對於App進程的通信。

Service有兩種啟動方式,startService()和bindService(),兩種狀態可以並存:
startService流程

bindService流程

BroadcastReceiver的工作過程主要包括廣播的注冊、發送和接收:

動態注冊過程:

發送過程

靜態注冊是由PackageManagerService(PMS)在應用安裝的時候完成整個注冊過程的,除廣播以外,其他三大組件也都是在應用安裝時由PMS解析並注冊的。

每個進程的入口都是ActivityThead.main(),App的啟動流程如下:

源碼中可以看出:
應用啟動的入口為ActivityThread的main方法,main方法會創建ActivityThread實例並創建主線程消息隊列。
attach方法中遠程調用AMS的attachApplication方法,並提供ApplicationThread用於和AMS的通信。
attachApplication方法會通過bindApplication方法和H來調回ActivityThread的handleBindApplication,這個方法會先創建Application,再載入ContentProvider,然後才會回調Application的onCreate方法。

由上圖可以看出,在ContentProvider的啟動過程中伴隨著app進程的啟動。

ContentProvider的其他CURD操作如insert,delete,update跟query的流程類似。

⑨ 請android四大組件是什麼android常見合布局有哪些

Android四大組件:Activity、Service、Broadcast Receiver、Content Provider。
Activity
是Android程序與用戶交互的窗口,從視覺效果來看,一個Activity占據當前的窗口,響應所有窗口事件,具備有控制項,菜單等界面元素。從內部邏輯來看,Activity需要為了保持各個界面狀態,需要做很多持久化的事情,還需要妥善管理生命周期,和一些轉跳邏輯。
Service
就是剝離了界面的Activity,它們在很多Android的概念方面比較接近,都是封裝一個完整的功能邏輯,通常都是後台長時間運行,接受上層指令,完成相關事務的模塊。定義好需要接受的Intent,提供同步或非同步的介面,在上層綁定了它後,通過這些介面(很多時候都是RPC的...)進行通信。
Broadcast Receiver
接收一種或者多種Intent跳轉做觸發事件,接受相關消息,做一些簡單的處理,轉換成一條Notification,統一了Android的事件廣播模式。
Content Provider
提供第三方應用數據的訪問方案。可以派生ContentProvider類,對外提供數據,像資料庫一樣進行選擇排序,屏蔽內部數據的存儲細節,向外提供統一的介面模型,大大簡化了上層應用,對數據的整合提供了更方便的途徑。

Android 五大布局: FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)。
FrameLayout
所有東西依次都放在左上角,會重疊,這個布局比較簡單,也只能放一點比較簡單的東西。
LinearLayout
每一個LinearLayout裡面又可分為垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。
AbsoluteLayout
絕對布局用X,Y坐標來指定元素的位置,這種布局方式也比較簡單,但是在屏幕旋轉時,往往會出問題,而且多個元素的時候,計算比較麻煩。
RelativeLayout
相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:相對於某一個元素android:layout_below、 android:layout_toLeftOf相對於父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh
TableLayout
每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素。

最常用的布局 也就 LinearLayout RelativeLayout FrameLayout

這些都是 很基礎的 慢慢學吧。

滿意的話 望採納!

⑩ Android系統四大組件

Android系統四大組件分別是活動(Activity)、服務(Service)、廣播接收器(Broadcast Receiver)和內容提供(Content Provider)。其中活動是所有Android應用程序的門面,凡是在應用中你看得到的東西,都是放在活動中的。而服務就比較低調了,你無法看到它,但它會一直在後台默默地運行,即使用戶退出了應用,服務仍然是可以繼續運行的。廣播接收器允許你的應用接收來自各處的廣播消息,比如電話、簡訊等,當然你的應用同樣也可以向外發出廣播消息。內容提供器則為應用程序之間共享數據提供了可能,比如你想要讀取系統電話簿中的聯系人,就需要通過內容提供器來實現。

開發工具:
JDK 。
JDK是Java語言的軟體開發工具包,它包含了Java的運行環境、工具集合、基礎類庫等內容。需要注意的是,本書中的Android程序必須要使用JDK 8或以上版本才能進行開發。

Android SDK 。
Android SDK是谷歌提供的Android開發工具包,在開發Android程序時,我們需要通過引入該工具包,來使用Android相關的API。

熱點內容
表格式腳本寫作 發布:2025-03-19 14:58:52 瀏覽:720
解壓蜜蜂 發布:2025-03-19 14:58:02 瀏覽:249
百家站源碼 發布:2025-03-19 14:56:47 瀏覽:474
安卓和unity哪個累 發布:2025-03-19 14:31:39 瀏覽:677
雅閣電動座椅怎麼配置 發布:2025-03-19 14:28:30 瀏覽:635
探月編程課 發布:2025-03-19 14:22:34 瀏覽:311
62腳本怎麼安裝 發布:2025-03-19 14:04:25 瀏覽:573
php傳值給html 發布:2025-03-19 14:02:05 瀏覽:608
windowsmedia緩存 發布:2025-03-19 14:02:00 瀏覽:765
百變圖標安卓為什麼有2個應用 發布:2025-03-19 14:00:28 瀏覽:52