andfix使用說明

andfix的主要功能是完成熱更新罕伯,可以在不用下載新的apk的情況下完成對應(yīng)用程序的更新。
Andfix的基本流程圖如下所示


andfix原理

使用原理說明

在使用中纤勒,可以將整個使用過程分成兩部分

  • 原始apk和修復(fù)之后的apk的編寫
  • patch文件的生成
原始apk和修復(fù)之后的apk的編寫
  1. apk的編寫
    如果計劃在后續(xù)的apk更新中使用andfix完成楞艾,那么在編寫原始apk時,需要添加andfix相關(guān)的內(nèi)容犀农。
    首先需要導(dǎo)入PatchManager
    PatchManager

    在使用時惰赋,主要可以分成三個步驟
    1.1 初始化
    1.2 loadPatch
    1.3 addPatch
    具體代碼如下圖
    andfix代碼

初始化時init的參數(shù)是版本號,這里直接賦值為1.0呵哨,也可以通過PackageManager對象中的方法獲取版本號赁濒,方法如下
mPatchManager.init(getPackageManager().getPackageInfo().versionName)
在通過這種方法獲取版本號時轨奄,如果版本號有變化,則會導(dǎo)致所有的補(bǔ)丁被刪除流部;如果版本號沒有變化戚绕,那么會加載所有的補(bǔ)丁。

patch文件的生成

阿里本身提供了用來生成patch文件的工具apkpatch枝冀,apkpatch是一個壓縮包舞丛,解壓之后可以得到如下所示內(nèi)容

apkpatch

windows下運(yùn)行apkpatch.bat文件,linux下運(yùn)行apkpatch.sh文件生成patch文件果漾。

  • 參數(shù)說明


    apkpatch命令行參數(shù)說明
  • 注意事項
    在編寫完原始apk和修復(fù)之后的apk之后球切,在生成patch文件時,需要提供apk生成時使用的簽名證書绒障,這一點在阿里的官方文檔上沒有說明吨凑,這里說明記錄一下。
    如果開發(fā)者是使用的自己的keystore對apk進(jìn)行簽名户辱,那么這里直接對應(yīng)參數(shù)信息即可
    如果開發(fā)者是使用了AOSP提供的密鑰對apk進(jìn)行簽名鸵钝,那么可能用戶不知道自己所使用的keystore的位置,所以這里記錄下位置庐镐。
    linux上keystore文件的位置是~/.android路徑下恩商,.android文件夾是一個隱藏文件加,在終端使用la命令可以看到該文件必逆,進(jìn)入該文件之后就能找到AOSP提供的默認(rèn)的keystore文件怠堪。如下圖
    keystore

    在使用apkpatch時,還需要輸入keystore的密碼以及所使用證書的別名名眉,AOSP提供的debug.keystore的默認(rèn)密碼是android,然后可以使用keytool命令來查看keystore文件粟矿,從中得到別名信息。如下圖

打開apkpatch.bat文件损拢,可以看到其實apkpatch.bat文件是通過java -jar來調(diào)用apkpatch-1.0.3.jar包完成patch文件的生成

使用流程

  1. 從github上獲取阿里提供的一個demo程序,demo程序的文件目錄如下所示


    文件目錄
  2. 在build.gradle中添加依賴


    添加依賴
  3. 編譯運(yùn)行demo程序陌粹,生成第一個apk
  4. 修改demo程序代碼,替換函數(shù)調(diào)用探橱,這里我是修改了函數(shù)中的一個變量的值申屹。如下圖所示


    第一個apk

    修改之后的apk
  5. 運(yùn)行修改之后的代碼,生成新的apk
  6. 使用apkpatch工具生成patch文件隧膏,將文件移動到手機(jī)sd卡上哗讥。(apkpatch的使用上邊有描述)
  7. 重新運(yùn)行第一個apk,查看日志可以發(fā)現(xiàn)完成修改


    第一個apk運(yùn)行日志

    修改之后apk運(yùn)行日志

patch文件不一定非要放在sd卡的根目錄上胞枕,只要存放路徑與代碼中查找路徑一致即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杆煞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌决乎,老刑警劉巖队询,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異构诚,居然都是意外死亡蚌斩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門范嘱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來送膳,“玉大人,你說我怎么就攤上這事丑蛤〉” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵受裹,是天一觀的道長碌补。 經(jīng)常有香客問我,道長棉饶,這世上最難降的妖魔是什么厦章? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮照藻,結(jié)果婚禮上闷袒,老公的妹妹穿的比我還像新娘。我一直安慰自己岩梳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布晃择。 她就那樣靜靜地躺著冀值,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宫屠。 梳的紋絲不亂的頭發(fā)上列疗,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機(jī)與錄音浪蹂,去河邊找鬼抵栈。 笑死,一個胖子當(dāng)著我的面吹牛坤次,可吹牛的內(nèi)容都是我干的古劲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缰猴,長吁一口氣:“原來是場噩夢啊……” “哼产艾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤闷堡,失蹤者是張志新(化名)和其女友劉穎隘膘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杠览,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡弯菊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了踱阿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片管钳。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扫茅,靈堂內(nèi)的尸體忽然破棺而出蹋嵌,到底是詐尸還是另有隱情,我是刑警寧澤葫隙,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布栽烂,位于F島的核電站,受9級特大地震影響恋脚,放射性物質(zhì)發(fā)生泄漏腺办。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一糟描、第九天 我趴在偏房一處隱蔽的房頂上張望怀喉。 院中可真熱鬧,春花似錦船响、人聲如沸躬拢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽聊闯。三九已至,卻和暖如春米诉,著一層夾襖步出監(jiān)牢的瞬間菱蔬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工史侣, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留拴泌,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓惊橱,卻偏偏與公主長得像蚪腐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子李皇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 原文首發(fā)于我的個人博客削茁,歡迎訪問(_)宙枷,轉(zhuǎn)載請注明出處。 介紹 AndFix茧跋,全稱是Android hot-fix...
    seewhy閱讀 38,745評論 27 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,077評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理慰丛,服務(wù)發(fā)現(xiàn),斷路器瘾杭,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • 前言 熱修復(fù)也叫熱更新诅病,又叫做動態(tài)加載、動態(tài)修復(fù)粥烁、動態(tài)更新贤笆,是指不通過重新安裝新的APK安裝包的情況下修復(fù)一些線上...
    小楠總閱讀 1,610評論 11 10
  • 量化一天的時間。如果6點起讨阻,12點睡芥永,中午休息1個半小時吧,3次飯1個小時钝吮,一些雜事1小時埋涧,就還有14.5小時...
    書多多小野閱讀 156評論 0 0