Android 热更新(阿里andfix)
2018-07-25 16:39
218 查看
主要有三种途径
一、QQ空间超级补丁技术(优先加载补丁内的class文件)
超级补丁技术基于DEX分包方案,使用了多DEX加载的原理,大致的过程就是:把BUG方法修复以后,放到一个单独的DEX里,插入到dexElements数组的最前面,让虚拟机去加载修复完后的方法。
目前,没有试用过,以后再说。
二、阿里andFix
优点:bug修复即时性。
补丁包采用差量技术,生成的PATCH体积小。
对应用无侵入,几乎无性能损耗。
缺点:不支持新增字段,以及修改<init>方法,也不支持对资源的替换。
由于厂商的自定义ROM,对少数机型暂不支持。(我的三星j3300就不支持)
首先 添加依赖
[code]compile 'com.alipay.euler:andfix:0.3.1@aar'
(1)minifest.xml权限
[code]<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
(2)application里加载补丁
[code]private static final String TAG = "euler"; private static final String APATCH_PATH = "/out.apatch"; static String DIR="apatch"; /** * patch manager */ private PatchManager mPatchManager; @Override public void onCreate() { super.onCreate(); // initialize mPatchManager = new PatchManager(this); String appversion=getPackageManager().getPackageInfo(getPackageName(),0).versionName; mPatchManager.init(appversion); mPatchManager.loadPatch(); try { String patchFileString = Environment.getExternalStorageDirectory().getAbsolutePath() + APATCH_PATH; File result = new File(patchFileString); if(result.exists()){ mPatchManager.addPatch(patchFileString); File f = new File(this.getFilesDir(),DIR + APATCH_PATH); if (f.exists()) { new File(patchFileString).delete(); } } } catch (IOException e) { Log.e(TAG,"addPatch-->"+e.getMessage()); } }
(3)生成补丁文件,下载apkpatch-1.0.3,将密钥和修改bug前后的两个包(new-app,old-app)放进去,cmd-进入文件夹路径,输入以下命令,生成output文件夹,打开找到.apatch文件,重命名成out.apatch,发送到手机上,先杀死进程,重新打开就好了。
[code]apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***> -a,--alias <alias> keystore entry alias. -e,--epassword <***> keystore entry password. -f,--from <loc> new Apk file path. -k,--keystore <loc> keystore path. -n,--name <name> patch name. -o,--out <dir> output dir. -p,--kpassword <***> keystore password. -t,--to <loc> old Apk file path.
阅读更多
相关文章推荐
- Android热更新方案之阿里AndFix 原理以及源码解析
- Android热更新AndFix
- Android热更新之AndFix就是个大坑
- Android热更新之重温Andfix
- 关于Android热修复技术(AndFix—阿里)
- Android开发,热更新的实现与探讨(AndFix)
- Android在线热更新hot fix - AndFix试用
- Android热修复学习之旅——Andfix框架完全解析
- Android热修复框架AndFix原理解析及使用
- 阿里开源的热补丁框架AndFix使用教程
- android 热修补AndFix
- Android热修复框架AndFix原理解析及使用
- Android-AndFix 热修复框架原理及源码解析
- Android AndFix 热修复框架
- 更新android sdk后提示This Android SDK requires And...e ADT to the latest version.
- andfix增量升级更新 热补丁修复
- Android热修复之AndFix原理探索(黑科技热修复的Java层实现)
- Android热修复实践应用--AndFix
- Android不需要下版本打补丁,工具:AndFix
- Android不发版也能在线修Bug?——AndFix 框架