9、dex文件分析

增量更新

1、就是比較兩個(gè)APP的差距,只更新相差的地方,而不是全部重新下載,安裝
2、使用的工具 bsdiff 和 bspatch。其中 bsdiff 比較的 新的 apk與老的apk直接的差異,生成一個(gè)文件(patch)。 更新的時(shí)候下載這個(gè)patch文件,在使用bspatch 與 老得 apk 生成一個(gè)新的 apk。就是升級(jí)之后的apk。
3、所以在 android app 中如果需要使用到 增量更新的話,需要通過(guò)ndk 引入 bspatch 的源碼

補(bǔ)充知識(shí)點(diǎn)

1、ndk的一個(gè)語(yǔ)法,因?yàn)槲覀冊(cè)?apk 中使用增量更新,需要用到  ndk,
所以需要引入 bspatch和其相關(guān)的cpp源碼,cmake 快捷的引入方式:
使用 aux_source_directory(file_name,name) 
// 把file_name 下的源文件 用 name 來(lái)表示
使用 add_library(cpp_native SHARED native-lib.c ${name})
2、include_directories(file_name)
//  設(shè)置頭文件的 的查找路徑,也就是 .h 文件,
這樣在 #include的時(shí)候就不用使用 路徑的地址了 也就是“”了,可以使用<> 尖括號(hào)了。

dex文件的分析 Tinker (熱修復(fù))

image.png

1、bsdiff 工具,比較兩個(gè)文件的不同,使用的是 差分算法,可以比較任何文件,生成的batch 也會(huì)比較大。
2、android 中的可執(zhí)行文件 都是 .dex 文件,不同的文件有不同的存儲(chǔ)方式,每個(gè)字段也有不同的含義
3、dexdiff 主要是針對(duì) dex 文件來(lái)使用 差分算法 比較兩個(gè)文件的不同的。產(chǎn)生的數(shù)據(jù)更小
4、可以使用 tinker 來(lái)替換 dex 文件,達(dá)到免安裝就更新apk的目的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容