Android Remote Debugger - debugging aplikasi Android jarak jauh

Debugging adalah langkah penting dalam pengembangan perangkat lunak. Pencarian dan perbaikan bug memungkinkan Anda untuk mengembangkan produk berkualitas.


Pada artikel ini saya ingin berbicara tentang debugging persis aplikasi Android. Android Studio memberi kita berbagai alat profil, seperti:


  • logcat adalah alat untuk melihat log aplikasi, termasuk pengecualian macet. Ini dapat digunakan baik di Android Studio dan di terminal, melalui adb;
  • Android profiler adalah alat yang ampuh yang memungkinkan Anda untuk melihat semua permintaan jaringan, CPU, memori dan penggunaan baterai.

Ada juga banyak solusi pihak ketiga yang memungkinkan Anda untuk melihat lalu lintas jaringan, database, preferensi bersama, dll.
Semua alat ini memiliki kelebihan dan kekurangan. Minus mereka meliputi:


  • banyak ketergantungan dari berbagai alat;
  • kompleksitas penggunaan - sebagai aturan, semua alat difokuskan pada pengembang dan tidak nyaman untuk anggota tim lainnya, misalnya, penguji, analis, atau pengembang back-end. Biasanya, yang terakhir harus menarik pengembang android untuk melihat log apa pun;
  • Koneksi telepon wajib ke komputer, misalnya, melalui kabel 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:


  • ;
  • Termasuk beberapa alat debugging sekaligus;
  • berfokus tidak hanya pada pengembang;
  • tidak perlu menghubungkan perangkat Android ke komputer untuk operasi;
  • mudah digunakan.

Github


Instruksi terperinci untuk bekerja dan menghubungkan perpustakaan dapat ditemukan di GitHub


All Articles