¿Cómo detectar las causas de congelamiento de la aplicación cuando la aplicación regresa del estado de pausa?

Mi aplicación se enfrenta a un comportamiento realmente extraño:

La aplicación se inicia normalmente;Dejo la aplicación para otra o regreso a la pantalla de inicio del teléfono;Cuando intento volver a la instancia de la aplicación anterior, se cuelga hasta que aparece "La aplicación no responde, ¿la fuerza a cerrar?";

Sé que parece un problema de pérdida de memoria o de bucle atascado, pero este comportamiento es completamente aleatorio (a veces realizo los pasos anteriores dos veces y obtengo el problema, otras veces lo hago como diez veces hasta que obtengo el error). No se lanza ninguna excepción en el logcat. En el Monitor, la memoria alocada nunca explota y se mantiene por debajo de la memoria libre. He usado el analizador de memoria y nada extraño se muestra en el informe.

Ya he notado que cuando uso los hilanderos del cargador en mi Actividad, la cantidad de veces que necesito realizar los pasos anteriores para que la aplicación se bloquee disminuye, a veces hacerlos una vez hace que la aplicación se bloquee.

¿Alguien tiene una sugerencia de qué puedo hacer para descubrir qué podría estar causando este problema?

Gracias.

EDITAR

Este comportamiento puede ocurrir en cualquiera de las actividades de la aplicación, Logcat y el código se pueden encontrar a continuación:

Todas mis actividades son descendientes de esta plantilla:

public abstract class ActivityTemplate extends AppCompatActivity {

    private Boolean isRunning = Boolean.TRUE;

    private ToolbarManager mToolbarManager;
    private ActivitySetup mSetup;

    public abstract ActivitySetup setUpActivity();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mToolbarManager = new ToolbarManager();
        mSetup = setUpActivity();
        setContentView(mSetup.getContentView());
        ButterKnife.bind(this);
        prepareToolbar();
        registerForEvents();
        this.startResources();
    }

    private void prepareToolbar() {
        if (mSetup.getHasToolbar()) {
            mToolbarManager.initToolbar(this, mSetup.getTitle(), R.id.toolbar, R.color.textPrimary);
            if (mSetup.getDefaultReturnBehavior()) {
                mToolbarManager.setNavigationReturnBehavior();
            }
            mToolbarManager.prepareNavigationBehavior(mSetup.getNavigationIcon(), mSetup.getOnNavigationItemClicked());
        }
    }

    public void startResources() {
    }

    @Override
    public void onDestroy() {
        this.unregisterForEvents();
        super.onDestroy();
    }

    @Override
    protected void onPause() {
        super.onPause();
        this.isRunning = Boolean.FALSE;
    }

    @Override
    protected void onResume() {
        super.onResume();
        this.isRunning = Boolean.TRUE;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }

    public void registerForEvents() {
        Map<EventCatalog, TaskExecutor> executors = this.setEventHandlers();
        if (null != executors && executors.size() > 0) {
            for (EventCatalog event : executors.keySet()) {
                NotificationCenter.RegistrationCenter.registerForEvent(event, executors.get(event));
            }
        }
    }

    public void unregisterForEvents() {
        Map<EventCatalog, TaskExecutor> executors = this.setEventHandlers();
        if (null != executors && executors.size() > 0) {
            for (EventCatalog key : executors.keySet()) {
                NotificationCenter.RegistrationCent,er.unregisterForEvent(key, executors.get(key));
            }
        }
    }

    public boolean isRunning() {
        return this.isRunning;
    }

    public Toolbar getToolbar() {
        return mToolbarManager.getToolbar();
    }

    public Map<EventCatalog, TaskExecutor> setEventHandlers() {
        return null;
    }
}



