关于热修复
来源:互联网 发布:战争雷霆手机数据库 编辑:程序博客网 时间:2024/06/06 17:10
首先我们做热修复,应该在release状态下执行
它的设置在Build Variants中设置
在gradle中配置签名
signingConfigs{
signConfig {
storeFile file (‘/keystore.jks’)//签名文件路径,
//keystore的路径通常使用项目根目录的相对路径,但也可以是使用绝对路径,尽管这不推荐
storePassword ‘123456’ //密码
keyAlias ‘qa’
keyPassword ‘123456’ //密码
}
}
buildTypes { release { minifyEnabled false signingConfig signingConfigs.signConfig proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }}
- compile ‘com.alipay.euler:andfix:0.3.1@aar’
创建Application
public class MyApplication extends Application {private static final String TAG = “MyApplication”;
/**
- apatch文件
*/
private static final String APATCH_PATH = “/Dennis.apatch”;
private PatchManager mPatchManager;
@Override
public void onCreate() {
super.onCreate();
// 初始化
mPatchManager = new PatchManager(this);
mPatchManager.init(“1.0”); // 版本号// 加载 apatchmPatchManager.loadPatch();//apatch文件的目录String patchFileString = Environment.getExternalStorageDirectory().getAbsolutePath() + APATCH_PATH;File apatchPath = new File(patchFileString);if (apatchPath.exists()) { Log.i(TAG, "补丁文件存在"); try { //添加apatch文件 mPatchManager.addPatch(patchFileString); } catch (IOException e) { Log.i(TAG, "打补丁出错了"); e.printStackTrace(); }} else { Log.i(TAG, "补丁文件不存在");}
}
}- apatch文件
测试时,在MainActivity中建立Button按钮,弄两种不同的形式,生成两个不同的apk
- 弄一个生成补丁的工具apkpatch
- 弄一个签名keystore
- 把签名文件和两个apk放在生成补丁的文件中
在cmd命令中找见工具的路径,输入命令
apkpatch.bat -f NoBug.apk -t Bug.apk -o Dennis -k keystore -p 111111 -a 111111 -e 111111每个参数含义如下
-f 新版本的apk
-t 旧版本的apk
-o 输出apatch文件的文件夹,可以随意命名
-k 打包的keystore文件名
-p keystore的密码
-a keystore 用户别名
-e keystore 用户别名的密码生成的Dennis文件夹中有.apatch文件
把生成的这个.apatch文件放入手机根目录下即可
- 关于热修复
- 关于热修复
- 关于热修复框架nuwa的使用
- 关于热修复框架nuwa的使用
- 关于热修复需要了解的
- 热修复
- 热修复
- 热修复
- 热修复
- 热修复
- 关于Android热修复技术(AndFix—阿里)
- Android热修复应用篇--关于腾讯Bugly的使用
- Android 热修复 关于接入Tinker所遇到的错误
- 关于tinker 热修复的多渠道打包方式
- 关于Android热修复的几种解决方案
- android热修复--手写热修复
- 各种热修复方案对比热修复
- Android 热修复/热更新
- 数据库连接池的实现及分析
- spring与mybatis集成的几种方式
- What are the lesser known but useful data structures?
- JS调试
- myeclipse设置tab键两个空格
- 关于热修复
- RNN与反向传播算法(BPTT)的理解
- 【Hibernate】——由持久化和映射文件创建表
- 入门训练 Fibonacci数列
- c++实现websocket服务端与JavaScript通讯
- 《iPhone 4开发基础教程》读书笔记
- Android 系列 4.4使用Intent.putExtra()推送字符串值
- JavaScript中的window.open()打开一个新的网页
- POJ3280——Cheapest Palindrome(动态规划)