Android移動應用熱更新方案的研究與實現(xiàn)
發(fā)布時間:2020-06-24 20:36
【摘要】:隨著移動互聯(lián)網(wǎng)的快速發(fā)展,移動應用已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚囊徊糠。而在移動應用的開發(fā)過程中經(jīng)常會遇到以下兩個問題:第一,新功能的發(fā)布每次都需要通過發(fā)布新版本,用戶下載安裝完整安裝包才可以使用;第二,新版本發(fā)布后,如果因為代碼或資源錯誤導致應用無法正常使用,開發(fā)者在緊急修復錯誤后需要重新發(fā)版。因此,如何能夠?qū)崿F(xiàn)更好的Android移動應用更新方案是業(yè)界的一大熱點。本文結(jié)合熱修復技術(shù)和插件化技術(shù)對Android移動應用更新展開研發(fā),主要的工作包括:(1)本文設計了包括Gradle插件模塊、補丁檢查校驗模塊和補丁加載模塊的Android應用客戶端熱更新框架,以及包括補丁分發(fā)平臺模塊、MIS管理平臺模塊和補丁存儲模塊的Android應用服務端熱更新框架。(2)補丁合成采用了基于類的全量Dex合成方案,Dalvik虛擬機中采用了移除基準包Dex類定義的方案,ART虛擬機中采用了改變基準包Dex和補丁包Dex文件名的方案,避免了基準包Dex和補丁包Dex合成完整Dex帶來的性能損耗;贒exDiff算法,將生成補丁的比較粒度由Dex文件內(nèi)每個Section擴大到類級別,實現(xiàn)生成補丁算法的優(yōu)化。(3)方案除了支持類修復、資源修復和SO修復等基本的熱修復功能,還增加了對新增四大組件的支持,實現(xiàn)熱更新功能。(4)對方案進行了詳細設計和實現(xiàn),實現(xiàn)了補丁生成、補丁配置、補丁下發(fā)、補丁合成、補丁加載以及補丁管理的整套流程。實際測試結(jié)果表明,系統(tǒng)較好地滿足了設計要求。本論文提出的熱更新方案很好地實現(xiàn)了補丁文件的動態(tài)下發(fā)、實時管理以及動態(tài)加載,同時支持組件的動態(tài)更新,實際使用表明,該方案具有良好的應用效果。
【學位授予單位】:東南大學
【學位級別】:碩士
【學位授予年份】:2018
【分類號】:TP311.52;TP316
【圖文】:
Odex文件的作用是當存在Odex文件時,則直接執(zhí)行Odex文件,無需每次都從Apk中提取逡逑Dex文件,提前將Dex文件從Apk中提取出來,加快系統(tǒng)啟動和應用運行速度。Class文件、Dex逡逑文件與Odex文件差異如圖2-1所示。逡逑7逡逑
提供了依賴管理,提供了有意義的默認配置,缺點是默認的生命周期限制太大,定制擴展逡逑復雜。另外,Ant和Maven共同的缺點是構(gòu)建腳本基于XML,隨著復雜度的增加,構(gòu)建代碼難以維逡逑護。在結(jié)合Ant和Maven的優(yōu)點后,Gradle成為JVM新一代的構(gòu)建工具,它的特性集如圖2-2所示。逡逑Gradle就是逡逑Groovy逡逑I具有表達性的|逡逑丨語言和強大的\邐/靈活的約定逡逑具的集成邐v邐P邐1依賴管理逡逑二/T\逡逑社區(qū)驅(qū)動和公\逡逑司支持邐\可擴展的構(gòu)建丨逡逑邐邋————邐I邐i逡逑毫不費力的擴逡逑展逡逑圖2-2邋Gradle構(gòu)建工具特性集逡逑Gradle的工作流程分為三個階段,分別是初始化階段、配置階段和執(zhí)行階段。初始化階段負責逡逑解析項目中的settings.gradle文件,該文件中記錄了項目中所有需要構(gòu)建的模塊名。配置階段負責解逡逑析每個需要構(gòu)建的模塊中builcLgradle文件所包含的任務,并將這些任務根據(jù)依賴關(guān)系轉(zhuǎn)化成有向圖,逡逑用于表示項目中所有任務的執(zhí)行順序。最后,根據(jù)有向圖中順序,依次執(zhí)行有向圖中的任務。為了逡逑使開發(fā)者更加靈活方便的在某個生命周期事件發(fā)生前后執(zhí)行特定代碼
本文編號:2728318
【學位授予單位】:東南大學
【學位級別】:碩士
【學位授予年份】:2018
【分類號】:TP311.52;TP316
【圖文】:
Odex文件的作用是當存在Odex文件時,則直接執(zhí)行Odex文件,無需每次都從Apk中提取逡逑Dex文件,提前將Dex文件從Apk中提取出來,加快系統(tǒng)啟動和應用運行速度。Class文件、Dex逡逑文件與Odex文件差異如圖2-1所示。逡逑7逡逑
提供了依賴管理,提供了有意義的默認配置,缺點是默認的生命周期限制太大,定制擴展逡逑復雜。另外,Ant和Maven共同的缺點是構(gòu)建腳本基于XML,隨著復雜度的增加,構(gòu)建代碼難以維逡逑護。在結(jié)合Ant和Maven的優(yōu)點后,Gradle成為JVM新一代的構(gòu)建工具,它的特性集如圖2-2所示。逡逑Gradle就是逡逑Groovy逡逑I具有表達性的|逡逑丨語言和強大的\邐/靈活的約定逡逑具的集成邐v邐P邐1依賴管理逡逑二/T\逡逑社區(qū)驅(qū)動和公\逡逑司支持邐\可擴展的構(gòu)建丨逡逑邐邋————邐I邐i逡逑毫不費力的擴逡逑展逡逑圖2-2邋Gradle構(gòu)建工具特性集逡逑Gradle的工作流程分為三個階段,分別是初始化階段、配置階段和執(zhí)行階段。初始化階段負責逡逑解析項目中的settings.gradle文件,該文件中記錄了項目中所有需要構(gòu)建的模塊名。配置階段負責解逡逑析每個需要構(gòu)建的模塊中builcLgradle文件所包含的任務,并將這些任務根據(jù)依賴關(guān)系轉(zhuǎn)化成有向圖,逡逑用于表示項目中所有任務的執(zhí)行順序。最后,根據(jù)有向圖中順序,依次執(zhí)行有向圖中的任務。為了逡逑使開發(fā)者更加靈活方便的在某個生命周期事件發(fā)生前后執(zhí)行特定代碼
【參考文獻】
相關(guān)期刊論文 前3條
1 解志君;;代理模式在Java中的應用[J];軟件;2014年05期
2 董曉剛;;Android系統(tǒng)四大組件的注冊與激活[J];硅谷;2013年05期
3 陳芝榮;蔣建峰;姚樹春;;Java類加載器機制與模型[J];軟件導刊;2010年08期
相關(guān)碩士學位論文 前5條
1 劉羽佳;基于Android平臺的皮膚引擎的設計、實現(xiàn)及其應用[D];南京大學;2016年
2 李霞;Android虛擬機運行時技術(shù)的分析與評測[D];東南大學;2015年
3 宿元慶;Android基于動態(tài)加載的軟件保護研究[D];西安電子科技大學;2014年
4 禹建磊;Android系統(tǒng)啟動程序的優(yōu)化設計與實現(xiàn)[D];西北大學;2012年
5 郭國勇;Android啟動過程優(yōu)化研究[D];蘭州大學;2012年
本文編號:2728318
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2728318.html
最近更新
教材專著