成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ActivityThread和ApplicationThread,Android應用程序的主線程與AMS通信的橋梁

移動開發 Android
ApplicationThread是ActivityThread?的一個內部類,實現了IApplicationThread? 接口,是一個Binder接口,用于跨進程通信(IPC)。ApplicationThread?對象作為 IApplicationThread的服務端,被AMS等系統服務通過Binder機制進行調用。

ActivityThread

ActivityThread是Android系統中負責管理和調度應用程序中Activity的一個重要組件。

本質與功能:

  • ActivityThread本質上是一個線程,用于啟動應用程序以及進程中進行應用程序的主循環,可以理解為應用程序的主線程或UI線程。
  • 管理應用進程的主線程的執行,根據AMS的要求(通過IApplicationThread接口,AMS為Client,ActivityThread.ApplicationThread為Server)負責調度和執行activities、broadcasts和其他操作。

主要職責:

  • 處理Activity的生命周期:ActivityThread負責檢測并執行每個Activity的生命周期方法,如onCreate()、onStart()、onPause等,根據生命周期狀態控制Activity的創建、啟動、停止和銷毀等過程。
  • 管理消息循環:ActivityThread創建了一個消息循環機制,用于處理Activity中的消息和事件,根據優先級來處理和分發消息。創建的消息包括用戶界面中的用戶事件、Intent和Broadcast請求等。
  • 管理窗口和視圖:負責管理窗口的視圖的創建和顯示,以及與窗口和視圖相關的事件處理。

初始化過程:

  • 在main()方法中,ActivityThread會初始化一些全局狀態,例如創建一個Application對象和一個Instrumentation對象。
  • ActivityThread會創建一個H(Handler)對象,并通過H對象創建一個消息循環(Looper)。
  • ActivityThread會調用Instrumentation對象的callApplicationOnCreate()方法,通知App的Application對象進行初始化,這也是App中的第一個回調函數。
  • ActivityThread會調用ActivityClientRecord對象的execute()方法,開始執行啟動Activity的相關操作。
  • ActivityThread會依次調用Activity的生命周期方法,如onCreate()、onStart()、onResume()等。

成員變量和方法:

  • ActivityThread類包含了許多重要的成員變量和方法,如mLooper(表示主線程使用的消息循環)、mActivities(保存當前活動(Activity)對象的集合)、mH(Handler對象,處理消息隊列中的消息)和mInstrumentation(Instrumentation對象,用于執行各種測試和測量操作)等。

主線程的主要責任:

  • 在Android系統中,默認情況下,一個應用程序內的各個組件(如Activity、BroadcastReceiver、Service)都會在同一個進程里執行,且由此進程的主線程負責執行。主線程的主要責任是快速處理UI事件。

ApplicationThread

ApplicationThread是ActivityThread的內部類,是一個Binder對象。ApplicationThread作為IApplicationThread對象的server端,等待client端的請求然后進行處理,其中最大的client就是AMS。

ApplicationThread在Android應用程序啟動過程中扮演著重要角色。當ActivityThread的handleBindApplication方法被調用時,會將ApplicationThread與Application對象進行綁定,作為應用程序與系統服務之間進行通信的橋梁。handleBindApplication方法還會調用Application對象的onCreate方法,這是應用程序啟動過程中的第一個回調方法。

在Activity的啟動邏輯過程中,ApplicationThread的ScheduleActivity方法會通過一個叫H的Handler發送一個啟動Activity的信息。ActivityThread也就是我們常說的UI線程或主線程,是程序的入口(main函數),保存了應用中所有的對應組件(如活動、服務和內容提供者等)。

創建根Activity:

圖片圖片

Launcher進程向AMS請求創建根Activity,AMS會判斷根Activity所需的應用程序進程是否存在并啟動,如果不存在請求Zygote進程創建應用程序進程。應用程序進程啟動后,AMS會請求應用程序進程創建并啟動根Activity。

創建普通Activity:

