概述
AppAddUpdate
项目地址:kingwang666/AppAddUpdate
简介:Android app 增量更新
更多:作者 提 Bug
标签:
Android app 增量更新
参考https://github.com/cundong/SmartAppUpdates
该 app 未提供服务端代码(服务端代码的增量更新实现可参考 diff.c 和 patch.c,原理和客户端一致)
ScreenShoots
Gradle
compile 'com.wang.appupdate:appupdate:1.0.1'
Android Studio NDK
- 首先下载 NDK
- 在项目的gradle.properties文件下添加android.useDeprecatedNdk=true
- 新建含有 native 方法的类(如 PatchUtil.java)
- 编译一下在
appbuildintermediatesclassesdebug
目录下对应类的包名下会自动创建出 PatchUtil.clasee - 点击 Android Studio 的 Terminal 进入
appbuildintermediatesclassesdebug
目录下 - Android Studio2.0 及以上输入
javah -classpath . -jni om.wang.appupdate.util(packName).PatchUtil(ClassName)
其他版本输入javah -jni om.wang.appupdate.util(packName).PatchUtil(ClassName)
创建对应的.h 文件(在appbuildintermediatesclassesdebug
根目录下) - 新建 jni 文件夹
创建的.h 文件剪切过来。编写对应的 c 文件(命名随意) - 在 app 的 build.gradle 配置
- 运行即可,对应的.so 在文件夹
API
PatchUtil
int diff(String oldApkPath, String newApkPath,String patchPath)
比较路径为 oldPath 的 apk 与 newPath 的 apk 之间差异,并生成 patch 包.
int patch(String oldApkPath, String newApkPath, String patchPath)
使用路径为 oldApkPath 的 apk 与路径为 patchPath 的补丁包,合成新的 apk,并存储 newApkPath返回码
0-success
1-缺少文件路径
2-读取旧 apk 失败
3-读取新的 apk 失败
4-打开或读取 patch 文件失败
5-内存分配失败
6-创建、打开或读取 patch 文件失败
7-计算文件差异性或者写入 patch 文件失败
8-计算压缩的大小差异数据失败
9-无用的 patch 补丁
10-合并 apk 失败
SignUtil
-
String getMd5ByFile(File file)
获取对应文件的 md5 值 -
boolean checkMd5(File file, String md5)
判断文件的 MD5 是否为指定值 -
boolean checkMd5(String filePath, String md5)
判断文件的 MD5 是否为指定值
ApkUtil
PackageInfo getInstalledApkPackageInfo(Context context, String packageName)
获取已安装 apk 的 PackageInfo
boolean isInstalled(Context context, String packageName)
判断 apk 是否已安装
String getSourceApkPath(Context context, String packageName)
获取已安装 Apk 文件的源 Apk 文件
String getSourceApkPath(Context context)
获取已安装 Apk 文件的源 Apk 文件
void installApk(Context context, String apkPath)
安装 Apk
最后
以上就是满意篮球为你收集整理的Android app 增量更新的全部内容,希望文章能够帮你解决Android app 增量更新所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复