android热修复AndFix使用记录

添加依赖 

    compile 'com.alipay.euler:andfix:0.4.0@aar'

github : 

    https://github.com/alibaba/AndFix





1. 首先 , 在Application的onCreate中初始化

patchManager = new PatchManager(this);
            String version_name = getPackageManager().getPackageInfo(getPackageName(),0).versionName;
            patchManager.init(version_name);
其中pacthManager是一个PatchManager的实例 , 在Application中定义为一个static变量, 供外部使用;



2. 然后接着写下边的方法, 是为了加载已经下载过的补丁文件

patchManager.loadPatch();



3. 初始化完成后 , 这时候就要写自己的加载补丁的逻辑代码了 ; 比如启动app后,去自己服务器获取,是否有补丁文件需要下载,如果有并且下载到本地完毕后,执行下边代码,就会将补丁生效了 .

patchManager.addPatch(file.getAbsolutePath());
其中file就是下载的补丁文件.




4. 生成.apatch补丁文件

下载生成补丁的工具 : 这里 , 然后解压打开后有三个文件 ,一个.sh,一个.bat,一个.jar, linux和mac使用.sh命令文件, windows使用.bat命令文件 ; 执行命令前需要准备原来的有bug的apk和新的bug修复的apk还要签名文件 , 两个apk文件都需要是release版本且签名与命令中使用的签名文件一致 , 命令如下(mac电脑中)

./apkpatch.sh 
	-f fix.apk                               //修复完毕的apk文件
	-t bug.apk 				//有bug的apk文件
	-o ./ 					//补丁文件输出路径  : 当前目录
	-k key.keystore 			//签名文件
	-p 123456 				//签名文件密码
	-a alias 					//签名文件alias
	-e 123456				//签名文件alias的密码

执行后,会生成几个文件和文件夹,其中有用的就是以.apatch结尾的,这个就是补丁文件,需要给服务器让app去下载;






5. 研究AndFix的时候用得自己正在使用的手机, 当demo完成安装打开测试的时候,老是崩溃,发现是c++文件中出了问题,然后又换了一个小米手机就又正常了,AndFix这玩意的适配性感觉很不好;







你可能感兴趣的:(android)