06-13 10:39:11.258 25215-25271/br.com.gogame I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I3193f6e94a)
                                                               OpenGL ES Shader Compiler Version: E031.28.00.02
                                                               Build Date: 10/09/15 Fri
                                                               Local Branch: mybranch15039904
                                                               Remote Branch: quic/LA.BF.1.1.3_rb1.2
                                                               Local Patches: NONE
                                                               Reconstruct Branch: NOTHING
    06-13 10:39:11.274 25215-25271/br.com.gogame I/OpenGLRenderer: Initialized EGL, version 1.4
    06-13 10:39:11.315 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.315 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.601 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.601 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.640 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.640 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:20.864 25215-25241/br.com.gogame E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/br.com.gogame-1/base.apk"],nativeLibraryDirectories=[/data/app/br.com.gogame-1/lib/arm, /data/app/br.com.gogame-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
    06-13 10:39:25.202 25575-25575/br.com.gogame:background_crash E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.android.gms.crash.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/br.com.gogame-1/base.apk"],nativeLibraryDirectories=[/data/app/br.com.gogame-1/lib/arm, /data/app/br.com.gogame-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
    06-13 10:39:25.239 25575-25575/br.com.gogame:background_crash D/ChimeraCfgMgr: Reading stored module config
    06-13 10:39:25.299 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Considering local module com.google.android.gms.crash:0 and remote module com.google.android.gms.crash:2
    06-13 10:39:25.299 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Selected remote version of com.google.android.gms.crash, version >= 2
    06-13 10:39:25.312 25575-25575/br.com.gogame:background_crash W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi-v7a
    06-13 10:39:25.312 25575-25575/br.com.gogame:background_crash W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi
    06-13 10:39:25.313 25575-25575/br.com.gogame:background_crash D/ChimeraFileApk: Primary ABI of requesting process is armeabi-v7a
    06-13 10:39:25.314 25575-25575/br.com.gogame:background_crash D/ChimeraFileApk: Classloading successful. Optimized code found.
    06-13 10:39:25.334 25575-25575/br.com.gogame:background_crash I/FirebaseCrashReceiverServiceImpl: FirebaseCrashReceiverServiceImpl created by ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_chimera/m/00000002/DynamiteModulesC_GmsCore_prodmnc_xxhdpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi-v7a, /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi, /vendor/lib, /system/lib]]]
    06-13 10:39:25.340 25575-25575/br.com.gogame:background_crash D/FirebaseCrashReceiverServiceImpl: onCreate
    06-13 10:39:25.345 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Considering local module com.google.android.gms.flags:0 and remote module com.google.android.gms.flags:1
    06-13 10:39:25.345 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Selected remote version of com.google.android.gms.flags, version >= 1
    06-13 10:39:25.379 25575-25575/br.com.gogame:background_crash I/FirebaseCrashSenderServiceImpl: FirebaseCrashSenderServiceImpl created by ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_chimera/m/00000002/DynamiteModulesC_GmsCore_prodmnc_xxhdpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi-v7a, /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi, /vendor/lib, /system/lib]]]
    06-13 10:39:25.379 25575-25575/br.com.gogame:background_crash D/FirebaseCrashSenderServiceImpl: onCreate
    06-13 10:40:46.438 25215-25215/br.com.gogame D/FirebaseApp: Notifying background state change listeners.
    06-13 10:40:46.469 25215-25271/br.com.gogame E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9fb34d0
    06-13 10:40:47.348 25215-26924/br.com.gogame I/DynamiteModule: Considering local module com.google.android.gms.tagmanager:1 and remote module com.google.android.gms.tagmanager:2
    06-13 10:40:47.348 25215-26924/br.com.gogame I/DynamiteModule: Selected remote version of com.google.android.gms.tagmanager, version >= 2
    06-13 10:40:47.428 25215-25215/br.com.gogame D/FirebaseApp: Notifying background state change listeners.
    06-13 10:40:47.738 25215-26924/br.com.gogame W/GoogleTagManager: Tag Manager's event handler WILL NOT be installed (no container loaded)
    06-13 10:40:48.273 25215-25271/br.com.gogame E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9f87b18
    06-13 10:40:48.296 25215-25215/br.com.gogame D/FirebaseApp: Notifying background state change listeners.
06-13 10:44:08.361 25215-25221/br.com.gogame I/art: Thread[2,tid=25221,WaitingInMainSignalCatcherLoop,Thread*=0xb9ce2a10,peer=0x12d270a0,"Signal Catcher"]: reacting to signal 3
06-13 10:44:08.713 25215-25221/br.com.gogame I/art: Wrote stack traces to '/data/anr/traces.txt'
EDITAR 2

Parece que este problema está relacionado con el uso de Firebase y los Servicios de Google, sin embargo, necesito ambos en mi aplicación. La forma en que los estoy usando es:

En la parte superior del archivo gradle: classpath 'com.google.gms: google-services: 3.0.0'

En mi archivo gradle de la aplicación:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    dexOptions {
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        applicationId "br.com.gogame"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'

    // GOOGLE LIBRARIES
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile 'com.android.support:cardview-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    compile 'com.google.guava:guava:18.0'
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.google.dagger:dagger:2.1'
    compile 'com.android.volley:volley:1.0.0'

    // APACHE LIBRARIES
    compile 'org.apache.httpcomponents:httpmime:4.0-alpha3'

    // OWN THIRD LIBRARIES
    compile 'br.com.instachat:emoji-library:1.0.6'
    compile 'br.com.edsilfer:kiwi:1.0.8'

    // THIRD PART LIBRARIES
    compile 'com.mikhaellopez:circularimageview:2.0.2'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.github.vajro:MaterialDesignLibrary:1.6'
    compile 'com.ogaclejapan.smarttablayout:library:1.6.0@aar'
    compile 'com.github.rey5137:material:1.2.2'
    compile 'com.appyvet:materialrangebar:1.3'
    compile 'com.github.afollestad.material-dialogs:core:0.8.5.6@aar'
    compile 'com.wang.avi:library:1.0.5'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.mikepenz:aboutlibraries:5.6.5@aar'
    compile 'com.jakewharton:butterknife:8.0.1'
    compile 'com.wdullaer:materialdatetimepicker:2.3.0'
    compile 'javax.inject:javax.inject:1'
    compile 'com.github.satyan:sugar:1.5'
    compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.15'
    compile 'com.yalantis:ucrop:1.5.0'

    apt 'com.jakewharton:butterknife-compiler:8.0.1'
    apt 'com.google.dagger:dagger-compiler:2.1'

    provided 'javax.annotation:jsr250-api:1.0'
}

apply plugin: 'com.google.gms.google-services'

Respuestas a la pregunta(1)

Su respuesta a la pregunta