binder機(jī)制詳解應(yīng)用層proxy與分析_第1頁
binder機(jī)制詳解應(yīng)用層proxy與分析_第2頁
binder機(jī)制詳解應(yīng)用層proxy與分析_第3頁
binder機(jī)制詳解應(yīng)用層proxy與分析_第4頁
binder機(jī)制詳解應(yīng)用層proxy與分析_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Android高級(jí)開發(fā)試聽課碼牛學(xué)院-用代碼碼出精彩的人生輔標(biāo)題:(課程標(biāo)題)思源黑體CNMedium字號(hào)66Binder機(jī)制詳解(應(yīng)用層),

Proxy與Stub機(jī)制分析

1

應(yīng)用層Binder源碼分析

2

Android為什么開辟獨(dú)一無二的Binder通信

3

詳解AIDL生成的Java類的過程David老師

原Oppo資深研發(fā)工程師,網(wǎng)易特邀Android講師,專注技術(shù)十年,產(chǎn)品控、代碼控,擁有豐富的項(xiàng)目經(jīng)驗(yàn),主持研發(fā)了多個(gè)成功上線的大型互聯(lián)網(wǎng)項(xiàng)目。熱愛互聯(lián)網(wǎng),熱衷于各種Android底層技術(shù),精通NDK架構(gòu)和前端開發(fā),擅長移動(dòng)互聯(lián)網(wǎng)高并發(fā)、可維護(hù)性架構(gòu)設(shè)計(jì),有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。River《Android開發(fā)入門與實(shí)戰(zhàn)第二版》作者之一,《NFC:Arduino、Android與PhoneGap近場通信》譯者,國內(nèi)首批Android開發(fā),曾任職于銀聯(lián),華夏幸福等知名公司,擅長項(xiàng)目重構(gòu),架構(gòu),以及性能優(yōu)化,擁有多年的項(xiàng)目開發(fā)以及管理經(jīng)驗(yàn),原網(wǎng)易特邀Android講師。授課風(fēng)格幽默風(fēng)趣,有激情,注重站在學(xué)員的角度考慮問題。Zee老師

前新浪架構(gòu)師,58同城項(xiàng)目負(fù)責(zé)人。8年Android行業(yè)從業(yè)經(jīng)驗(yàn),豐富的項(xiàng)目研發(fā)以及管理經(jīng)驗(yàn),原網(wǎng)易特邀Android講師,對(duì)架構(gòu)方面有深入的研究。授課激情有活力,能耐心幫助學(xué)員解決項(xiàng)目中遇到的問題。David老師QQ:1051917835

Andy華中科技大學(xué)計(jì)算機(jī)相關(guān)專業(yè)碩士,全棧工程師,精通前端和后端。曾任職于華為,阿里巴巴等知名公司。Android講師,擁有多年的項(xiàng)目開發(fā)經(jīng)驗(yàn)和管理經(jīng)驗(yàn),注重為學(xué)員解決疑難問題,授課邏輯嚴(yán)謹(jǐn)而風(fēng)趣。格言是“授業(yè)不只要有廣度,更要有深度講師介紹

Damon老師

華中科技大學(xué)計(jì)算機(jī)相關(guān)專業(yè)碩士,十余年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn);曾就職于華為,小米,擔(dān)任項(xiàng)目經(jīng)理,技術(shù)經(jīng)理等;

專精領(lǐng)域:精通AndroidFrameWork源碼及性能優(yōu)化;華為鴻蒙系統(tǒng)架構(gòu)設(shè)計(jì),專注NDK底層設(shè)計(jì)與開發(fā)。01手機(jī)如何管理應(yīng)用課程小結(jié)為什么需要BinderLinux已有進(jìn)程通信了,為什么Android還需要單獨(dú)Linux已有進(jìn)程通信Linux已有進(jìn)程通信管道共享內(nèi)存ScoketFilePMS應(yīng)用而生在C語言中使用內(nèi)存直接通過指針方式訪問內(nèi)存的某個(gè)數(shù)據(jù),指針的作用就是指向了這段數(shù)據(jù)所在的buffer起始地方而對(duì)于java對(duì)象來說,雖然經(jīng)過了jvm的一層屏蔽,把指針這個(gè)概念給隱去了,但對(duì)象終歸是要存在內(nèi)存當(dāng)中的.我們知道java有各種各樣的class,在內(nèi)存中分配對(duì)象時(shí),class就是對(duì)應(yīng)要分配的對(duì)象模板,對(duì)象占多大空間,每個(gè)字段在此空間內(nèi)的偏移值,等等信息,都由class的定義提供.對(duì)于GC來說,必須知道對(duì)象占多大空間,才好在回收時(shí)把相應(yīng)的內(nèi)存釋放,不然就沒辦法準(zhǔn)確的管理了

