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頁面出現異常能夠跳轉到...