FrameWork 四大元件相關

2021-10-21 14:37:21 字數 3143 閱讀 7115

考察點

答題要點

整體流程,在應用端activity啟動的步驟

總結:

相關問題

答題要點

總結

**細節如圖32

activity之所以能顯示出來,最重要的一步就是viewrootimpl的建立,並由viewrootimpl全權負責decorview的繪製

viewrootimpl會在wms裡註冊乙個視窗,wms會統一管理所有視窗的大小,位置以及層級,在第一次繪製的時候,viewrootimpl會向wms申請乙個service用於繪製

繪製完成之後,su***ceflinger就會按照wms中提供的window層級、大小、位置來對su***ce進行合成,合成完畢之後就可以寫到螢幕的幀緩衝區顯示出來

如圖33

答題要點

ui執行緒的啟動流程,訊息迴圈是怎麼建立的

了解android的ui顯示原理,ui執行緒和u|體系之間是怎麼關聯的?

activity.runonuithread(runnable)與view.post(runnable)

view.post(runnable)

子執行緒重新整理ui的問題

結論3:activity的decorvie對應的viewrootlmpl是在主線程建立的

關於ui執行緒的三個結論

對view來說,ui執行緒就是viewrootlmpl建立的時候所在的執行緒

activity的decorview對應的viewrootlmpl是在主線程建立的

子執行緒重新整理ui可以麼?

可以,**如下

new thread()

}.start();

looper.prepare()與looper.preparemainlooper()的區別

總結

訊息迴圈時通過主線程的looper開啟的

考察點

service啟動過程中主要流程有哪些?

service啟動過程涉及哪些參與者,通訊過程是怎樣的?

**分析

主要的啟動流程

程序沒有啟動

啟動過程涉及哪些參與者,以及通訊過程

總結

考察點

用法:圖43

總體流程

bindservice實現原理bindservice從應用端發到了ams, 在ams中處理函式就是bindservicelocked

首先來看一組資料結構

下面看具體流程

onrebind什麼時候呼叫

unbindservice實現

考察點

動態廣播的註冊原理

在ams端

廣播的傳送

廣播的接收

下面來看iintentreceiver的performreceive實現

總結

簡單總結下就是:

廣播的註冊

與動態廣播不同,靜態廣播是在清單檔案中註冊,安卓在啟動的時候,就會啟動pms服務,這個服務會掃瞄已經安裝的apk,解析mainfest檔案,當檢測到receiver時,會把它加到receiver列表中,靜態廣播就是在這個時候註冊到了pms中,當需要的時候,會從pms中查詢,如下圖, 圖56

廣播的傳送靜態廣播是序列分發的,如果程序沒有啟動,需要啟動程序,如果分發超時了,這個廣播就廢棄了 圖57

考察點

在看下面的圖,沒有使用到provider的binder物件,而是直接在應用程序裡建立了乙個provider例項,這樣應用使用provider進行增刪改查時就不需要進行跨程序通訊了

那麼該如何在應用程序中建立乙個provider例項呢,首先需要provider所在應用的uid和呼叫者的uid相同,另外需要滿足下面兩個條件之一

總結先說provider程序沒啟動的情況

再來討論provider程序已經啟動的情況

四大元件(四) content provider

content provider相當於是程式與程式之間的介面。讓原本不可能通訊的程式,通過內容提供者這個橋梁變得可以通訊。定義乙個類 繼承 contentprovider public class backdoor extends contentprovider 註冊contentprovider ...

android 四大元件

1.activity 2.service 3.contentprovider 應用中的資料,對外進行共享,其它應用可以通過內容提供者,可以訪問到你應用中的資料,對資料進行增刪改查 1 對不同的資料格式,統一了檔案格式和資料訪問api 2 內容提供者要繼承contentprovider類 3 在清單檔...

Android 四大元件

activity intent receiver service content provider 並不是每乙個android應用程式都需要這四種構造塊,這不是必須的。當我們明確了我們的應用需要哪些構造塊後,我們就需要在androidmanifest.xml中登記這些構造塊的清單。這個配置檔案用於定...