A depuração é uma etapa importante no desenvolvimento de software. As pesquisas e as correções permitem desenvolver produtos de qualidade.
Neste artigo, quero falar sobre a depuração exatamente de aplicativos Android. O Android Studio nos fornece várias ferramentas de criação de perfil, como:
- O logcat é uma ferramenta para visualizar logs de aplicativos, incluindo exceções de falha. Pode ser usado no Android Studio e no terminal, via adb;
- O Android Profiler é uma ferramenta poderosa que permite visualizar todas as solicitações de rede, CPU, memória e uso da bateria.
Também existem muitas soluções de terceiros que permitem visualizar o tráfego de rede, bancos de dados, preferências compartilhadas etc.
Todas essas ferramentas têm vantagens e desvantagens. Seus pontos negativos incluem o seguinte:
- muitas dependências de várias ferramentas;
- complexidade de uso - como regra, todas as ferramentas são focadas nos desenvolvedores e inconvenientes para outros membros da equipe, por exemplo, testadores, analistas ou desenvolvedores de back-end. Normalmente, os últimos precisam puxar os desenvolvedores do Android para visualizar os logs;
- Conexão obrigatória do telefone ao computador, por exemplo, através de um cabo 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:
- ;
- Inclui várias ferramentas de depuração ao mesmo tempo;
- focado não apenas em desenvolvedores;
- não requer conexão de um dispositivo Android a um computador para operação;
- fácil de usar.
Github
Instruções detalhadas para trabalhar e conectar a biblioteca podem ser encontradas no GitHub