Uno de los requisitos de proyectos recientes es contar la información anormal de la aplicación, y la información anormal debe notificarse al desarrollador en tiempo real, para que el desarrollador pueda captar la excepción en línea la primera vez y encontrar el problema en de manera oportuna en función de la anormalidad reportada por el cliente y posteriormente, a través del HotFix de Alibaba Cloud, realiza reparaciones oportunas en línea. Actualmente, las plataformas móviles de terceros más utilizadas en el mercado para el seguimiento de la calidad incluyen Umeng, Bugly, NetEase Cloud Capture y crashlytics. Entre ellos, los tres primeros son terceros para estadísticas de anomalías nacionales. Los desarrolladores nacionales utilizan más los tres primeros. Actualmente, he utilizado personalmente Umeng y Bugly. Ambos son de muy fácil acceso y proporcionan estadísticas de anomalías en segundo plano. Es todo muy claro.
Primero, echemos un vistazo al acceso de Bugly:
Registrar producto
- Acceso
Utilice QQ para iniciar sesión en el sitio web oficial de Bugly
- Mejorar la información del desarrollador
Complete la información del desarrollador antes de crear el producto: complete el correo electrónico, el ID de WeChat y el número de teléfono móvil según sea necesario para que pueda recibir actualizaciones del producto a tiempo y también nos facilita mantenernos en contacto con los desarrolladores en cualquier momento. .
- Crear aplicación
Agregue el nombre de la aplicación, seleccione la plataforma de la aplicación, el tipo de producto, el ícono del producto y la información de descripción según sea necesario.
Después de guardar, se creará correctamente.
Introducción a las funciones de la plataforma.
Una vez que la aplicación integre el SDK, podrá ver los datos de fallas y los datos de red informados por la aplicación en el sitio web.
Informes anormales
异常概览
Vea las estadísticas actuales en tiempo real, las tendencias de accidentes, las clasificaciones de accidentes y los 20 principales problemas de accidentes y otra información.
崩溃分析/卡顿分析/错误分析
Ver una lista de problemas reportados
问题详情
Ver detalles de los problemas reportados
高级搜索
Encuentre rápidamente anomalías que deben localizarse y analizarse en diversas condiciones
Importación de archivos de biblioteca
Bugly admite la integración automática y la integración manual. Si usa Gradle para compilar el Apk, se recomienda encarecidamente que utilice el método de acceso automático para configurar el archivo de la biblioteca.
Integre SDK y NDK simultáneamente
Agregue dependencias y configuraciones de propiedades en el archivo build.gradle del módulo:
android {
defaultConfig {
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
}
}
dependencies {
compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
}
La configuración para integrar Bugly SDK y NDK al mismo tiempo se muestra en la siguiente figura. Al actualizar Bugly SDK y NDK más adelante, solo necesita cambiar el número de versión en el script de configuración.
注意:自动集成时会自动包含Bugly SO库,建议在Module的build.gradle文件中使用NDK的“abiFilter”配置,设置支持的SO库架构。
Si Android Studio muestra el siguiente mensaje después de agregar "abiFilter" :
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
Luego agregue: en el archivo gradle.properties en el directorio raíz del proyecto :
android.useDeprecatedNdk=true
Configuración de parámetros
- Agregue permisos en AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
Nota: Si es necesario cargar su aplicación en
google play store
, debeREAD_PHONE_STATE
bloquear o eliminar permisos; de lo contrario, es posible que se elimine.
- Evite confundir Bugly agregando la siguiente configuración al archivo de ofuscación de Proguard:
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
La inicialización más simple
Obtenga el ID de la aplicación y copie el siguiente código en la clase de aplicación del proyecto onCreate(). Bugly detectará automáticamente el entorno y completará la configuración:
CrashReport.initCrashReport(getApplicationContext(), "注册时申请的APPID", false);
为了保证运营数据的准确性,建议不要在异步线程初始化Bugly。
El tercer parámetro es el interruptor del modo de depuración del SDK. Las características de comportamiento del modo de depuración son las siguientes:
- Salida del registro detallado del SDK de Bugly;
- Cada falla se informará de inmediato;
- Los registros personalizados se generarán en Logcat.
Se recomienda establecerlo en verdadero durante la fase de prueba y en falso durante el lanzamiento .
Además, Bugly2.0 y superiores también admiten la configuración de información de la aplicación a través de "AndroidManifest.xml". Si la información de la APLICACIÓN se configura en el código al mismo tiempo, la información configurada en el código prevalecerá en última instancia.
Agregue el elemento de configuración "metadatos" en la "Aplicación" de "AndroidManifest.xml":
<application
<!-- 配置APP ID -->
<meta-data
android:name="BUGLY_APPID"
android:value="<APP_ID>" />
<!-- 配置APP版本号 -->
<meta-data
android:name="BUGLY_APP_VERSION"
android:value="<APP_Version>" />
<!-- 配置APP渠道号 -->
<meta-data
android:name="BUGLY_APP_CHANNEL"
android:value="<APP_Channel>" />
<!-- 配置Bugly调试模式(true或者false)-->
<meta-data
android:name="BUGLY_ENABLE_DEBUG"
android:value="<isDebug>" />
</application>
不同于“android:versionName”,“BUGLY_APP_VERSION”配置的是Bugly平台的APP版本号。
El método de inicialización después de la configuración a través de "AndroidManifest.xml" es el siguiente:
CrashReport.initCrashReport(getApplicationContext());
Bugly lee "VersionName" del archivo "AndroidManifest.xml" como número de versión de forma predeterminada.
Notas MultiDex
Si se utiliza MultiDex, se recomienda multiDexKeepFile
colocar la clase Bugly en el Dex principal a través de la " " configuración de Gradle, etc. También se recomienda cargar activamente el dex no principal en Application
el método " " de la clase :attachBaseContext
public class MyApplication extends SomeOtherApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(context);
Multidex.install(this);
}
}
Lo anterior es el acceso a Bugly. Podemos escribir un error para hacer que el programa falle y podemos ver la información de error específica en el análisis de fallos de Bugly en aproximadamente un minuto. Entonces, ¿qué debemos hacer si queremos enviar esta información sobre fallas a los desarrolladores en tiempo real? Bugly proporciona una característica como se muestra en la figura:
Después de vincular WeChat aquí, Bugly contará las excepciones dentro de una hora y las enviará a la persona que vincula al usuario. Lo anterior es el proceso de informe de estadísticas de excepciones y acceso de Bugly. Si no lo comprende, puede dejarme un comentario. .