Android Remote Debugger - تطبيقات Android لتصحيح الأخطاء عن بُعد

يعد التصحيح خطوة مهمة في تطوير البرمجيات. تتيح لك إصلاحات البحث والأخطاء تطوير منتجات عالية الجودة.


في هذه المقالة ، أريد أن أتحدث عن تصحيح أخطاء تطبيقات Android تمامًا. يوفر لنا Android Studio العديد من أدوات التنميط ، مثل:


  • logcat هي أداة لعرض سجلات التطبيق ، بما في ذلك استثناءات الأعطال. يمكن استخدامه في Android Studio وفي المحطة ، عبر ADB ؛
  • يعد Android Profiler أداة قوية تسمح لك بعرض جميع طلبات الشبكة ووحدة المعالجة المركزية والذاكرة واستخدام البطارية.

هناك أيضًا العديد من حلول الجهات الخارجية التي تسمح لك بعرض حركة مرور الشبكة وقواعد البيانات والتفضيلات المشتركة وما إلى ذلك.
كل هذه الأدوات لها مزايا وعيوب. تشمل سلبياتهم ما يلي:


  • العديد من التبعيات للأدوات المختلفة ؛
  • تعقيد الاستخدام - كقاعدة ، تركز جميع الأدوات على المطورين وغير مريح لأعضاء الفريق الآخرين ، على سبيل المثال ، المختبرين أو المحللين أو المطورين الخلفيين. عادة ، يجب على الأخير سحب مطوري Android لعرض أي سجلات ؛
  • اتصال إلزامي للهاتف بالكمبيوتر ، على سبيل المثال ، عبر كابل USB.

في الوقت الحالي ، لم أجد حلًا واحدًا من شأنه دمج أدوات تصحيح الأخطاء المختلفة والقضاء على المشكلات المذكورة أعلاه. لذلك ، قمت بتطوير الحل الخاص بي.


المصحح البعيد الروبوت


حلّي سهل الاستخدام للغاية ، لأنه يسمح لك بتصحيح التطبيق مباشرة في المستعرض ، دون توصيل جهاز 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:


  • ;
  • يتضمن العديد من أدوات التصحيح في وقت واحد ؛
  • لا تركز فقط على المطورين ؛
  • لا يتطلب توصيل جهاز Android بجهاز كمبيوتر للتشغيل ؛
  • سهل الاستخدام.

جيثب


يمكن العثور على تعليمات تفصيلية حول عمل المكتبة وتوصيلها على GitHub


All Articles