阿里百川热修复官方使用文档帮助:点击查看
阿里百川热修复,目前1.4.0版本,不支持修改布局文件,支持修改方法体内容,支持新增类,代码如下:
1、在阿里百川创建APP后,将Demo中app相应的APPKEY、APPSECRET、RSASECRET和APPID替换成自己的
1.manifest.xml文件中
//在https://hotfix.taobao.com/hotfix/login.htm阿里百川热修复应用列表查看
<meta-data
android:name="com.taobao.android.hotfix.APPKEY"
android:value="***" />
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="***" />
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="***" />
2.MainApplication中
private void initApp() {
this.appId = "***"; //TODO 替换掉自己应用的appId 还需要替换manifests中的APPKEY、APPSECRET和RSASECRET
try {
this.appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
} catch (Exception e) {
this.appVersion = "1.0";
}
}
2、生成和使用mapping文件(如果apk不使用混淆,请忽略这一步)
1、打开proguard-rules.pro文件,先更改成如下注释;
-printmapping mapping.txt
#-applymapping mapping.txt
2、使用-printmapping命令生成release包,然后就会在hotfix_demo/build/outputs/mapping/release路径下生成mapping文件,然后移动到/hotfix_demo路径下,然后更改注释,使用-applymapping 使用mapping文件;
#-printmapping mapping.txt
-applymapping mapping.txt
3、更改如下代码,release生成old.apk,安装到手机上,点击测试,通过吐司来判断是新方法还是旧方法;
public class BugClass{
/**
* patch测试, 假如BaseBug.test()方法有bug, 修复后的具体范例请参考BaseBug.md文件
*/
public static void test(Context context) {
Toast.makeText(context.getApplicationContext(), "老的方法", Toast.LENGTH_SHORT).show();
}
}
4、 更改吐司内容,release生成new.apk
public class BugClass{
/**
* patch测试, 假如BugClass.test()方法有bug, 修复后的具体范例请参考BaseBug.md文件
*/
public static void test(Context context) {
Toast.makeText(context.getApplicationContext(), "新的方法", Toast.LENGTH_SHORT).show();
}
}
5、 使用命令生成差异包
在G盘创建“百川热修复打包工具包”文件夹,将打包工具、签名文件、old.apk和new.apk放到里面;
//cmd命令
G:
cd G:\百川热修复打包工具包
//查看命令详情可以使用:java -jar BCFixPatchTools-1.3.0.jar
java -jar BCFixPatchTools-1.3.0.jar -c patch -s old.apk -f new.apk -w patch-out -k demo.jks -p test123 -a test123 -e test123
cmd命令
之前的文件夹
生成差异文件后的文件夹,然后进入patch-out文件夹内部,会看到baichuan-hotfix-patch.jar,这个就是差异文件
差异文件
6、 发布
1. 点击查看应用列表:阿里百川HotFix应用列表
2. 登录后点击右侧“管理”;
3. 点击“新增版本”;
4. 输入当前应用的版本名称“ versionName ”;
5. 然后点击“查看详情”;
6. 上传补丁包,然后点击“查看详情”,点击“确认发布”;
7. 完成。
注意: 1. 上传补丁包,未找到***.jar文件,请点击选择"所有文件";
2. 如果apk使用加固,必须使用加固前的apk生成补丁包, 加固后的apk能正常加载补丁;
附:demo文件下载地址:点击下载