Stetho alternatives and similar packages
Based on the "Debug" category.
Alternatively, view Stetho alternatives based on common mentions on social networks and blogs.
-
Android Debug Database
A library for debugging android databases and shared preferences - Make Debugging Great Again -
Linx
Lynx is an Android library created to show a custom view with all the information Android logcat is printing, different traces of different levels will be rendererd to show from log messages to your application exceptions. You can filter this traces, share your logcat to other apps, configure the max number of traces to show or the sampling rate used by the library. -
android-grid-wichterle
This app will show grid overlay over whole system which helps you to verify your excellent app design. -
Under the Hood
Under the Hood is a flexible and powerful Android debug view library. It uses a modular template system that can be easily extended to your needs, although coming with many useful elements built-in. -
Android Snooper
Android library to record the network calls through the interceptor mechanism of the http clients. -
AndroidMiniDebugger
A small tool to log your application inside your application with a floating UI component -
AppSpector
Remote Android and iOS debugging and data collection service. You can debug networking, logs, SQLite and mock device's geo location.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Stetho or a related project?
README
Stetho
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:
implementation 'com.facebook.stetho:stetho:1.5.1'
or Maven:
<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:
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](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 OkHttp library at the 3.x release, you can use the Interceptors 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](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())
See the [stetho-sample
project](stetho-sample) for more details.
Improve Stetho!
See the [CONTRIBUTING.md](CONTRIBUTING.md) file for how to help out.
License
Stetho is MIT-licensed. See LICENSE file for more details.
*Note that all licence references and agreements mentioned in the Stetho README section above
are relevant to that project's source code only.