Android熱修復(fù)HotFix的簡單使用

小弟第一次寫文章,如果寫的不好,你說吧,反正我不一定會改。

熱修復(fù)是一個(gè)很好的東西,不僅方便了用戶使用,也方便了我們程序猿,不用經(jīng)常發(fā)包....

HotFix是阿里的推出來的一套熱修復(fù),接入簡單,方便快捷(我只使用過這種,其他的我就不評價(jià)),同時(shí)你生成的補(bǔ)丁發(fā)布以后大約10分鐘左右,就能手機(jī)APP就能修復(fù)好。

不說了,直接說怎么使用吧

首先到阿里百川或者阿里云,使用自己的賬號,去查看HotFix的文檔,android studio 的用戶可以直接添加Maven庫去使用,eclipse的玩家就需要下載相應(yīng)的jar包去使用了。附上兩個(gè)平臺的連接(阿里云的比較難找)

阿里百川:http://baichuan.taobao.com/product/hotfix.htm?spm=a3c0d.7662652.1998907869.2.7dQceC

阿里云:https://www.aliyun.com/product/hotfix

在里面可以查看到詳細(xì)的文檔(如果看我的不明白,可以去看看文檔,文檔比較詳細(xì))

先說點(diǎn)別的:個(gè)人建議去阿里百川,因?yàn)榘⒗锇俅ú恍枰暾埵褂?,阿里云需要,如有有時(shí)間,還是去阿里云,這個(gè)好像是阿里云的。申請審批時(shí)間,我當(dāng)時(shí)是兩到三個(gè)小時(shí)就通過了。

開干:

android studio 用戶:

第一:添加Maven庫(有兩個(gè),我待會講解,為什么推薦使用這個(gè))

```repositories {

jcenter()

? ? maven {? url"http://maven.aliyun.com/nexus/content/repositories/releases"}

}```

第二:到app目錄下的gradle添加(過會一起講解為什么要這樣)

```compile ('com.aliyun.ams:alicloud-android-hotfix:3.0.8') {

? ? ?exclude(module:'alicloud-android-utdid')

}```

第三:添加混淆:

#生成老安裝包時(shí)打開,生成mapping.txt, 并將mapping.txt,移到/app下

```-printmappingmapping.txt

#生成的mapping.txt在app/buidl/outputs/mapping/release路徑下,移動到/app路徑下

#修復(fù)后生成新安裝包時(shí)打開,保證混淆結(jié)果一致

#-applymapping mapping.txt

#hotfix

-keepclass com.taobao.sophix.**{*;}

-keepclass com.ta.utdid2.device.**{*;}```

第四:到AndroidManifest配置

```android:name="com.taobao.android.hotfix.IDSECRET"

android:value="App ID"/>

android:name="com.taobao.android.hotfix.APPSECRET"

android:value="App Secret"/>

android:name="com.taobao.android.hotfix.RSASECRET"

android:value="RSA密鑰"/>```

添加權(quán)限:INTERNET 、ACCESS_NETWORK_STATE、 ACCESS_WIFI_STATE、READ_EXTERNAL_STORAGE(6.0需要添加權(quán)限判斷)

第五:到MyApplication里面添加:

```?

@Override

public voidonCreate() {

super.onCreate();

SophixManager.getInstance().setContext(this)

.setAppVersion(BuildConfig.VERSION_NAME)

.setAesKey(null)

.setEnableDebug(true)

.setPatchLoadStatusStub(newPatchLoadStatusListener() {

@Override

public voidonLoad(intmode, intcode,String info, inthendlePathVersion) {

if(code == PatchStatus.CODE_LOAD_SUCCESS){

//補(bǔ)丁加載成功

}else if(code == PatchStatus.CODE_LOAD_RELAUNCH){

//補(bǔ)丁生效,需要重啟

}else if(code == PatchStatus.CODE_LOAD_FAIL){

//內(nèi)部引擎一次,清空補(bǔ)丁,防止失敗補(bǔ)丁重復(fù)加載

SophixManager.getInstance().cleanPatches();

}else{

//其他錯(cuò)誤

}

}

}).initialize();

SophixManager.getInstance().queryAndLoadNewPatch();

}

```


eclipse的用戶就到平臺去下載jar包就好了,其他的操作基本一樣

好了,現(xiàn)在說我遇到的坑:

第一次遇到的坑是:在平臺下載的SophixPatchTool生成的補(bǔ)丁用不了,下載的是3.0.3的版本,具體原因我也不知道,跑去問客服,結(jié)果客服直接甩了一個(gè)SophixPatchTool-2.0.7給我,然后就能用了(文章下面有下載鏈接)注:Windows用戶,MAC用戶的可以直接用

第二次遇到的坑是:在原來的項(xiàng)目添加HotFIx的時(shí)候,添加成功了,運(yùn)行成功了,但是打包的時(shí)候就有問題,居然有utdid的沖突,這就尷尬了,然后我就百度(無法越獄公司網(wǎng)絡(luò)),然后就看到友盟和支付寶(阿里系)都有這個(gè)沖突,我就回去從新看了一遍官方文檔,問題就解決了,解決方法就是我開始說的,在Maven和gradle添加的時(shí)候解決的,所以這里我覺得集成任何第三方,還是要詳細(xì)的看看文檔

關(guān)于HotFix我個(gè)人感覺挺好用的,集成方便,使用方便,不需要其他的任何操作。(今天在客服群里面,看到客服人員說:熱修復(fù)產(chǎn)品從公測轉(zhuǎn)為商業(yè)化時(shí)間不變,還是2017年7月31日。但是,所有用戶從31日開始,【兩周內(nèi)使用服務(wù)產(chǎn)生的費(fèi)用,均不計(jì)費(fèi)】,預(yù)期從2017年8月14日開始收費(fèi)。)所以如果需要用到的,還是需要各位去請各位的BOSS申請資金(土豪請忽略我說的)

SophixPatchTool-2.0.7下載鏈接

鏈接: http://pan.baidu.com/s/1i5yz6QD 密碼: gki6

小弟第一次寫文章,文筆不好,湊合著看看,小弟慢慢會學(xué)會寫文檔

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,040評論 25 709
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,874評論 2 45
  • 太長了,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候,無意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開源...
    龐哈哈哈12138閱讀 20,394評論 3 283
  • 心中最軟的地方是你的名字,因?yàn)槟阍竭^那里,留下一陣陣漣漪。 1 有時(shí)總喜歡打辯 自從你出現(xiàn) 就再也沒贏過 2 美...
    正捌閱讀 598評論 6 14
  • 在工業(yè)時(shí)代,用戶是緩慢增長的,比較穩(wěn)定,而在互聯(lián)網(wǎng)時(shí)代,用戶的增長速度就是爆發(fā)性的增長。所以有些在工業(yè)時(shí)代有用的理...
    PM回憶錄閱讀 994評論 0 0

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