Github url

stetho

by facebook

facebook /stetho

Stetho is a debug bridge for Android applications, enabling the powerful Chrome Developer Tools and ...

11.9K Stars 1.1K Forks Last release: over 1 year ago (v1.5.1) MIT License 580 Commits 12 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Stetho Build Status

Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature natively part of the Chrome desktop browser. Developers can also choose to enable the optional

dumpapp

tool which offers a powerful command-line interface to application internals.

Once you complete the set-up instructions below, just start your app and point your laptop browser to

chrome://inspect

. Click the "Inspect" button to begin.

Set-up

Download

Download the latest JARs or grab via Gradle:

groovy implementation 'com.facebook.stetho:stetho:1.5.1'

or Maven:

xml<dependency>
  <groupid>com.facebook.stetho</groupid>
  <artifactid>stetho</artifactid>
  <version>1.5.1</version>
</dependency>

Only the main

stetho

dependency is strictly required; however, you may also wish to use one of the network helpers:

implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'

or:

groovy implementation 'com.facebook.stetho:stetho-urlconnection:1.5.1'

You can also enable a JavaScript console with:

implementation 'com.facebook.stetho:stetho-js-rhino:1.5.1'

For more details on how to customize the JavaScript runtime see stetho-js-rhino.

Putting it together

Integrating with Stetho is intended to be seamless and straightforward for most existing Android applications. There is a simple initialization step which occurs in your

Application

class:

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

Also ensure that your

MyApplication

Java class is registered in your

AndroidManifest.xml

file, otherwise you will not see an "Inspect" button in

chrome://inspect/#devices

:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
        <application android:name="MyApplication" ...>
         </application>
</manifest>

This brings up most of the default configuration but does not enable some additional hooks (most notably, network inspection). See below for specific details on individual subsystems.

Enable network inspection

If you are using the popular OkHttplibrary at the 3.x release, you can use theInterceptors system to automatically hook into your existing stack. This is currently the simplest and most straightforward way to enable network inspection:

new OkHttpClient.Builder() .addNetworkInterceptor(new StethoInterceptor()) .build()

Note that okhttp 2.x will work as well, but with slightly different syntax and you must use the

stetho-okhttp

artifact (not

stetho-okhttp3

).

As interceptors can modify the request and response, add the Stetho interceptor after all others to get an accurate view of the network traffic.

If you are using

HttpURLConnection

, you can use

StethoURLConnectionManager

to assist with integration though you should be aware that there are some caveats with this approach. In particular, you must explicitly add

Accept-Encoding: gzip

to the request headers and manually handle compressed responses in order for Stetho to report compressed payload sizes.

See the [

stetho-sample

project](https://github.com/facebook/stetho/blob/master/stetho-sample) for more details.

Going further

Custom dumpapp plugins

Custom plugins are the preferred means of extending the

dumpapp

system and can be added easily during configuration. Simply replace your configuration step as such:

Stetho.initialize(Stetho.newInitializerBuilder(context) .enableDumpapp(new DumperPluginsProvider() { @Override public Iterable<dumperplugin> get() {
        return new Stetho.DefaultDumperPluginsBuilder(context)
            .provide(new MyDumperPlugin())
            .finish();
      }
    })
    .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(context))
    .build())
</dumperplugin>

See the [

stetho-sample

project](https://github.com/facebook/stetho/blob/master/stetho-sample) for more details.

Improve Stetho!

See the CONTRIBUTING.md file for how to help out.

License

Stetho is MIT-licensed. See LICENSE file for more details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.