美文网首页
Android热修复HotFix的简单使用

Android热修复HotFix的简单使用

作者: MinRookie | 来源:发表于2017-07-29 18:30 被阅读0次

小弟第一次写文章,如果写的不好,你说吧,反正我不一定会改。

热修复是一个很好的东西,不仅方便了用户使用,也方便了我们程序猿,不用经常发包....

HotFix是阿里的推出来的一套热修复,接入简单,方便快捷(我只使用过这种,其他的我就不评价),同时你生成的补丁发布以后大约10分钟左右,就能手机APP就能修复好。

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

首先到阿里百川或者阿里云,使用自己的账号,去查看HotFix的文档,android studio 的用户可以直接添加Maven库去使用,eclipse的玩家就需要下载相应的jar包去使用了。附上两个平台的连接(阿里云的比较难找)

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

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

在里面可以查看到详细的文档(如果看我的不明白,可以去看看文档,文档比较详细)

先说点别的:个人建议去阿里百川,因为阿里百川不需要申请使用,阿里云需要,如有有时间,还是去阿里云,这个好像是阿里云的。申请审批时间,我当时是两到三个小时就通过了。

开干:

android studio 用户:

第一:添加Maven库(有两个,我待会讲解,为什么推荐使用这个)

```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')

}```

第三:添加混淆:

#生成老安装包时打开,生成mapping.txt, 并将mapping.txt,移到/app下

```-printmappingmapping.txt

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

#修复后生成新安装包时打开,保证混淆结果一致

#-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密钥"/>```

添加权限:INTERNET 、ACCESS_NETWORK_STATE、 ACCESS_WIFI_STATE、READ_EXTERNAL_STORAGE(6.0需要添加权限判断)

第五:到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){

//补丁加载成功

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

//补丁生效,需要重启

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

//内部引擎一次,清空补丁,防止失败补丁重复加载

SophixManager.getInstance().cleanPatches();

}else{

//其他错误

}

}

}).initialize();

SophixManager.getInstance().queryAndLoadNewPatch();

}

```

eclipse的用户就到平台去下载jar包就好了,其他的操作基本一样

好了,现在说我遇到的坑:

第一次遇到的坑是:在平台下载的SophixPatchTool生成的补丁用不了,下载的是3.0.3的版本,具体原因我也不知道,跑去问客服,结果客服直接甩了一个SophixPatchTool-2.0.7给我,然后就能用了(文章下面有下载链接)注:Windows用户,MAC用户的可以直接用

第二次遇到的坑是:在原来的项目添加HotFIx的时候,添加成功了,运行成功了,但是打包的时候就有问题,居然有utdid的冲突,这就尴尬了,然后我就百度(无法越狱公司网络),然后就看到友盟和支付宝(阿里系)都有这个冲突,我就回去从新看了一遍官方文档,问题就解决了,解决方法就是我开始说的,在Maven和gradle添加的时候解决的,所以这里我觉得集成任何第三方,还是要详细的看看文档

关于HotFix我个人感觉挺好用的,集成方便,使用方便,不需要其他的任何操作。(今天在客服群里面,看到客服人员说:热修复产品从公测转为商业化时间不变,还是2017年7月31日。但是,所有用户从31日开始,【两周内使用服务产生的费用,均不计费】,预期从2017年8月14日开始收费。)所以如果需要用到的,还是需要各位去请各位的BOSS申请资金(土豪请忽略我说的)

SophixPatchTool-2.0.7下载链接

链接: http://pan.baidu.com/s/1i5yz6QD 密码: gki6

小弟第一次写文章,文笔不好,凑合着看看,小弟慢慢会学会写文档

相关文章

网友评论

      本文标题:Android热修复HotFix的简单使用

      本文链接:https://www.haomeiwen.com/subject/ycsclxtx.html