Tinker再探之TinkerPatch 平台 第二篇

上一篇Tinker再探之TinkerPatch 平台 第一篇,我们了解了TinkerPatch平台的基本配置和简单实现。这一篇我们看看额外功能。

  • 免费版功能:
    • 最大补丁大小:500k
    • APP/补丁数量无限制
    • 历史补丁保存
    • 在线参数
    • 实时监控

1.在线参数

我在后台新增了一个参数:


Tinker再探之TinkerPatch 平台 第二篇_第1张图片
新增参数

然后在 主页调用如下代码:

        TinkerPatch.with().fetchDynamicConfig(new ConfigRequestCallback() {
            @Override
            public void onSuccess(HashMap hashMap) {
                Log.e(TAG, "onSuccess: "+hashMap.get("name") );
            }
            @Override
            public void onFail(Exception e) {
            }
        }, false);
主页log

1.我觉得可以拿来屏蔽一些测试功能,比如要上线一个功能,不知道好不好,上线后新使用的用户反馈都不好,然后马上在线获取这个参数,发现这个参数为flase,就立即关闭这个功能。
2.还比如有的活动,每月几号举行,发现在线参数是几号就立即开放这个活动。

好处就是不用再发布新的补丁包就可以实现一些功能的显示与隐藏,但前提是这个功能你要已经写进去了,在线参数只起一个开关的作用。还有其他的功能,就看各自的发挥了。

2.实时监控

可以看看下发的成功率:


Tinker再探之TinkerPatch 平台 第二篇_第2张图片
我爱抄袭

3.图片补丁

我们把新增一张图片,并设置为logo。文字也修改一下:我是补丁logo图片

  • 实验一:打包失败,哦,想起来了,需要先清理一下


    Tinker再探之TinkerPatch 平台 第二篇_第3张图片
    清理

    然后补丁包就打好了,发布补丁包,并重启应用。
    发现里面的文字生效了:


    文字生效

    但是看logo,怎么还是无效。
  • 实验二:logo图片补丁无效,还是Android图标,更换主题,重启手机都无效


    image.png
  • 实验三:突然想起还有个圆图片设置:


    Tinker再探之TinkerPatch 平台 第二篇_第4张图片
    logo

    设置了圆图片也为新的 logo图片,重新打包再试更换主题,重启手机还是无效

  • 实验四:既然logo无法换,那我们看看是否支持图片资源的新增。我们在xml布局中新增一个ImageView,重新打补丁包并发布。重启应用,应该说是杀掉应用进程后,重启应用:

    Tinker再探之TinkerPatch 平台 第二篇_第5张图片
    新增ImageView

经过四次实验, 占时总结为:补丁无法修改logo图标,可以新增其他图片资源

图片资源大小为32.9KB,补丁包大小34.99KB,免费限制最大补丁包为500KB,所以我们如果想换一波小图标还是可以的。当然如果你的需求是通过补丁包来更新大量的代码和图片,那么需要购买标准版。说实话我觉得有点贵,如果价格降低到1/10的话,我...我还是用不起。

4.新增Activity

都知道热更新是不支持四大组件的,这次更新居然说可以新增Activity了。不得不说这个是一大改进。但也需要遵循条件:

  • a.基础包必须设置supportComponent=true
  • b.并且新增Activity的Exported属性必须为false。

我们新建一个Activity并设置其exported属性为false


然后主页面用一个按钮来打开它

        findViewById(R.id.btn_open).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this,NewTinkerPatchActivity.class));
            }
        });

重新打补丁包,并上传到TinkerPatch,然后发布。重新安装基准包,第一次启动,里面文字还是没变,杀掉应用后。里面文字变了,新增了图片,同时多了一个按钮,跳转到新的页面。确实打开了一个新的页面,说明确实实现了通过补丁包,新增了一个Activity的强大功能,效果如下:


杀进程,拉补丁

你可能感兴趣的:(Tinker再探之TinkerPatch 平台 第二篇)