編輯:關於android開發
Android系統中一個應用程序的主題是由ActivityThread構成的。不過涉及到很多細節如ActivityThread是由誰來創建的 又是在什麼時間創建?它和系統服務程序如ActivityManagerService,WindowManagerService之間又有什麼聯系?這些都需要做了解。
通常有兩種方式在系統中被啟動
在Launcher中點擊相應的應用程序圖標啟動
這種啟動方式大都由用戶發起,默認情況下apk應用程序在Launcher主界面上會有一個圖標,通過點擊可以啟動應用程序指定的Activity 通過startActivity啟動 這種啟動方式通常存在於源碼內部,比如在Activity1中通過startActivity來啟動Activity2 這兩種方式的流程基本上是一致,最終都會通過調用ActivityManagerService的startActivity來完成。整個流程如圖所示:如果一切順利,AMS會嘗試啟動指定的Activity , Activity的生命周期除了onCreate,onResume外,還有onPause,onStop等,其中的onPause就在此時被調用的--因為系統規定,在新的Activity啟動之前,原先處於resumed狀態的Activity會被pause。這種管理方式相比於Windows的多窗口系統簡單很多,同時可以滿足移動設備的一般需求。將一個Activity置為pause主要是通過Activity所屬進度的ApplicationThread.schedulePauseActivity方法來完成的。ApplicationThread是應用程序進程提供給AMS的一個Binder通道。
當收到pause後,此進程的ActivityThread主線程將會做進一步處理。除了我們熟悉的調用Activity.onPause()外,還需要通知WindowManagerService這一變化。假如即將啟動的 Activity所屬的進程並不存在,那麼AMS還需要先把它啟動起來,這一步由Process.start實現。
【lushengduan】01、搭建安卓App開發環境 編寫程序HelloWorld,lushengduan安卓一、搭建開發環境 1、JDK環境變量 JDK下載 鏈接:
M0存儲訪問地址對齊-調試微信硬件平台demo碰到的問題微信硬件平台提供的demo中傳輸數據格式如下。每次數據傳輸時,都將有效數據打包,然後再添加上固定包頭包尾後發送。官
Android開發學習——ListView+BaseAdapter的使用,androidbaseadapterListView 就是用來顯示一行一行的條目的MVC結構&n
Android開發學習—— Fragment,androidfragment#Fragment* 用途:在一個Activity裡切換界面,切換界面時只切換Fragment