01系統(tǒng)啟動(dòng)過程課程小結(jié)App啟動(dòng)過程回顧Activity啟動(dòng)的流程

課程小結(jié)App啟動(dòng)過程課程小結(jié)Actvity啟動(dòng)過程課程小結(jié)類的概念講解系統(tǒng)中的所有經(jīng)常進(jìn)程都是由Zygote進(jìn)程fork出來的SystemServer進(jìn)程是系統(tǒng)進(jìn)程,很多系統(tǒng)服務(wù),例如ActivityManagerService、PackageManagerService、WindowManagerService…都是存在該進(jìn)程被創(chuàng)建后啟動(dòng)ActivityManagerServices(AMS):是一個(gè)服務(wù)端對(duì)象,負(fù)責(zé)所有的Activity的生命周期,AMS通過Binder與Activity通信,而AMS與Zygote之間是通過Socket通信ActivityThread主角,UI線程/主線程,它的main()方法是APP的真正入口ApplicationThread:一個(gè)實(shí)現(xiàn)了IBinder接口的ActivityThread內(nèi)部類,用于ActivityThread和AMS的所在進(jìn)程間通信Instrumentation:可以理解為ActivityThread的一個(gè)工具類,在ActivityThread中初始化,一個(gè)進(jìn)程只存在一個(gè)Instrumentation對(duì)象,在每個(gè)Activity初始化時(shí),會(huì)通過Activity的Attach方法,將該引用傳遞給Activity。Activity所有生命周期的方法都有該類來執(zhí)行02mH作用課程小結(jié)ActivityThread啟動(dòng)Activity(App進(jìn)程)03Hook技術(shù)Hook英文翻譯過來就是「鉤子」的意思,那我們?cè)谑裁磿r(shí)候使用這個(gè)「鉤子」呢?在Android操作系統(tǒng)中系統(tǒng)維護(hù)著自己的一套事件分發(fā)機(jī)制。應(yīng)用程序,包括應(yīng)用觸發(fā)事件和后臺(tái)邏輯處理,也是根據(jù)事件流程一步步地向下執(zhí)行。而「鉤子」的意思,就是在事件傳送到終點(diǎn)前截獲并監(jiān)控事件的傳輸,像個(gè)鉤子鉤上事件一樣,并且能夠在鉤上事件時(shí),處理一些自己特定的事件。Hook技術(shù)對(duì)象A與對(duì)象B對(duì)象A與對(duì)象B插入HookHook技術(shù)分類01根據(jù)Hook的API語言劃分02根據(jù)Hook的進(jìn)程劃分03根據(jù)Hook的實(shí)現(xiàn)方式劃分HookJavaHookNative應(yīng)用進(jìn)程全局

Hook應(yīng)用程序的Java層hook應(yīng)用程序的Java層,主要是通過反射和代理來實(shí)現(xiàn),用于修改SDK代碼的執(zhí)行流程

代理模式Subject:抽象主題Proxy:代理類,也稱委托類,代理類RealSubject:真實(shí)主題類,也稱為被委托類,被代理類Client:客戶端類Subject:抽象主題Proxy:代理類,也稱委托類,代理類RealSubject:真實(shí)主題類,也稱為被委托類,被代理類Client:客戶端類

代理模式靜態(tài)代理:代理類中維護(hù)一個(gè)原始對(duì)象的成員變量,每個(gè)方法調(diào)用之前調(diào)用原始對(duì)象的方法即可。無需任何條件限制動(dòng)態(tài)代理:比靜態(tài)代理復(fù)雜點(diǎn)就是有一個(gè)規(guī)則:就是原始對(duì)象必須要實(shí)現(xiàn)接口才可以操作,原理是因?yàn)閯?dòng)態(tài)代理其實(shí)是自動(dòng)生成一個(gè)代理類的字節(jié)碼,類名一般都是Proxy$0啥的,這個(gè)類會(huì)自動(dòng)實(shí)現(xiàn)原始類實(shí)現(xiàn)的接口方法,然后在使用反射機(jī)制調(diào)用接口中的所有方法

如何尋找Hook點(diǎn)Hook選擇的關(guān)鍵點(diǎn)Hook的選擇點(diǎn):盡量靜態(tài)變量和單例,因?yàn)橐坏﹦?chuàng)建對(duì)象,它們不容易變化,非常容易定位。Hook過程:尋找Hook點(diǎn),原則是盡量靜態(tài)變量或者單例對(duì)象,盡量Hookpublic的對(duì)象和方法。選擇合適的代理方式,如果是接口可以用動(dòng)態(tài)代理。偷梁換柱——用代理對(duì)象替換原始對(duì)象。Android的API版本比較多,方法和類可能不一樣,所以要做好API的兼容工作。

