jframe添加目錄的方法 喪尸圍城3怎么解鎖幀率?
喪尸圍城3怎么解鎖幀率?盜墓防御3解鎖幀率如下。選擇自己的碼率,然后在游戲目錄下新建一個文件,在里面輸入gmpcr_unlock_framhas leaked window 怎么解決?我想大部分人都能
喪尸圍城3怎么解鎖幀率?
盜墓防御3解鎖幀率如下。
選擇自己的碼率,然后在游戲目錄下新建一個文件,在里面輸入gmpcr_unlock_fram
has leaked window 怎么解決?
我想大部分人都能區(qū)分這三個東西的概念,但是具體區(qū)別就很難講了。我 我在這里根據(jù)我個人的理解,談談我個人對這三個概念的理解。當然,一般的GUI設計,比如一般的事件窗口模型,都是在這里設計的,所以我贏了 這里不談,我純粹從概念上區(qū)分。Activity是Android應用的載體,它允許用戶在上面創(chuàng)建一個用戶界面,并為用戶提供處理事件的API,如onKeyEvent、onTouchEvent。并維護應用的生命周期(因為android應用的運行環(huán)境不同于其他操作系統(tǒng),android應用是在框架內(nèi)運行的,所以他的應用可以不從流程的層面考慮,更多的是從理念上考慮。Android應用由多個活動組成,每個活動都有自己獨立的生命周期)?;顒颖旧砭褪且粋€巨大的載體,可以理解為應用的載體。沒有活躍度,安卓應用就不會運行。也可以理解為安卓應用的入口?;顒拥膶嵗龑ο笥上到y(tǒng)維護。ActivityManager是一個系統(tǒng)服務,負責維護activity的實例對象,并根據(jù)其運行狀態(tài)維護其狀態(tài)信息。但在用戶層面,程序員可能愿意理解為一個接口的載體。但它只是一個載體,不負責繪圖。Activity的內(nèi)部實現(xiàn)實際上是一個窗口對象。Window是一個抽象類,具體在Android _ src _ home/framework/policies/base/phone/com/Android/internal/policy/impl目錄下。當我們調(diào)用activity的setContentView方法時,實際上調(diào)用的是Window對象的setContentView方法,所以我們可以看到Activity中界面的繪制實際上是由Window對象完成的。如果畫一個類圖,可以看到Activity聚合了一個Window對象。以下是setContentView方法在PhoneWindow中的實現(xiàn):@ override public void setcontent view(view,params){ if(mContentParent null){ install decor()} else {()}(view,params)final Callback CB get Callback()if(CB!Null) {cb.oncontentchanged ()}}窗口首先判斷mContentParent是否為空,然后調(diào)用installDecor方法(安裝裝飾器)。讓 讓我們來看看這個方法是如何實現(xiàn)的:private void install decoder(){ if(mde cor null){ mde cor generate decoder()(true)} if(mcontendent parent null)。{ mContentParent generate layout(mde cor)mTitleView(TextView)findViewById()if(mTitleView!null){ if((get local features()amp(1 ltlt FEATURE _ NO _ TITLE))!0){ View title container findViewById(_ container)if(title container!null) {(視圖。沒了)} else {(查看。GONE)} if(frame layout的mContentParent實例){ ((FrameLayout)mContentParent)。set foreground(null)} } Else {(m title)} } }在這個方法中,首先創(chuàng)建一個DecorView,這是一個擴展FrameLayout的類,是所有窗口的根視圖。我們在活動中調(diào)用的setConctentView被放在DecorView中。這是我們的類圖聚合關(guān)系如下:activity-gtwindow-gtdecorview,這是這三個類之間最直接的關(guān)系。讓 讓我們詳細分析類對象是如何創(chuàng)建的。讓 s不考慮activity的創(chuàng)建(因為Activity的實例是由ActivityManager維護的,與IPC的通信是在另一個進程中設計的,后面會提到。),并考慮窗口和視圖的創(chuàng)建。創(chuàng)建活動后,系統(tǒng)將調(diào)用其attach方法將活動添加到ActivityThread中。我們發(fā)現(xiàn)Activity的attach方法如下:final void attach (context context,activity thread a thread,instrumentation instr,ibinder token,intident,Application application,Intent intent,ActivityInfo,CharSequence title,Activity parent,String id,Object lastonconfigurationinstance,HashMapltString,Object gt lastonconfigurationchild instances,Configuration config){ attachBaseContext(context)mWindow(this)(this)if(!_ INPUT _ STATE _ UNSPECIFIED){()} mui thread()mMainThread min struction instr mToken token mIdent ident map application application minent intent m component()mActivityInfo m title title m parent membered did id mLastNonConfigurationInstance lastonconfigurationinstance mLastNonConfigurationChildIns tances lastonconfigurationchildinstances(null,m token,m component . flattentostring())if(m parent!null){(()} mWindowmanager()mcurrentconfig } Let ;讓我們看看紅色代碼部分,這是創(chuàng)建窗口對象的代碼。。有興趣的同學可以跟進看看是怎么創(chuàng)作出來的。其實很簡單。它的內(nèi)部實現(xiàn)調(diào)用策略對象的makeNewWindow方法。方法直接添加一個PhoneWindow對象如下:public phone window make new window(context context){ return new phone window(context)}這時我們已經(jīng)可以把進程串起來了。創(chuàng)建活動后,系統(tǒng)將調(diào)用其attach方法,將其添加到ActivityThread中,并在attach方法中創(chuàng)建一個window對象。下面分析一下視圖的創(chuàng)建。我們知道Window聚合了DocerView,當用戶調(diào)用setContentView時,會有一個視圖樹作為已經(jīng)創(chuàng)建的實例對象返回到樹中,所以我們研究DocerView是什么,是如何創(chuàng)建的。讓 讓我們回頭看看窗口實現(xiàn)中的setContentView方法。讓 讓我們看看上面代碼的紅色部分,setContentView-gt install Decor-gt generated Decor。GenerateDecor直接創(chuàng)建一個DecorView對象:Protected Decor View generate Decor()。{Return New DecorView (getContext(),-1)}我們可以看看DecorView的實現(xiàn),它是PhoneWindow的內(nèi)部類。實現(xiàn)非常簡單。默認情況下,它會包含一個灰色的標題欄,然后標題欄下會包含一個空白區(qū)域,用來放置用戶調(diào)用setContentView時的用戶視圖,并傳遞事件。我不 這里不想做詳細的分析,有興趣的同學可以自己研究一下。創(chuàng)建DecorView后,返回到窗口中的setContentView方法。查看上面代碼的藍色部分,并調(diào)用(View,params)來添加用戶 的視圖樹進行去視圖。到目前為止,我認為我們已經(jīng)清楚地認識到它們之間的關(guān)系,并且知道它們的創(chuàng)造過程。綜上所述,Activity在onCreate之前調(diào)用attach方法,在attach方法中創(chuàng)建一個窗口對象。創(chuàng)建窗口對象時,沒有創(chuàng)建裝飾對象。用戶在Activity中調(diào)用setContentView,然后調(diào)用window的setConte。NtView,此時,它會檢查DecorView是否存在,如果不存在,它會創(chuàng)建一個DecorView對象,然后添加用戶 自己的觀點。