千萬級應(yīng)用美團(tuán)robust修復(fù)原理手寫字節(jié)碼插件技術(shù)_第1頁
千萬級應(yīng)用美團(tuán)robust修復(fù)原理手寫字節(jié)碼插件技術(shù)_第2頁
千萬級應(yīng)用美團(tuán)robust修復(fù)原理手寫字節(jié)碼插件技術(shù)_第3頁
千萬級應(yīng)用美團(tuán)robust修復(fù)原理手寫字節(jié)碼插件技術(shù)_第4頁
千萬級應(yīng)用美團(tuán)robust修復(fù)原理手寫字節(jié)碼插件技術(shù)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《android移動互聯(lián)網(wǎng)高級開發(fā)》AndroidVip正式課用代碼碼出自己牛逼的人生碼牛學(xué)院代碼成就人生android移動互聯(lián)網(wǎng)高級開發(fā)碼牛學(xué)院-用代碼碼出精彩的人生碼牛學(xué)院Android講師介紹David復(fù)旦大學(xué)工程碩士,原Oppo資深研發(fā)工程師,網(wǎng)易特邀Android講師,專注技術(shù)十年,產(chǎn)品控、代碼控,擁有豐富的項(xiàng)目經(jīng)驗(yàn),主持研發(fā)了多個成功上線的大型互聯(lián)網(wǎng)項(xiàng)目。熱愛互聯(lián)網(wǎng),熱衷于各種Android底層技術(shù),精通NDK架構(gòu)和前端開發(fā),擅長移動互聯(lián)網(wǎng)高并發(fā)、可維護(hù)性架構(gòu)設(shè)計,有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。愿意和他人分享自己對技術(shù)的理解和感悟,講課邏輯清晰,生動幽默。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ī)信息專業(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講師,對架構(gòu)方面有深入的研究。授課激情有活力,能耐心幫助學(xué)員解決項(xiàng)目中遇到的問題。David老師QQ:1051917835千萬級應(yīng)用美團(tuán)Robust修復(fù)原理javassist字節(jié)碼插件技術(shù)碼牛學(xué)院-用代碼碼出牛逼人生今晚課題目錄COMPANY01美團(tuán)robust修復(fù)詳解03

apk編譯原理,groovy實(shí)現(xiàn)動態(tài)插入代碼02robust依賴的插件實(shí)現(xiàn)方式04自己實(shí)現(xiàn)robust插件,動態(tài)改動主工程代碼01今晚開啟你的瓶頸----------坐上老司機(jī)的車,帶你穩(wěn)穩(wěn)的走上秋明山課程安排01Javassist介紹(動態(tài)編譯)020304手寫Class字節(jié)碼手術(shù)刀ClassPool字節(jié)碼池AndroidApk編譯原理課程小結(jié)美團(tuán)熱修復(fù)介紹課程小結(jié)JavaSsist介紹定義:javassist也稱為動態(tài)編譯,動態(tài)編譯技術(shù)通過操作Java字節(jié)碼的方式在JVM中生成class字節(jié)碼中動態(tài)添加元素或修改代碼,發(fā)生在Class字節(jié)碼生成后(打包成dex之前,編譯時之后),也稱為Class字節(jié)碼手術(shù)刀動態(tài)編程解決什么問題?動態(tài)修改編譯后的Class字節(jié)碼實(shí)現(xiàn)了對APP實(shí)現(xiàn)了修改的無限可能1組件化2熱修復(fù)3增量升級4AndroidStudio插件課程小結(jié)動態(tài)編程解決什么問題?動態(tài)修改編譯后的Class字節(jié)碼實(shí)現(xiàn)了對APP實(shí)現(xiàn)了修改的無限可能1組件化2熱修復(fù)3增量升級4AndroidStudio插件Groovy工程編寫打開src/main目錄,修改java文件名稱為groovysrc/main下,僅保留groovy文件夾,刪除其他文件夾刪除無用的libs文件夾、文件Groovy配置文件打開src/main目錄,修改java文件名稱為groovysrc/main下,僅保留groovy文件夾,刪除其他文件夾刪除無用的libs文件夾、文件ClassPool詳解ClassPool稱為字節(jié)碼容器池ClassPool是緩存Class字節(jié)碼對象的容器,所有的Class字節(jié)碼對象都在ClassPool中。CtClass對象很多時,ClassPool會消耗很大的內(nèi)存,為了避免內(nèi)存的消耗,創(chuàng)建ClassPool對象時可以使用單例模式,或者對于CtClass對象,調(diào)用detach方法將其從ClassPool中移除編譯原理右圖是谷歌官網(wǎng)給出的一個典型的apk構(gòu)建的過程,概括為兩個過程,編譯過程,編譯的內(nèi)容包括本工程的文件以及依賴的各種庫文件,編譯的輸出包括dex文件和編譯后的資源文件。打包過程。配合Keystore對第一步的輸出進(jìn)行簽名對齊,生成最終的apk文件。Transform詳解從android-build-tool:gradle:1.5開始,gradle插件包含了一個叫Transform的API,這個API允許第三方插件在class文件轉(zhuǎn)為為dex文件前操作編譯好的class文件,理解:內(nèi)部暴露出一個修改的接口,供開發(fā)者使用Transform責(zé)任鏈每個Transform其實(shí)都是一個gradletask,Android編譯器中的TaskManager將每個Transform串連起來原生就帶了一系列Transform比如transformClassesWithDexBuilderForDebugtransformDexArchiveWithDexMergerForDebugtransformNativeLibsWithMergeJniLibsForDebugtansformResourcesWithMergeJavaResForDebugTransform編寫(我們首先先定義一個自定義的Transform,需要實(shí)現(xiàn)如下方法。)從android-build-tool:gradle:1.5開始,gradle插件包含了一個叫Transform的API,這個API允許第三方插件在class文件轉(zhuǎn)為為dex文件前操作編譯好的class文件,理解:內(nèi)部暴露出一個修改的接口,供開發(fā)者使用Transform編寫(我們首先先定義一個自定義的Transform,需要實(shí)現(xiàn)如下方法。)Transform每個方法分析@OverrideStringgetName(){returnNAME}Name顧名思義,就是我們的Transform名稱,再回到我們剛剛Build的流程里:Transform每個方法分析Set<QualifiedContent.ContentType>getInputTypes(){returnTransformManager.CONTENT_CLASS}注釋寫的很清晰了,必須是CLASSES(0x01),RESOURCES(0x02)之一,相當(dāng)于Transform需要處理的類型。Transform方法getScopes分析Set<?superQualifiedContent.Scope>getScopes(){returnTransformManager.SCOPE_FULL_PROJECT}先來看源碼注釋,這個的作用相當(dāng)于用來Transform表明作用域叮當(dāng)老師的QQ:1979846055課程配套服務(wù)01.答疑服務(wù)專門的答疑老師替學(xué)員解答問題01.學(xué)習(xí)計劃1V1為你定制專屬的學(xué)習(xí)計劃01.考核與作業(yè)考核與作業(yè)意義在于理論與實(shí)踐并行01.專屬班級專屬班級打開你的人際交流圈01.新技術(shù)分享時刻關(guān)注國際市場新技術(shù)的動態(tài),分享給學(xué)員01.就業(yè)指導(dǎo)簡歷指導(dǎo)和面試指導(dǎo)并行,讓你的崗位不侮辱你的能力01.企業(yè)內(nèi)推眾多一線企業(yè)的內(nèi)推崗位等你拿01.升級更新最新技術(shù)一直免費(fèi)學(xué)01.錢程無憂Toppro優(yōu)先權(quán),告別死工資01.漲薪無憂畢業(yè)不滿三年的學(xué)員學(xué)完課程不漲5K,全額退款碼牛學(xué)院-用代碼碼出牛逼人生Android高級UI注:貝塞爾曲線,動畫,布局原理不僅僅只是Android上可以使用,其他語言在實(shí)現(xiàn)這些效果時大同小異; UI概述1:UI繪制流程2:事件分發(fā)機(jī)制3:Paint/貝塞爾曲線4:動畫源碼,進(jìn)階5:屏幕適配6:項(xiàng)目實(shí)戰(zhàn)碼牛學(xué)院-用代碼碼出牛逼人生Android高級架構(gòu)師注:架構(gòu)不管在哪門語言都是需要的,架構(gòu)不單單是代碼,更是思路;

架構(gòu)概述1:設(shè)計原則/模式

2:Framework/啟動等源碼分析3:Google最新推出的組件4:常見第三方框架分析手寫碼牛學(xué)院-用代碼碼出牛逼人生Android

NDK深層進(jìn)階注:4G時代出來了抖音等大量音視頻應(yīng)用,5G時代必然會涌現(xiàn)更多的需要大數(shù)據(jù)量的應(yīng)用,NDK的學(xué)習(xí)迫在眉睫;而C/C+語言也將成為加密/防反編譯的趨勢; NDK概述1:C/C++基礎(chǔ)/進(jìn)階

2:腳本語法/Linux基礎(chǔ)3:音視頻4:WebRtc/OPENGL5:項(xiàng)目實(shí)戰(zhàn)碼牛學(xué)院-用代碼碼出牛逼人生Android性能優(yōu)化注:當(dāng)應(yīng)用開發(fā)不再有技術(shù)難題,如何保證App在大量用戶下依然穩(wěn)定,高效,無懼“大數(shù)據(jù)”的沖擊,性能優(yōu)化無疑是最大利器,更是你能一直跟隨前進(jìn)的腳步;

性能優(yōu)化概述1:UI/啟動優(yōu)化2:穩(wěn)定性3:內(nèi)存/電量4:安全性5:附加項(xiàng)目實(shí)戰(zhàn)優(yōu)化碼牛學(xué)院-用代碼碼出牛逼人生Android其他注:當(dāng)app所有技術(shù)難題不再是問題,如何自動化編譯打包,混合式開發(fā),小程序等新技術(shù)也需要有所涉獵;

其他概述1:Gradle

2:Flutter3:小程序4:項(xiàng)目實(shí)戰(zhàn)Toppro不再僅限于“死工資”,技術(shù)價值最大化。5k服務(wù)1-3年工作經(jīng)驗(yàn)的人學(xué)習(xí)完本課程未漲5k,全額退費(fèi)。技術(shù)凡是基于Android平臺的應(yīng)用開發(fā)都不再有技術(shù)壁壘。人脈不管是公司還是Toppro都有機(jī)會,能力接觸到更高端的圈子,增加新的機(jī)遇。Toppro5k服務(wù)技術(shù)人脈良性循環(huán)學(xué)完本高級課程未加薪5k,全額退費(fèi)1Andro

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論