рдПрдВрдбреНрд░реЙрдЗрдб рд░рд┐рдореЛрдЯ рдбреАрдмрдЧрд░ - рд░рд┐рдореЛрдЯ рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╣реИред рдЦреЛрдЬ рдФрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рдЖрдкрдХреЛ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ:


  • logcat рдХреНрд░реИрд╢ рд▓реЙрдЧ рд╕рд╣рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдЕрджрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
  • рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ, рд╕реАрдкреАрдпреВ, рдореЗрдореЛрд░реА рдФрд░ рдмреИрдЯрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рди рднреА рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ, рдбреЗрдЯрд╛рдмреЗрд╕, рд╕рд╛рдЭрд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рдЖрджрд┐ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
ред рдЗрди рд╕рднреА рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдЙрдирдХреЗ minuses рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  • рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдХрдИ рдирд┐рд░реНрднрд░рддрд╛;
  • рдЙрдкрдпреЛрдЧ рдХреА рдЬрдЯрд┐рд▓рддрд╛ - рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рднреА рдЙрдкрдХрд░рдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдХ, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдпрд╛ рдмреИрдХ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ред рдЖрдорддреМрд░ рдкрд░, рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдХрд┐рд╕реА рднреА рд▓реЙрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЦреАрдВрдЪрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ;
  • рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдлреЛрди рдХрд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрдиреЗрдХреНрд╢рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдпреВрдПрд╕рдмреА рдХреЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рдлрд┐рд▓рд╣рд╛рд▓, рдореБрдЭреЗ рдПрдХ рднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред


Android рджреВрд░рд╕реНрде рдбрд┐рдмрдЧрд░


рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдЪрд╛рд░ рдЦрдВрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  • рд▓реЙрдЧрд┐рдВрдЧ - рдХреНрд░реИрд╢ рд╕рд╣рд┐рдд рджреГрд╢реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЙрдЧ;
  • рдбреЗрдЯрд╛рдмреЗрд╕ - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рджреЗрдЦрдирд╛ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛;
  • рдиреЗрдЯрд╡рд░реНрдХ - рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВ;
  • 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:


  • ;
  • рдПрдХ рд╕рд╛рде рдХрдИ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ;
  • рди рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд;
  • рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;
  • рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиред

Github


рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ GitHub рдкрд░ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ


All Articles