回顧根Activity啟動(dòng)

普通Activity啟動(dòng)

回顧ActivityThread啟動(dòng)Activity

課程配套服務(wù)01.答疑服務(wù)專門的答疑老師替學(xué)員解答問題01.學(xué)習(xí)計(jì)劃1V1為你定制專屬的學(xué)習(xí)計(jì)劃01.考核與作業(yè)考核與作業(yè)意義在于理論與實(shí)踐并行01.專屬班級(jí)專屬班級(jí)打開你的人際交流圈01.新技術(shù)分享時(shí)刻關(guān)注國際市場新技術(shù)的動(dòng)態(tài),分享給學(xué)員01.就業(yè)指導(dǎo)簡歷指導(dǎo)和面試指導(dǎo)并行,讓你的崗位不侮辱你的能力01.企業(yè)內(nèi)推眾多一線企業(yè)的內(nèi)推崗位等你拿01.升級(jí)更新最新技術(shù)一直免費(fèi)學(xué)01.錢程無憂Toppro優(yōu)先權(quán),告別死工資01.漲薪無憂畢業(yè)不滿三年的學(xué)員學(xué)完課程不漲5K,全額退款課程小結(jié)一線大廠面試訣竅簡歷包裝:

簡歷一定要吸引,把最好的兩個(gè)項(xiàng)目經(jīng)驗(yàn)放在最前面?zhèn)鋺?zhàn)簡歷:

簡歷里面的技術(shù)寫自己最熟悉和擅長的,每個(gè)技術(shù)準(zhǔn)備對(duì)應(yīng)的連環(huán)炮深挖底層:

底層技術(shù)一時(shí)半會(huì)學(xué)不懂,找到高頻點(diǎn),如虛擬機(jī)原理,區(qū)別,準(zhǔn)備5個(gè)左右吃鬧架構(gòu):

架構(gòu)一定要好好看,比如Glide,Okhttp,MVVM,MVP架構(gòu)實(shí)現(xiàn)一定要掌握掌握源碼:

簡一定要了解FrameWork層源碼,如AMS,PMS,Handler,屬性動(dòng)畫如何快速學(xué)習(xí)提升自學(xué)要找學(xué)習(xí)資料,網(wǎng)上資料不準(zhǔn)確,官方文檔無人總結(jié)

碰到問題耗很久,很難找人幫忙指點(diǎn)、解答

太耗時(shí)、太低效

沒有實(shí)際的項(xiàng)目可以實(shí)踐,學(xué)了感覺沒用

學(xué)不全面、學(xué)不系統(tǒng)太難、太苦逼了、堅(jiān)持不下去但是,現(xiàn)在你不需要這么苦逼了?。?!

怎么成為Android高級(jí)工程師?課程簡介:深入講解Android內(nèi)核、性能優(yōu)化、架構(gòu)設(shè)計(jì)、高級(jí)音視頻技術(shù)在小型企業(yè),技術(shù)視野太窄,沒經(jīng)歷過正規(guī)的移動(dòng)開發(fā)流程缺少一線互聯(lián)網(wǎng)公司經(jīng)驗(yàn)01長期從事簡單的UI界面開發(fā),對(duì)原理和底層開發(fā)了解不深基礎(chǔ)知識(shí)薄弱02長期在小型軟件公司、外包公司工作,只接觸部分開發(fā)內(nèi)容項(xiàng)目經(jīng)驗(yàn)零碎03只招收真心想和我們一起學(xué)習(xí),共同進(jìn)步的朋友。渴望快速提升自己04騰訊課堂權(quán)威保障01支付保障騰訊課堂為保障學(xué)員支付安全,采用淘寶中間機(jī)制,直接打款給騰訊,同時(shí)監(jiān)督碼牛教學(xué)質(zhì)量和后續(xù)服務(wù)02師資力量師資來自于一線BAT,有著雄厚的技術(shù)實(shí)力和經(jīng)驗(yàn),同時(shí)大部分師資也是網(wǎng)易特邀講師,有著豐富的授課經(jīng)驗(yàn)David老師復(fù)旦大學(xué)工程碩士,原Oppo資深研發(fā)工程師,網(wǎng)易特邀Android講師,專注技術(shù)十年,產(chǎn)品控、代碼控,擁有豐富的項(xiàng)目經(jīng)驗(yàn),主持研發(fā)了多個(gè)成功上線的大型互聯(lián)網(wǎng)項(xiàng)目。熱愛互聯(lián)網(wǎng),熱衷于各種Android底層技術(shù),精通NDK架構(gòu)和前端開發(fā),擅長移動(dòng)互聯(lián)網(wǎng)高并發(fā)、可維護(hù)性架構(gòu)設(shè)計(jì),有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。River《Android開發(fā)入門與實(shí)戰(zhàn)第二版》作者之一,《NFC:Arduino、Android與PhoneGap近場通信》譯者,國內(nèi)首批Android開發(fā),曾任職于銀聯(lián),華夏幸福等知名公司,擅長項(xiàng)目重構(gòu),架構(gòu),以及性能優(yōu)化,擁有多年的項(xiàng)目開發(fā)以及管理經(jīng)驗(yàn),原網(wǎng)易特邀Android講師。授課風(fēng)格幽默風(fēng)趣,有激情,注重站在學(xué)員的角度考慮問題。Zee老師

