Pluto es un depurador en el dispositivo para aplicaciones de Android, que ayuda a inspeccionar solicitudes / respuestas HTTP, capturar fallas y ANR, y manipular datos de aplicaciones sobre la marcha.
Viene con una interfaz de usuario para monitorear y compartir información, así como API para acceder y usar esa información en su aplicación.
Integre Plutón en su aplicación
Agregar dependencias de Gradle
Plutón se distribuye a través mavenCentral. Para usarlo, debe agregar la siguiente dependencia de Gradle al archivo build.gradle del módulo de la aplicación de Android.
Nota: agregue la variante plutón y la variante plutón-no-op para aislar a Plutón de las versiones de lanzamiento.
dependencies {
debugImplementation 'com.mocklets:pluto:LATEST_VERSION'
releaseImplementation'com.mocklets:pluto-no-op:LATEST_VERSION'
}
Inicializar Plutón
Ahora, para comenzar a usar Plutón, inicialice el SDK de Pluto desde la clase de aplicación pasándole el contexto.
Pluto.initialize(context)
Agregue el interceptor de Plutón
Para depurar solicitudes / respuestas HTTP, conecte PlutoInterceptor a su OkHttp Client Builder
val client = OkHttpClient.Builder()
.addInterceptor(PlutoInterceptor())
.build()
Establecer el controlador de excepciones global
Para detectar excepciones no detectadas en su aplicación, adjunte UncaughtExceptionHandler
a Plutón
Pluto.setExceptionHandler { thread, throwable ->
Log.d("Exception", "uncaught exception handled on thread: " + thread.name, throwable)
}
Escuche las ANR
Plutón puede capturar y almacenar posibles ANR que se produzcan en la aplicación. También puede escuchar estos ANR e informarlos a cualquier herramienta de informes de fallas como Firebase Crashlytics, Bugsnag, etc.
Pluto.setANRListener(object: ANRListener {
override fun onAppNotResponding(exception: ANRException) {
exception.printStackTrace()
PlutoLog.e("ANR", exception.threadStateMap)
}
})
Agregar registro de Plutón
Pluto le permite registrar y conservar la ruta del usuario a través de la aplicación y ayudar a depurarla sin necesidad de conectarse a Logcat.
PlutoLog.event("analytics", eventName, HashMap(attributes))
PlutoLog.d("debug_log", "button clicked")
PlutoLog.e("error_log", "api call falied with http_status 400")
PlutoLog.w("warning_log", "warning log")
PlutoLog.i("info_log", "api call completed")
Pero si está conectado a Logcat, PlutoLogs se comporta de manera similar a la clase Log, con una mejora para etiquetar el método y el nombre de archivo también. En Logcat, PlutoLogs se verá así.
D/onClick(MainActivity.kt:40) | debug_log: button clicked
E/onFailure(NetworkManager.kt:17) | error_log: api call falied with http_status 400
Establecer las propiedades de la aplicación
Plutón le permite almacenar información como el estado de la aplicación (como las configuraciones de la aplicación), las propiedades del usuario (como el correo electrónico, el perfil) y la huella digital del dispositivo (como el IMEI).
Se puede acceder a estos datos más tarde a través de la interfaz de usuario de depuración de Plutón. Este método se puede llamar varias veces y seguirá agregando datos.
Pluto.setAppProperties(hashMapOf(
"User id" to "2whdue-dn4f-3hr-dfhrhs",
"User email" to "john.smith@gmail.com"
))
Ahora reconstruya y ejecute su aplicación, recibirá una notificación de Plutón, úsela para ingresar a la interfaz de usuario de Plutón.
Contribución
Buscamos colaboradores, ayúdanos a mejorar Plutón.
Así es como puede ayudar
- Busque problemas marcados como
help wanted
- Al enviar un nuevo RP, asegúrese de que todas las pruebas pasen. Si cree que necesitamos nuevas pruebas, no dude en agregar nuevas pruebas.
Requisito previo
Para comenzar a trabajar en Plutón, debe bifurcar el proyecto y abrirlo en Android Studio / IntelliJ IDEA.
Antes de confirmar, le sugerimos que instale los ganchos de confirmación previa con el siguiente comando:
Esto asegurará que su código esté validado contra ktLint
Y detekt
antes de cada compromiso. El comando se ejecutará automáticamente antes de clean
tarea, por lo que debe tener instalado el gancho de confirmación previa.
Antes de enviar un PR, realice:
Esto creará la biblioteca y se asegurará de que se realicen sus comprobaciones de CI.
Gracias
Muchísimas gracias
Licencia
Copyright 2021 Graylattice Communications Private Limited.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.