Stetho es una biblioteca de depuración de código abierto desarrollada por Facebook. Le permite utilizar herramientas de depuración de Chrome para solucionar problemas de tráfico de red, por lo que proporciona una experiencia de depuración rica e interactiva para los desarrolladores de Android. Stetho depura fácilmente y sin problemas las llamadas de red. Es un puente de depuración sofisticado para aplicaciones de Android. Aplicación de volcado de herramientas para desarrolladores de Chrome
Características de Stetho
- Stetho es una plataforma de depuración de código abierto.
- Proporciona una experiencia rica y altamente interactiva.
- Con la ayuda de Stetho, la depuración de aplicaciones nativas es muy sencilla.
- Le ofrece utilizar la herramienta de depuración de Google Chrome para diversas actividades.
- Proporciona inspección de jerarquía durante la depuración.
- Además, Stetho permite la administración de redes, bases de datos y más funciones interactivas.
- Stetho utiliza un socket web HTTP para enviar datos.
El problema
El problema con la depuración del tráfico de red mientras se desarrollan aplicaciones de Android, los problemas que enfrenta el depurador con las herramientas de depuración tradicionales se estropean y la inspección se vuelve muy compleja al cambiar los dispositivos.
La solución proporcionada por Stetho
La depuración es más confiable y fácil con la biblioteca Stetho porque usa la herramienta de depuración de Chrome que es compatible con web-socket y la usa para la depuración de red. Stetho automatizó la inspección de llamadas, por lo que se vuelve más importante para los desarrolladores de Android.
¿Cómo trabajar con la herramienta Chrome Dev?
Stetho utiliza un servidor HTTP web Socket que envía toda la información de depuración al navegador. Es accesible a través de:
cromo://inspeccionar
Implementación paso a paso
Paso 1: agregue la siguiente dependencia en el archivo build.gradle.
implementación ‘com.facebook.stetho:stetho-okhttp3:1.5.1’
Paso 2: registra tu clase en AndroidManifest.xml e inicialízala en la aplicación.
Java
import android.app.Application; import android.content.Context; import com.facebook.stetho.InspectorModulesProvider; import com.facebook.stetho.Stetho; import com.facebook.stetho.inspector.protocol.ChromeDevtoolsDomain; import com.facebook.stetho.okhttp3.StethoInterceptor; import com.facebook.stetho.rhino.JsRuntimeReplFactoryBuilder; import com.jakewharton.caso.OkHttp3Downloader; import com.squareup.caso.Caso; import okhttp3.OkHttpClient; public class Stetho extends Application { public OkHttpClient httpClient; @Override public void onCreate() { super.onCreate(); final Context context = this; if (BuildConfig.DEBUG) { // Create an InitializerBuilder Stetho.InitializerBuilder initializerBuilder = Stetho.newInitializerBuilder(this); // Enable Chrome DevTools initializerBuilder.enableWebKitInspector(new InspectorModulesProvider() { @Override public Iterable<ChromeDevtoolsDomain> get() { // Enable command line interface return new Stetho.DefaultInspectorModulesBuilder(context).runtimeRepl( new JsRuntimeReplFactoryBuilder(context) .addVariable("foo", "bar") .build() ).finish(); } }); // Use the InitializerBuilder to generate an Initializer Stetho.Initializer initializer = initializerBuilder.build(); // Initialize Stetho with the Initializer Stetho.initialize(initializer); // Add Stetho interceptor httpClient = new OkHttpClient.Builder().addNetworkInterceptor(new StethoInterceptor()).build(); } else { httpClient = new OkHttpClient(); } Caso caso = new Caso.Builder(this).downloader(new OkHttp3Downloader(httpClient)).build(); Caso.setSingletonInstance(caso); } }
O
Inicialice su biblioteca con una sola línea de código (por ejemplo):
Java
public class Applicationstetho extends Application { public void onCreate() { super.onCreate(); if(BuildConfig.DEBUG ){ Stetho.initializeWithDefault(this) } } }
Actualización de su archivo de manifiesto en su proyecto de Android:
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://geeksforgeeks.com/apk/res/android" package="com.geeksforgeeks.sthetosample"> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" android:name=".StethoSample"> ... </application> </manifest>
Paso 3: habilite la inspección de red.
El siguiente método es la forma más fácil y simple de habilitar la inspección de red cuando construye la instancia de okHttpClient:
okHttpClient.Builder()
.addNetworkInterceptor(EstetoInterceptor())
.construir()
¿Como revisar?
Inicie el emulador en el dispositivo. Luego abra chrome://inspect en Chrome y debería aparecer su dispositivo emulador, luego haga clic en inspeccionar para abrir una nueva ventana y haga clic en la pestaña de red para ver el tráfico de red.
Publicación traducida automáticamente
Artículo escrito por abhijat_sarari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA