Статьи

Android From Scratch: отчеты о сбоях Firebase

Сегодня Android-устройства используют более миллиарда человек, и тысячи присоединяются к ним каждый день. Убедиться, что все эти люди могут наслаждаться вашим приложением, нелегкая задача.

Характеристики устройств Android сильно различаются . Существуют различия в уровнях API, размерах экрана, плотности пикселей и доступности аппаратного датчика. Что еще хуже, производители оборудования широко настраивают Android, часто вводя небольшие причуды, уникальные для их устройств.

С таким большим количеством переменных в вашем приложении может произойти сбой на нескольких устройствах и в нескольких ситуациях. Собирая и анализируя информацию об этих сбоях, вы можете добавлять в свое приложение исправления, делающие его более надежным и более счастливым для пользователей.

В этом кратком совете я покажу вам, как использовать Firebase в качестве решения для отчетов о сбоях. Это бесплатно, предлагает множество полезных функций и легко интегрируется с любым приложением Android.

Каждый проект Android Studio, использующий Firebase, должен быть зарегистрирован в консоли Google Firebase . После входа в консоль нажмите кнопку « Создать новый проект» , чтобы начать процесс регистрации.

Экран приветствия консоли Firebase

В появившемся диалоговом окне дайте проекту соответствующее имя и укажите страну, в которой вы находитесь.

Создать диалог проекта

Затем нажмите кнопку « Добавить Firebase в ваше приложение для Android» .

Экран выбора платформы

Теперь вам будет предложено ввести имя пакета приложения для Android. Убедитесь, что указанное вами значение соответствует имени пакета, используемого вашим проектом Android Studio.

Диалог конфигурации приложения

Наконец, нажмите кнопку Добавить приложение . Теперь ваш браузер должен автоматически начать загрузку файла с именем google-services.json , который содержит подробную информацию о конфигурации, такую ​​как идентификатор проекта Firebase, ключ API и идентификатор приложения, с учетом вашего приложения.

После завершения загрузки переместите файл в каталог приложения вашего проекта Android Studio.

Чтобы иметь возможность использовать Firebase в своем проекте Android Studio, вы должны добавить плагин Google Services Gradle в качестве зависимости в файле build.gradle верхнего уровня, который присутствует в корневом каталоге проекта.

1
2
3
4
5
buildscript {
  dependencies {
    classpath ‘com.google.gms:google-services:3.0.0’
  }
}

Кроме того, вы должны применить плагин Google Services Gradle. Поэтому добавьте следующую строку в конец файла build.gradle модуля app :

1
apply plugin: ‘com.google.gms.google-services’

Теперь вы можете добавить Firebase Crash Reporting SDK как зависимость compile .

1
compile ‘com.google.firebase:firebase-crash:9.4.0’

Это все, что вам нужно сделать. С этого момента Firebase будет автоматически генерировать отчет о сбое при каждом сбое вашего приложения.

Приложения аварийно завершают работу при обнаружении необработанных исключений или ошибок. Но как насчет тех исключений, которые перехватываются с помощью блоков try...catch ? Что ж, Firebase не будет сообщать о них автоматически, поскольку предполагает, что вы уже знаете о них. Тем не менее, иногда вы можете захотеть увидеть их в своих отчетах.

Чтобы создать отчет о сбое вручную, вы должны использовать метод FirebaseCrash.report() . В качестве единственного аргумента он ожидает объект Throwable . Поэтому вы обычно вызываете его внутри блока catch . В следующем фрагменте кода показано, как использовать его при обработке IOException :

1
2
3
4
5
6
try {
    FileInputStream is = new FileInputStream(«/non-existent/file»);
    int c = is.read();
} catch(IOException e) {
    FirebaseCrash.report(e);
}

Вот как выглядит отчет о сбое в консоли Firebase:

Экран отчетов о сбоях в консоли Firebase

Как вы можете видеть, подобные отчеты о сбоях группируются вместе, образуя кластер. Нажав на кластер и нажав кнопку View Details , вы можете просмотреть отдельные отчеты о сбоях, которые находятся внутри него.

Детали сбоев, включая трассировку стека

Хотя отчеты о сбоях Firebase включают в себя следы стека и множество диагностических данных, иногда вам может быть интересно узнать более подробные сведения об условиях, вызвавших сбой вашего приложения. Например, вы можете узнать точные значения некоторых важных локальных переменных.

Простой способ включить такие подробности в ваши отчеты — генерировать пользовательские сообщения журнала, используя метод FirebaseCrash.log() , который ожидает строку в качестве единственного аргумента.

Вот фрагмент кода, который генерирует пользовательское сообщение журнала:

1
FirebaseCrash.log(«This is a custom log message»);

Обратите внимание, что пользовательское сообщение журнала включается только в последующий отчет о сбое.

В консоли Firebase вы можете видеть сообщения журнала ближе к концу отчета о сбое.

Журнал сообщений в консоли Firebase

Сбои никогда не следует игнорировать, поскольку они приводят к тому, что пользователи теряют интерес к вашему приложению. Более того, они могут привести к потере данных. Используя такие сервисы, как Firebase, вы можете регулярно отслеживать ваше приложение на наличие сбоев и быстро загружать соответствующие исправления. Также хорошей идеей будет включить подробности об исправлениях в журнал изменений вашего приложения, чтобы ваши пользователи знали, что вы заботитесь о них!

Чтобы узнать больше об аварийных отчетах Firebase, вы можете обратиться к его официальной документации . Чтобы узнать больше о Firebase на Android и других связанных технологиях, ознакомьтесь с другими нашими учебниками!

  • Что нового в Android Studio 2.2?

  • Оптимизируйте мобильное приложение для Google

  • Android с нуля: сервисы Google Play