Demo请参考tinker-sample-android,
目录
0.参考文档
1.debug打包
--1.1 将下载下来的demo编译打包 安装在手机上
--1.2 修改bug
--1.3 修改build.gradle
--1.4 打包差异包,并推送到手机的SD卡中
--1.5 完成
0. 参考文档
① 官方文档
Tinker 接入指南
拉到最下面
1.debug打包
1.1 将下载下来的demo编译打包 安装在手机上
调用assembleDebug编译,
编译过的包保存在build/bakApk中。
【记住你编译出来的包名,后面会用到!!!】
【我这边编译出来的是app-debug-0920-14-08-05.apk】
然后将它安装到手机,点击SHOW INFO按钮,可以看到补丁并没有加载.
1.2 修改bug
对demo工程进行修改
你可以多加个toast或者log,来区分跟之前版本的区别
1.3 修改build.gradle
即
将步骤1.1编译出来的安装包app-debug-0920-14-08-05.apk路径
拷贝到tinkerPatch中的oldApk参数中。
具体操作:
① 打开app的build.gradle
② 将oldApk改为你之前编译出来的老的apk的路径
oldApk = "${bakPath}/app-debug-0920-14-08-05.apk"
1.4 打包差异包,并推送到手机的SD卡中
调用gradle中的tinkerPatchDebug,
成功后,补丁包与相关日志会保存在/build/outputs/tinkerPatch/。
然后我们将patch_signed_7zip.apk推送到手机的sdcard中。
adb命令:
>adb push patch_signed_7zip.apk的绝对路径 /storage/emulated/0/patch_signed_7zip.apk
//关于patch_signed_7zip.apk的绝对路径
直接把文件拖进来就好了
//关于/storage/emulated/0/patch_signed_7zip.apk
其中/storage/emulated/0/可通过Environment.getExternalStorageDirectory().getAbsolutePath();获取,
//是跟下面调用的方法的最后一个参数相对应
TinkerInstaller.onReceiveUpgradePatch(getApplicationContext(), Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch_signed_7zip.apk");相对应的
1.5 完成
打开1.1步骤安装的apk
点击LOAD PATCH按钮, 如果看到patch success, please restart process的toast,即可锁屏或者点击KILL SELF按钮
重新打开apk 则可以看到我们改的代码,同时点击SHOW INFO按钮,显示补丁包的确已经加载成功了。