stetho调试框架(Android)

Stetho是Facebook提供的Android调试工具,允许开发者通过Chrome的inspect功能进行网络、数据库、布局等调试。它包括网络抓包、数据库查看、布局层级检查等功能,并可通过Javascript Console与App交互。在Android项目中添加依赖,初始化Stetho并在Application中设置拦截器即可开始使用。调试时,通过Chrome的chrome://inspect连接设备并选择应用进程进行查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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项目结构

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值