編輯:關於Android編程
當點擊一個app的圖標,Launcher通過startActivity把view,intent,flag傳遞進來,通過debugger可以看到intent的一些信息
1組件的action、category
2組建信息對象 mComponent 通過mCompoent可以獲取組件類名包名
接著比較易懂調用Activity的startActivity,最終跳轉到startActivityForResult
mToken 是一個Ibinder 它和applicationThread用於和ActivityManagerService 進程間通信
接著step into mInstrumentation.execStartActivity重點在ActivityManagerNative.getDefault().startActivity
看一下getDefault方法
static public IActivityManager getDefault() { return gDefault.get(); }
根據gDefault.get()返回一個IActivityManager
ActivityManager沒有放到AMS類家族裡那麼想要用ActivityManager的方法就要用它的代理類ActivityManagerProxy
那麼gDefault.get()就返回一個ActivityManagerProxy負責ActivityManager的工作。
那麼gDefault如何獲取這個代理的呢?
ServiceManager.getService(“activity”)得到ActivityManagerService的代理對象,
然後通過asInterface(ams)將 創建一個ActivityManagerProxy(IBinder),然後通過ActivityManagerProxy的內部AMS代理對象mRomote向AMS發送一個類型為TRANSACTION類型的進程間通信請求。
這樣根Activity啟動的第一步完成,下次說第二步。
在Xamarin android如何調用百度地圖呢?首先我們要區分清楚,百度地圖這是一個廣泛的概念,很多剛剛接觸這個名詞”百度地圖api”,的確是
DOM方式解析XML是先把XML文檔都讀到內存中,然後再用DOM API來訪問樹形結構,並獲取數據的。如果XML文件很大的時候,處理效率就會變的很低。用DOM解析的具體思
1.Toast源碼分析老規矩,我們先去看Toast的源碼。Toast有兩種顯示布局方式,一種最常見調用Toast.makeText() ,看源碼是這樣寫的pu
Fragment相當於一個小型activity,因為Fragment可以實現activity中所有的功能,不同的是Fragment可以嵌入activity,一個activ