简单集成bignews增量更新

 

    相信很多小伙伴们在集成bignews都看过这篇大神的文章http://www.jianshu.com/p/a9ec8fa780e2,但是在实际操作的时候有点不方便,因为他需要有原始的安装包的情况下才能打出增量包。

  让我们来先看看原来的方法,生成增量包的方法

简单集成bignews增量更新_第1张图片

 

   其中diff需要三个参数diff(当前安装包地址,新包地址,增量包生成地址),成功返回true,失败返回false。

我们在初次实际使用的时候往往不知到在用户安装完成后将原始安装包删除后如何添加参数。这是我们可以使用

getPackageResourcePath()去替代原始包地址。改为

简单集成bignews增量更新_第2张图片这样我们就可以只将新包放入固定路径然后启动方法生成增量包

得到增量包之后上上传到服务器然后通过请求下载增量包到本地

 

private static final String NEW_APK = PATH + File.separator + "newld.apk";
private static final String NEW_APK1 = PATH + File.separator + "base.apk";
private static final String PATCH_FILE = PATH + File.separator + "patch";

简单集成bignews增量更新_第3张图片简单集成bignews增量更新_第4张图片简单集成bignews增量更新_第5张图片简单集成bignews增量更新_第6张图片简单集成bignews增量更新_第7张图片

 

简单集成bignews增量更新_第8张图片

 

//    增量更新尝试(合成)
private void make( String patch_url) {
    if ( BigNews.make(getPackageResourcePath(), NEW_APK1, patch_url)) {
        Toast.makeText(this, getString(R.string.make_done) + getPackageResourcePath(), Toast.LENGTH_SHORT).show();
        startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(new File(NEW_APK1)),
                "application/vnd.android.package-archive"));
    } else {
        Toast.makeText(this, getString(R.string.make_failed), Toast.LENGTH_SHORT).show();
    }
}

完活(仅供参考)

你可能感兴趣的:(简单集成bignews增量更新)