android apk的執行過程

2021-08-15 13:39:26 字數 864 閱讀 1682

acitivtythread從main函式開始執行,呼叫

preparemainlooper(),為ui執行緒建立乙個訊息佇列,

然後建立乙個activitythread物件,在activitythread的初始化**中會建立乙個

handler和

接著ui執行緒呼叫

looper.loop()方法進入訊息迴圈體,然後不斷的從訊息佇列中讀取並處理訊息。

當activitythread接收到ams傳送的啟動某個activity後,就會建立acitivty物件,

acitivty物件會建立phonewindow類,--decorview類---建立響應的view和viewgroup,

建立完後,activity把建立好的頁面展示到螢幕上,

然後呼叫windowmanager類,建立乙個viewroot物件,

該物件實際建立了viewroot類和w類,建立完後,windowmnager呼叫wms提供的遠端介面,

完成新增乙個視窗並顯示到螢幕上;

如果使用者在程式介面上操作,keyq執行緒會不斷的把使用者的訊息儲存到queueevent佇列中,

inputdispatherthrad執行緒逐個取出,然後呼叫wms中相應的函式處理訊息,

當wms發現該訊息屬於某個視窗時,就會呼叫w介面;

w類是乙個binder,負責接收wms的ipc呼叫,並把呼叫訊息傳遞給viewroot,viewroot再把訊息傳遞給ui主線程activitythread,並作出相應的處理,

首先處理訊息的是decorview,如果decorview不想處理,將訊息傳遞給內部的子view或者viewgroup,如果還沒處理,就傳遞給phonewindow,最後傳遞給acitivty;

dofile執行ANDROID APK裡面的檔案

我使用dofile執行apk檔案是不行的,比如 dofile assets res flist 只能先拷貝到writablepath然後再dofile 拿到資料後再清除這個臨時檔案 雖然滿足需求了,但還是略顯奇葩 有乙個更好的方案,是使用loadstring local function dofil...

php的執行過程

1.我們從未手動開啟過php的相關程序,它是隨著apache的啟動而執行的 2.php通過mod php5.so模組和apache相連 具體說來是sapi,即伺服器應用程式程式設計介面 3.php總共有三個模組 核心 zend引擎 以及擴充套件層 4.php核心用來處理請求 檔案流 錯誤處理等相關操...

JSP的執行過程

jsp的執行過程主要分為 a 客戶端發出請求 b web 2 jsp的隱式物件 a 輸入輸出物件 b 作用域通訊物件 c servlet物件 d 錯誤物件 3.錯誤處理 建立乙個jsp異常處理頁面 page iserrorpage true exception 2 其他的jsp頁面出現異常能夠跳轉到...