Android Remote Debugger - depuración remota de aplicaciones de Android

La depuración es un paso importante en el desarrollo de software. La búsqueda y la corrección de errores le permiten desarrollar productos de calidad.


En este artículo quiero hablar sobre la depuración exactamente de las aplicaciones de Android. Android Studio nos proporciona varias herramientas de creación de perfiles, como:


  • logcat es una herramienta para ver los registros de aplicaciones, incluidas las excepciones de bloqueo. Se puede usar tanto en Android Studio como en el terminal, a través de adb;
  • El generador de perfiles de Android es una herramienta poderosa que le permite ver todas las solicitudes de red, CPU, memoria y uso de la batería.

También hay muchas soluciones de terceros que le permiten ver el tráfico de red, bases de datos, preferencias compartidas, etc.
Todas estas herramientas tienen ventajas y desventajas. Sus desventajas incluyen lo siguiente:


  • muchas dependencias de varias herramientas;
  • Complejidad de uso: por regla general, todas las herramientas se centran en los desarrolladores y son inconvenientes para otros miembros del equipo, por ejemplo, probadores, analistas o desarrolladores de back-end. Por lo general, estos últimos tienen que atraer a los desarrolladores de Android para ver los registros;
  • Conexión obligatoria del teléfono a la computadora, por ejemplo, a través de un cable usb.

, . .


Android Remote Debugger


, , Android . :


  • Logging — , ;
  • Database — ;
  • Network — ;
  • SharedPreferences – SharedPreferences.


:


  • ;
  • ;
  • , http://xxx.xxx.x.xxx:8080. , (Wi-Fi LAN) Android ;
  • . .

:


Logging


logging.png

Database


database.png

Network


network.png


AndroidRemoteDebugger.init(applicationContext) . AndroidRemoteDebugger.Builder:


AndroidRemoteDebugger.init(
    new AndroidRemoteDebugger.Builder(applicationContext)        
        .enabled(boolean)    //  
        .disableInternalLogging()    //    Android Remote Debugger
        .disableJsonPrettyPrint()    //   json   `Logging`  `Network`
        .disableNotifications()    //      Android Remote Debugger
        .excludeUncaughtException()    //      
        .port(int)    //   ,   8080
        .enableDuplicateLogging()    //     `Logging`     logcat
        .enableDuplicateLogging(new Logger() {  // callback       `Logging`
            @Override
            public void log(int priority, String tag, String msg, Throwable th) {
            }
        })
        .build()
);

. - NanoHTTPD. . , , , 8080. . AndroidRemoteDebugger.Builder.


Logging


. , . , . .


AndroidRemoteDebugger.Log. . . , Logging . .


: AndroidRemoteDebugger.Log.d("tag", "message").


Timber ( Jake Wharton), :


class AndroidRemoteDebuggerTree extends Timber.Tree {
    @Override
    protected void log(int priority, @Nullable String tag, @NotNull String message, @Nullable Throwable t) {
        AndroidRemoteDebugger.Log.log(priority, tag, message, t);
    }
}

...

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Timber.plant(new Timber.DebugTree(), new AndroidRemoteDebuggerTree());
    }
}

Network


Network . . . Logging. HTTP . , . Logging, .


OkHttp3 NetLoggingInterceptor. , .


:


OkHttpClient client = new OkHttpClient.Builder()
    // other interceptors
    .addInterceptor(new NetLoggingInterceptor())
    .build();

Database


. . . 15 . , , . sql-.


SharedPreferences


SharedPreferences. , , . SharedPreferences . , .


Android Remote Debugger


build.gradle :


allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

build.gradle :


dependencies {
    implementation 'com.github.zerobranch:android-remote-debugger:1.0.0'
}


Android Remote Debugger:


  • ;
  • Incluye varias herramientas de depuración a la vez;
  • enfocado no solo en desarrolladores;
  • no requiere conectar un dispositivo Android a una computadora para su funcionamiento;
  • fácil de usar.

Github


Las instrucciones detalladas para trabajar y conectar la biblioteca se pueden encontrar en GitHub


All Articles