中南大學(xué)計(jì)算機(jī)信息專業(yè)畢業(yè),前新浪架構(gòu)師,58同城項(xiàng)目負(fù)責(zé)人。8年Android行業(yè)從業(yè)經(jīng)驗(yàn),豐富的項(xiàng)目研發(fā)以及管理經(jīng)驗(yàn),原網(wǎng)易特邀Android講師,對(duì)架構(gòu)方面有深入的研究。授課激情有活力,能耐心幫助學(xué)員解決項(xiàng)目中遇到的問題。David老師QQ:1051917835

Andy華中科技大學(xué)計(jì)算機(jī)相關(guān)專業(yè)碩士,全棧工程師,精通前端和后端。曾任職于華為,阿里巴巴等知名公司。Android講師,擁有多年的項(xiàng)目開發(fā)經(jīng)驗(yàn)和管理經(jīng)驗(yàn),注重為學(xué)員解決疑難問題,授課邏輯嚴(yán)謹(jǐn)而風(fēng)趣。格言是“授業(yè)不只要有廣度,更要有深度師資力量

Damon老師

華中科技大學(xué)計(jì)算機(jī)相關(guān)專業(yè)碩士,十余年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn);曾就職于華為,小米,擔(dān)任項(xiàng)目經(jīng)理,技術(shù)經(jīng)理等;

專精領(lǐng)域:精通AndroidFrameWork源碼及性能優(yōu)化;華為鴻蒙系統(tǒng)架構(gòu)設(shè)計(jì),專注NDK底層設(shè)計(jì)與開發(fā)。

學(xué)員疑問我需要掌握哪些基礎(chǔ),才能開始學(xué)習(xí)Android高級(jí)課程。

怎么構(gòu)建一套符合自己自身情況的知識(shí)體系。

互聯(lián)網(wǎng)公司中的開發(fā),和傳統(tǒng)IT行業(yè)或者外包公司有什么區(qū)別?

學(xué)完這套課程,我需要多久時(shí)間?現(xiàn)在加入還能跟上課程進(jìn)度嗎?

去一線互聯(lián)網(wǎng)公司面試,有沒有要特別注意的地方。

課程內(nèi)容講解的深度如何。

已經(jīng)工作5年或者更久時(shí)間了,來學(xué)習(xí)這個(gè)課程還有用嗎?掃碼領(lǐng)優(yōu)惠我們能為您帶來什么樣的服務(wù)VIP課程服務(wù)體系6位10多年經(jīng)驗(yàn)老師直播教學(xué)每周一周四周六20:30-20:30直播分享干貨7*24小時(shí)終生答疑服務(wù)終生學(xué)習(xí)新技術(shù)權(quán)限10個(gè)月完整直播學(xué)習(xí)一線企業(yè)內(nèi)推計(jì)劃線上教育唯一一家承諾畢業(yè)三年未漲5K全面退費(fèi)服務(wù)提供視頻,源碼,ppt,以及筆記專題結(jié)束有對(duì)應(yīng)考試,考核1v1學(xué)習(xí)計(jì)劃制定,制定你專屬的學(xué)習(xí)計(jì)劃職業(yè)規(guī)劃,打造你自己的生涯夢面試1V1輔導(dǎo)服務(wù)學(xué)習(xí)方式:輪詢直播Toppro不再僅限于“死工資”,技術(shù)價(jià)值最大化。5k服務(wù)1-3年工作經(jīng)驗(yàn)的人學(xué)習(xí)完本課程未漲5k,全額退費(fèi)。技術(shù)凡是基于Android

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論