圖片圖片

在應用程序進程中的Activity向AMS請求創建普通Activity(步驟1),AMS會對這個Activty的生命周期管和棧進行管理,校驗(AndroidManifest.xml注冊文件聲明、啟動權限)Activity等等。如果Activity滿足AMS的校驗,(判斷進程存在)AMS就會請求應用程序進程中的ActivityThread去創建并啟動普通Activity。

圖片圖片

總結

ApplicationThread是ActivityThread的一個內部類,實現了IApplicationThread 接口,是一個Binder接口,用于跨進程通信(IPC)。ApplicationThread對象作為 IApplicationThread的服務端,被AMS等系統服務通過Binder機制進行調用。

ActivityThread 是Android應用程序進程的主線程,也就是我們通常所說的UI線程。每個Android應用程序進程都有一個ActivityThread實例,負責創建和管理應用程序的組件(如Activity、Service、BroadcastReceiver等),并處理與這些組件相關的生命周期事件。

ApplicationThread和ActivityThread是緊密相關的。ApplicationThread是 ActivityThread 的一個內部類,用于處理來自AMS的IPC調用,并將這些調用轉換為對ActivityThread中相應方法的調用。AMS通過ApplicationThread與ActivityThread進行通信,從而管理應用程序的生命周期和組件。

責任編輯:武曉燕 來源: 沐雨花飛蝶
相關推薦

2012-05-16 13:19:38

SAP移動應用移動辦公

2011-11-03 09:41:35

Android簽名安全性

2011-12-23 10:25:11

Android音樂編程控制音量

2010-03-03 16:45:46

Android應用程序

2011-05-24 16:09:57

Androi

2012-04-25 22:56:10

Android

2020-08-25 14:03:20

應用程序屏蔽應用程序內保護網絡攻擊

2010-12-15 09:51:42

Android程序界面iPhone程序界面設

2014-09-28 11:28:02

Android應用程序生命周期

2011-04-15 17:33:39

SWINGAWT

2010-08-12 16:20:57

Flex應用程序

2009-10-09 17:01:32

VB.NET多線程

2022-09-27 15:16:42

開發Android應用程序

2015-05-04 09:47:12

Interop 201SDN

2010-03-04 16:21:15

Android Mar

2014-05-27 14:09:52

AndroidActivitysingleTask

2014-05-27 14:12:49

AndroidActivitysingleTask

2014-05-27 14:16:08

AndroidActivitysingleTask

2014-05-27 14:28:25

AndroidActivitysingleTask

2014-05-27 14:44:26

AndroidActivitysingleTask
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人av网站在线观看 | 日本三级电影免费观看 | 四虎影院新地址 | 日韩中文字幕 | 国产精品一区二区在线免费观看 | av免费成人| 蜜桃av人人夜夜澡人人爽 | 色综合久久久久 | 欧美一级免费观看 | 久久久久久综合 | 色毛片| 精品久久久久久亚洲综合网 | 久久国产一区二区三区 | 免费一区二区三区 | 午夜精品福利视频 | 涩涩视频在线观看免费 | 久久综合九色综合欧美狠狠 | 精品国产伦一区二区三区观看体验 | 国产精品伦一区二区三级视频 | 少妇特黄a一区二区三区88av | 日韩av网址在线观看 | 99re在线视频 | 热久久久 | 91在线看片| 免费在线观看av | 蜜桃av鲁一鲁一鲁一鲁 | 亚洲系列第一页 | 日本精品视频在线 | 亚洲 成人 av | 久久精品性视频 | 国产精品1区2区3区 欧美 中文字幕 | 成人免费一区二区 | 日韩一区二区精品 | 国产成人免费视频网站高清观看视频 | 欧美精品福利视频 | 日本成人三级电影 | 亚洲精品乱码久久久久久久久 | 欧美一级免费看 | 色视频www在线播放国产人成 | 亚洲三级在线 | 91视频网址 |