版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
輔標(biāo)題:(課程標(biāo)題)思源黑體CNMedium字號(hào)66事件沖突再也不能阻止你帶你手寫(xiě)Android9.0的Google事件分發(fā)架構(gòu)01為什么需要學(xué)事件分發(fā)事件分發(fā)在Android開(kāi)發(fā)中為什么這么重要事件束縛了你開(kāi)發(fā)自定義控件的能力,同時(shí)與Offer失之交臂怎樣才能學(xué)好事件分發(fā)架構(gòu)。源碼?博客?拒絕學(xué)習(xí)表面,拒絕記憶保質(zhì)期一堂課帶你全面理解事件分發(fā)架構(gòu),從思想上理解Google為什么這么做面試事件引發(fā)的思考Android事件:事件分析在Android面試幾乎是必考題,可以說(shuō)對(duì)事件了解多深,對(duì)自定義控件開(kāi)發(fā)水平就有多高。事件不處理好,各種事件沖突,卡頓是家常便飯。為什么學(xué)習(xí)Android事件這么重要:1:面試容易考2:開(kāi)發(fā)自定義控件容易用到3:排出問(wèn)題比較復(fù)雜4:熟悉Android事件機(jī)制有助于理解Android系統(tǒng)Google事件架構(gòu)設(shè)計(jì)事件需要考慮什么?每個(gè)界面元素都有事件。意味著事件核心處理類不能太多事件的傳遞不能丟給開(kāi)發(fā)者實(shí)現(xiàn),只能暴露接口回調(diào)每個(gè)控件都可能接受事件和消費(fèi)事件。如果發(fā)生控件消費(fèi)事件,后續(xù)事件也必須由他消費(fèi)如何快速查找控件會(huì)消費(fèi)事件?如何根據(jù)點(diǎn)擊坐標(biāo)查找該范圍的控件?每次發(fā)生事件是都需要遍歷每一個(gè)子元素嗎?02事件分發(fā)先從一個(gè)典故理解L鏈和U型鏈天朝故事古代皇帝寫(xiě)了一本書(shū),只要找出書(shū)中的問(wèn)題,賞銀3000兩天朝故事二古代皇帝開(kāi)國(guó)大典上賞銀3000兩什么都沒(méi)想收下了3000兩黃金事件分發(fā)調(diào)用次數(shù)事件分發(fā)組成組成分發(fā)事件的組件,也稱為分發(fā)事件者,包括Activity、View和ViewGroup。它們?nèi)叩囊话憬Y(jié)構(gòu)為:事件分發(fā)回顧dispatchTouchEventonTouchEvent消費(fèi)ActivitydispatchTouchEventonTouchEvent消費(fèi)ViewGroupdispatchTouchEventonTouchEvent消費(fèi)View天朝故事ActivityViewGroupView天朝故事ViewGroupView事件黃金該分給誰(shuí)呢大臣應(yīng)該定義規(guī)則誰(shuí)家里最窮就分給誰(shuí)誰(shuí)TM敢跟我比窮,我最窮02為什么所有的控件都需要繼承View,以及事件在View中的占比為什么所有控件都繼承View控件與事件的關(guān)系沒(méi)有事件的控件是沒(méi)有靈魂的,好比模型手機(jī)無(wú)論怎么按也沒(méi)有反應(yīng),只能看看。而每一個(gè)控件是事件傳遞的一員。切都具備處理事件傳遞規(guī)則的能力。意味著傳遞事件的代碼會(huì)抽象在一個(gè)類中這個(gè)抽象類是View所有控件都是繼承自View為什么所有控件都繼承View事件60%繪制10%測(cè)量15%其他25%View的源碼有27753行有圖為代碼的分類情況02如果你是Google工程師,你怎么設(shè)計(jì)事件分發(fā)框架你如何設(shè)計(jì)事件分發(fā)控件假設(shè)如果你現(xiàn)在是Google工程師,由你來(lái)設(shè)計(jì)Android最核心的事件模塊,你會(huì)怎么設(shè)計(jì)設(shè)計(jì)結(jié)果ViewImageViewViewGroup繼承方式:所有控件繼承View確保不論容器類和子控件都能處理事件設(shè)計(jì)結(jié)果ViewGroupImageViewViewGroupViewGroupViewImageView包含方式:所有容器類能加載子控件,子控件不能包含容器和子控件設(shè)計(jì)結(jié)果ViewGroupImageViewViewGroupViewGroupViewImageView包含方式:所有容器類能加載子控件,子控件不能包含容器和子控件02事件回收池回收池回收池理想中的回收池回收池是一個(gè)集合需要提供put(存)的方法需要提供get(取)的方法如何快速查考能夠響應(yīng)的控件ViewView手機(jī)屏幕導(dǎo)電傳感器電路板轉(zhuǎn)換成電頻ActivityLinuxJni接口WindowManagerService如何快速查考能夠響應(yīng)的控件ViewView點(diǎn)擊事件架構(gòu)的回收池sRecycleBin是一個(gè)Target類型(target是一個(gè)單向鏈表)sRecycleBin必須是一個(gè)靜態(tài)的變量回收池大小必須通過(guò)另外的靜態(tài)變量進(jìn)行控制TargetnextTargetnextTargetnextTargetnextTargetnextsRecycleBinsRecycleBin02系統(tǒng)源碼-事件分發(fā)機(jī)制WindowManagerService定義它
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026內(nèi)蒙古赤峰市教育科學(xué)研究中心競(jìng)爭(zhēng)性比選高中教研員20人備考考試題庫(kù)附答案解析
- 2026云南文山州教育體育局所屬事業(yè)單位選調(diào)37人(2026年第1號(hào))參考考試試題附答案解析
- 安全生產(chǎn)執(zhí)法考核制度
- 廠房安全生產(chǎn)巡查制度
- 2026年國(guó)防科技大學(xué)電子對(duì)抗學(xué)院幼兒園社會(huì)招聘3名備考考試試題附答案解析
- 2026重慶市銅梁區(qū)人民醫(yī)院招聘2人參考考試試題附答案解析
- 2026海南省遴選公務(wù)員128人參考考試試題附答案解析
- 申論2025試題及答案考試題庫(kù)
- 農(nóng)機(jī)局安全生產(chǎn)值班制度
- 入院生產(chǎn)結(jié)算制度及流程
- 話語(yǔ)體系構(gòu)建的文化自信與敘事創(chuàng)新課題申報(bào)書(shū)
- 2026年春蘇教版新教材小學(xué)科學(xué)二年級(jí)下冊(cè)(全冊(cè))教學(xué)設(shè)計(jì)(附教材目錄P97)
- 2026年基因測(cè)序技術(shù)臨床應(yīng)用報(bào)告及未來(lái)五至十年生物科技報(bào)告
- 服裝銷售年底總結(jié)
- 文物安全保護(hù)責(zé)任書(shū)范本
- 2025公文寫(xiě)作考試真題及答案
- 停電施工方案優(yōu)化(3篇)
- DB64∕T 1279-2025 鹽堿地綜合改良技術(shù)規(guī)程
- 2025年度耳鼻喉科工作總結(jié)及2026年工作計(jì)劃
- 2024年執(zhí)業(yè)藥師《藥學(xué)專業(yè)知識(shí)(一)》試題及答案
- 統(tǒng)編版語(yǔ)文一年級(jí)上冊(cè)無(wú)紙化考評(píng)-趣味樂(lè)考 玩轉(zhuǎn)語(yǔ)文 課件
評(píng)論
0/150
提交評(píng)論