如何将BlockCanary卡顿日志上传

2021-03-15 16:25:25 浏览数 (1)

在上一篇文章中呢,一文揭秘如何使用卡顿检测工具--BlockCanary。我们介绍了如何去检测卡顿的日志,我们封装的卡顿的日志的是放在了blockcanary 路径里,我们直接可以看到文件的,但是呢,有时候我们需要上上传到服务端,一个是便于管理,另外一个呢,我们可以以后做版本之间的对比之类的,那么我们应该怎么去上传呢,这里去讲下,我是如何做的上传的。

上传的做法可能有很多种的,比如开一个线程去扫描,并且上传,或者发生后,就立刻触发上传,也可以,根据我们的网络的状态去触发上传,笔者大概实现是去实现一个功能按钮去上传,其实都一样,都是要上传到服务端的,那么我们看看是应该怎么去实现呢。

首先呢,我在个人中心的布局页面呢,我去设计一个按钮。

代码语言:javascript复制
<Button
    android:id="@ id/blocksend"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/block_canary">
</Button>

然后,我们在对应的acivity去做按钮的监听事件。

代码语言:javascript复制
Button blockbutton=(Button) findViewById(R.id.blocksend);
blockbutton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        BlockSendServer blockSendServer=new BlockSendServer();
        blockSendServer.run();
    }
});

这里的BlockSendServer 是一个线程。代码如下

代码语言:javascript复制
package com.example.studayapp.until;

import java.io.File;

public class BlockSendServer extends  Thread{

    public void run(){
        sendBlockFile();
    }

    private void sendBlockFile() {
        String path="/blockcanary/";
        File file=new File(path);

        File[] s = file.listFiles();
        for (int i=0;i<s.length;i  ){
            if (s[i].isFile()){
            //上传文件
                sendfile(s[i]‍‍‍)‍

                //上完完成就删除
                s[i].delete();
            }
        }


    }

}

sendfile的方法可以自己去实现,这里没有较大的难度。然后点击上传就开始上传卡顿的日志的文件了,这里也可以做成批量上传的。可以根据自己的实际的业务需求去设计。我们在后台只需要去实现对应的文件上传的接口,并且讲上传的文件,进行处理。在上传的时候,我们可以上传设备和应用的信息到服务端,我们服务端,拿到信息,对于信息归类,最后数据存入到数据库,在前端做一个展示的页面即可。用于开发去搜索。

0 人点赞