Tinker热修复(命令行接入——未知BUG--.java文件修改不成功)

上面两个一个是HongYang的博客,一个是官方的指南
这里一步一步的来(基于HongYang的demo),具体步骤介绍参考HongYang博客吧,这里就不做介绍了,这里只作为补充和步骤详解。
(一)在官方哪里找到最新的引入:
//可选,用于生成application类 provided('com.tencent.tinker:tinker-android-anno:1.8.0') //tinker的核心库 compile('com.tencent.tinker:tinker-android-lib:1.8.0')

(二)修改项目的 build.gradle ,也建议从官方的最新的来
classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.8.0')

(三)gradle配置,配置manifest文件
<meta-data
android:name="TINKER_ID"
android:value="tinker_id_6235657" />
官方接入里有介绍,也提供了demo。这里自己看吧,不设置也没事(可能还没采坑)

(四)添加引用patch代码,并进行相关的application配置(注意注解的名字不能改.SimpleTinkerInApplication)
TinkerInstaller.onReceiveUpgradePatch(getApplicationContext(),
Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch_signed_7zip.apk");

//application的配置代码
@DefaultLifeCycle(application = ".SimpleTinkerInApplication",
flags = ShareConstants.TINKER_ENABLE_ALL,
loadVerifyFlag = false)
public class SimpleTinkerInApplicationLike extends ApplicationLike {
public SimpleTinkerInApplicationLike(Application application, int tinkerFlags, boolean tinkerLoadVerifyFlag, long applicationStartElapsedTime, long applicationStartMillisTime, Intent tinkerResultIntent) {
super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, applicationStartMillisTime, tinkerResultIntent);
}

@Override
public void onBaseContextAttached(Context base) {
super.onBaseContextAttached(base);
}

@Override
public void onCreate() {
super.onCreate();
TinkerInstaller.install(this);
}
}
(五)打包 ,安装到手机
命名为old.apk

(六)修改代码并打包
命名为new.apk

(七)把两个包复制到 tinker-patch-cli-1.7.7.jar的相同目录下
java -jar tinker-patch-cli-1.7.7.jar -old old.apk -new new.apk -config tinker_config.xml -out output

(八)在output文件夹下找到patch_signed.apk,发送到你的系统根目录下(就是第四步的时候你引用的那个目录),我这里是粘贴到studio目录下,通过adb发送的。具体应用的时候肯定是从服务器下载到你的指定目录下的。
adb push ./tinkersimplein/build/outputs/apk/patch_signed_7zip.apk /storage/sdcard0/

(九)打开你之前安装到手机的apk(old.apk),执行你第四步代码,发现APP重启了,这时候你再打开就发现已经是new.apk里的内容了。而你发送的那个apk也消失了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值