相信很多小伙伴们在集成bignews都看过这篇大神的文章http://www.jianshu.com/p/a9ec8fa780e2,但是在实际操作的时候有点不方便,因为他需要有原始的安装包的情况下才能打出增量包。
让我们来先看看原来的方法,生成增量包的方法
其中diff需要三个参数diff(当前安装包地址,新包地址,增量包生成地址),成功返回true,失败返回false。
我们在初次实际使用的时候往往不知到在用户安装完成后将原始安装包删除后如何添加参数。这是我们可以使用
getPackageResourcePath()去替代原始包地址。改为
得到增量包之后上上传到服务器然后通过请求下载增量包到本地
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";
// 增量更新尝试(合成)
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();
}
}
完活(仅供参考)