stetho调试框架(Android)

 

stetho调试框架(Android)

一、概述

二、基本使用

三、Demo关键代码(除掉环境配置)

四、调试结果并进行查看

五、容易出现的坑

六、Demo项目结构


 

stetho调试框架(Android)

一、概述

stetho是Facebook开源的一个Android调试工具,通过Stetho,开发者可以使用chrome的inspect功能,对Android应用进行调试和查看。

项目地址:https://github.com/facebook/stetho

stetho提供的功能主要有:

1、Network Inspection:网络抓包,如果你使用的是当前流行的OkHttp或者Android自带的 HttpURLConnection,你可以轻松地在chrome inspect窗口的network一栏抓到所有的网络请求和回包;

2、Database Inspection:数据库查看;

3、View Hierarchy:布局层级查看,免去使用查看布局边界的花花绿绿带来的痛苦和卡顿,而且能看到每个view和layout的各类属性;

4、Dump App:命令行拓展,构造了一个命令行与Android App的交互通道,在命令行输入一行命令,App可以收到并且在命令行上进行反馈输出;

5、Javascript Console:Javascript控制台,在inspect的console窗口,输入Javascript可以直接进行Java调用。使用这个功能,得先引入facebook/stethostetho-js-rhino和mozilla/rhino

二、基本使用

1、初始化Stetho

首先引入在安卓项目中引用必要的依赖包,可以使用gradle,也可以直接下载jar包。

compile 'com.facebook.stetho:stetho:1.3.1'
compile 'com.facebook.stetho:stetho-okhttp3:1.3.1'
compile 'com.squareup.okhttp3:okhttp:3.2.0'

需要注意的是如果使用Javascript Console需要额外引入facebook/stethostetho-js-rhino和mozilla/rhino。

2、在Application类中完成初始化

public class MyApplication extends Application {
    public void onCreate() {
        super.onCreate();
        Stetho.initializeWithDefaults(this);
    }
}

3、设置StethoInterceptor拦截器

OkHttpClient okHttpClient =new OkHttpClient.Builder()
        .addNetworkInterceptor(new StethoInterceptor())
        .build();

4、其他

adb方式连接到设备

运行debug模式的app

在Chrome浏览器地址栏中输入chrome://inspect

选择需要inspect的应用进程 

三、Demo关键代码(除掉环境配置)

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void requestNet(View view)
    {
        new Thread(){
            @Override
            public void run() {
                super.run();
                doNet();
            }
        }.start();

    }
    public void doNet()
    {

        String url = "http://www.baidu.com";
        OkHttpClient okHttpClient =new OkHttpClient.Builder()
                .addNetworkInterceptor(new StethoInterceptor())
                .build();
        final Request request = new Request.Builder()
                .url(url)
                .get()//默认就是GET请求,可以不写
                .build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.d("testNet", "onFailure: ");
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Log.d("testNet", "onResponse: " + response.body().string());
            }
        });
    }

}

四、调试结果并进行查看

1、初始界面

2、查看App的布局

3、网络诊断

4、数据库、sp文件查看

5、其他高级功能(不详述,通常用的较少)

Javascript Console

Dump App

五、容易出现的坑

调试某应用时第一次必须翻墙(往后就不用翻墙了),否则什么也看不到。

六、Demo项目结构

猜你喜欢

转载自blog.csdn.net/u010375903/article/details/81141454