版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
騰訊俞尚(anlanyu)顛覆Android移動端的開發(fā)模式2016-4-222016-4-22?俞尚,2007年加入騰訊,T3.3高級工程師?早年QQ瀏覽器開發(fā)核心骨干,自研瀏覽器內(nèi)核,在算法和性能方面有比較深入的研究。?2012年開始是QQ空間Android團隊Leader,負責(zé)空間技術(shù)和團隊管理工作?主要在QQ空間架構(gòu)優(yōu)化,性能調(diào)優(yōu),移動網(wǎng)絡(luò),Android內(nèi)核等方面有些研究?一、技術(shù)背景–苦逼的現(xiàn)狀、面臨的問題、超級補丁包的優(yōu)勢–與其它補丁技術(shù)對比–實際應(yīng)用效果?二、技術(shù)原理?三、技術(shù)難點?四、其它問題6.1版本 規(guī)劃開發(fā)測試發(fā)布安裝6.2版本 規(guī)劃開發(fā)測試發(fā)布安裝發(fā)布成本高,用戶安裝成本也高版本周期長,并行開發(fā)更多需求,更多加班,苦不堪言發(fā)布成本高發(fā)布成本高開發(fā)周長用用戶更新慢風(fēng)險大?隨時發(fā)布?對開發(fā)透明?不足:需要重啟App???空間幾億用戶驗證?99%機型上驗證?4.x-6.x版本上驗證?Dexposed&Andfix–方法級的替換,不方便(舉例說明)–不支持資源替換–Dexposed在Art虛擬上很難實現(xiàn)–Andfix不支持Davik虛擬機javaMethod:?accessFlags的值是1,2,4,javaMethod:?accessFlags的值是1,2,4,8等?insSize>0?insns指向dexcache中的指令入口JninativeMethod:?accessFlags==ACC_NATIVEjninative化javaFuncexecuteCallMethodJnijavaallstructClassObject:Object{……intdirectMethodCount;Method*directMethods;intvirtualMethodCount;Method*virtualMethods;……}ustructstructMethod{ClassObject*clazz;u2accessFlags;u2u2u2insSize;DexProtoprototype;constchar*shorty;constu2*insns;intjniArgInfo;DalvikBridgeFuncnativeFunc;boolfastJni;boolnoRef;boolshouldTrace;constRegisterMap*registerMap;}methodIndex;registersSize;outsSize;2核心代碼:art::mirror::ArtMethod*smeth=(art::mirror::ArtMethod*)env->FromReflectedMethod(src);art::mirror::ArtMethod*dmeth=(art::mirror::ArtMethod*)env->FromReflectedMethod(dest);memcpy(smeth,dmeth,sizeof(art::mirror::ArtMethod));?優(yōu)勢:–支持類替換,對開發(fā)透明–支持資源替換–同時支持Davik和Art虛擬機–復(fù)雜度低,兼容性好(Java層實現(xiàn))?缺點:–需要重啟才能生效–Android系統(tǒng)代碼不能打補丁dexposedjava超級補丁兼容性類替換方法替換資源替換andfix?更新速度:–只要用戶上線,就會更新?更新成功率–99%?安裝包減少–75%?無需發(fā)布–不用上應(yīng)用市場,節(jié)省人力?不用安裝–用戶無感知6.3版本6.3版本6.5版本開發(fā)周期長,迭代慢質(zhì)量風(fēng)險大,無法及時修復(fù) 需求1需求3 需求評審設(shè)計&開發(fā)集成測試發(fā)布 需求1需求2需求3 需求評審設(shè)計&開發(fā)集成測試發(fā)布需需求效果未經(jīng)過灰度驗證求3求1快速開發(fā)簡單測試灰度發(fā)布快速開發(fā)簡單測試灰度發(fā)布求2快速開發(fā)簡單測試求3求1快速開發(fā)簡單測試灰度發(fā)布快速開發(fā)簡單測試灰度發(fā)布求2快速開發(fā)簡單測試灰度發(fā)布生成補丁集成測試補丁包全量發(fā)布開發(fā)中合流應(yīng)用市場全量發(fā)布集成測試開發(fā)周期短,需求獨立發(fā)布需求效果經(jīng)過灰度驗證后FeedsFeeds團隊相相冊團隊已經(jīng)發(fā)布66.3版本66.5版本質(zhì)質(zhì)量風(fēng)險小,有問題可以隨時回滾?一、技術(shù)背景?二、技術(shù)原理–從Patch中加載Class–從Patch中加載資源–怎么生成補丁包?三、技術(shù)難點?四、其它問題?能從多個APK加載Class嗎??能從多個Apk加載Resource嗎??如果有重復(fù)的資源和Class虛擬機怎么處理?esoruce代碼esoruce代碼?加載補丁包Davick/Art虛擬機ClasClassLoader補丁包補丁包代碼新版本代碼AndroidManifest新版本代碼AndroidManifest對新增或修改過的代碼和資源文件差異部分?生成補丁包代碼AndroidManif補丁包補丁包代碼?資源–Assets–Res–Resource.arsc?代碼–Dex–So?描述文件–AndroidManifest?一、技術(shù)背景?二、技術(shù)原理?三、技術(shù)難點生成補丁包難點(混淆,ID變化,無編譯)–加載補丁包難點?四、其它問題?R.java?Resource.arsc6.1代碼6.1代碼6.0class6.0classMap文件 6.0代碼ProguardMap文件uard66.1class–具體參考(/manual/usage.html)?資源混淆–非官方操作,自己解決吧00x7F030001---->0x7F030002?AAPT命令6.?AAPT命令6.0資源AAPTpublicpublic.xmlAAPT66.1資源?res/values/目錄下添加public.xml文件LayoutLayout.xml無法編譯?不用AAPT自己生成Resources.arsc?參考:m/category/android/android-resources/?一、技術(shù)背景?二、技術(shù)原理?三、技術(shù)難點–生成補丁包難點–加載補丁包難點(ISPREVARIFIED錯誤,無法增加Activity)?四、其它問題ClassLoader代碼ClassLoader代碼DavickDavick/Art(Context)esoruce(AssetManager)補丁包補丁包代碼就這么簡單?IllegalAccessError:Classrefinpre-verifiedclassresolvedtounexpectedimplementation調(diào)用?阻止類被打ISPREVERIFIED標(biāo)記allclasallclass?DexOpt時,如果調(diào)用的另一個類不在同一個Dex中,就不會打上ISPREVERIFIED標(biāo)記?因為AndroidManifest.xml是安裝時向系統(tǒng)注冊Activity等信息,運行時無法替換。沒有辦法增加Activity?預(yù)埋多個Activity?編譯補丁包時,把新增Activity名字修改為ChunkActivity。?算是部分解決問題(不能Export)?一
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬鉻還原工操作規(guī)程能力考核試卷含答案
- 拍賣運營師崗前工藝控制考核試卷含答案
- 飛機雷達安裝調(diào)試工變更管理競賽考核試卷含答案
- 鍛件切邊工道德強化考核試卷含答案
- 圓機操作工安全綜合評優(yōu)考核試卷含答案
- 自來水生產(chǎn)工崗前理論水平考核試卷含答案
- 冷鏈物流員安全素養(yǎng)知識考核試卷含答案
- 化學(xué)農(nóng)藥生產(chǎn)工誠信品質(zhì)能力考核試卷含答案
- 塑料熱合工安全意識競賽考核試卷含答案
- 礦山安全設(shè)備監(jiān)測檢修工安全知識宣貫?zāi)M考核試卷含答案
- GB/T 38235-2025工程用鋼絲環(huán)形網(wǎng)
- 西醫(yī)基礎(chǔ)知識培訓(xùn)課件
- 《電磁發(fā)射滅火炮技術(shù)規(guī)范》
- 風(fēng)機攀爬安全培訓(xùn)課件
- 陜西西安遠東二中學(xué)2026屆九年級數(shù)學(xué)第一學(xué)期期末考試模擬試題含解析
- 以人工智能賦能新質(zhì)生產(chǎn)力發(fā)展
- 資產(chǎn)管理部2025年工作總結(jié)與2025年工作計劃
- 公建工程交付指南(第四冊)
- 2025年貴州省法院書記員招聘筆試題庫附答案
- 過氧化氫氣體低溫等離子滅菌測試題(附答案)
- 溶出度概況及注意事項很全面的一套資料2講課文檔
評論
0/150
提交評論