Depurador remoto Android - aplicativos Android de depuração remota

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


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:


  • ;
  • 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


All Articles