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

Database

Network

AndroidRemoteDebugger.init(applicationContext)
. AndroidRemoteDebugger.Builder
:
AndroidRemoteDebugger.init(
new AndroidRemoteDebugger.Builder(applicationContext)
.enabled(boolean)
.disableInternalLogging()
.disableJsonPrettyPrint()
.disableNotifications()
.excludeUncaughtException()
.port(int)
.enableDuplicateLogging()
.enableDuplicateLogging(new Logger() {
@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()
.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