рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╣реИред рдЦреЛрдЬ рдФрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рдЖрдкрдХреЛ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ:
- logcat рдХреНрд░реИрд╢ рд▓реЙрдЧ рд╕рд╣рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдЕрджрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
- рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ, рд╕реАрдкреАрдпреВ, рдореЗрдореЛрд░реА рдФрд░ рдмреИрдЯрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рди рднреА рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ, рдбреЗрдЯрд╛рдмреЗрд╕, рд╕рд╛рдЭрд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рдЖрджрд┐ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
ред рдЗрди рд╕рднреА рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдЙрдирдХреЗ minuses рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдХрдИ рдирд┐рд░реНрднрд░рддрд╛;
- рдЙрдкрдпреЛрдЧ рдХреА рдЬрдЯрд┐рд▓рддрд╛ - рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рднреА рдЙрдкрдХрд░рдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдХ, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдпрд╛ рдмреИрдХ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ред рдЖрдорддреМрд░ рдкрд░, рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдХрд┐рд╕реА рднреА рд▓реЙрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЦреАрдВрдЪрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ;
- рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдлреЛрди рдХрд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрдиреЗрдХреНрд╢рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдпреВрдПрд╕рдмреА рдХреЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рдлрд┐рд▓рд╣рд╛рд▓, рдореБрдЭреЗ рдПрдХ рднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред
Android рджреВрд░рд╕реНрде рдбрд┐рдмрдЧрд░
рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдЪрд╛рд░ рдЦрдВрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд▓реЙрдЧрд┐рдВрдЧ - рдХреНрд░реИрд╢ рд╕рд╣рд┐рдд рджреГрд╢реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЙрдЧ;
- рдбреЗрдЯрд╛рдмреЗрд╕ - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рджреЗрдЦрдирд╛ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛;
- рдиреЗрдЯрд╡рд░реНрдХ - рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВ;
- 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:
- ;
- рдПрдХ рд╕рд╛рде рдХрдИ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ;
- рди рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд;
- рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;
- рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиред
Github
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ GitHub рдкрд░ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