Tinker再探之TinkerPatch 平台 第二篇

2019-07-16  本文已影响0人  Small_Cake

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


1.在线参数

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


新增参数

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

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

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

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

2.实时监控

可以看看下发的成功率:


我爱抄袭

3.图片补丁

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

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

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

4.新增Activity

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

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

<activity android:name=".NewTinkerPatchActivity" android: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的强大功能,效果如下:


杀进程,拉补丁
上一篇 下一篇

猜你喜欢

热点阅读