小弟第一次写文章,如果写的不好,你说吧,反正我不一定会改。
热修复是一个很好的东西,不仅方便了用户使用,也方便了我们程序猿,不用经常发包....
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
小弟第一次写文章,文笔不好,凑合着看看,小弟慢慢会学会写文档