Android - 接入 Firebase Analytics 和 Crashlytics

1,598 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情

接入 firebase 需要科学上网,接入的 app 也需要科学上网

什么是 Firebase ?

Firebase is an app development platform that helps you build and grow apps and games users love. Backed by Google and trusted by millions of businesses around the world. 译:Firebase是一个应用程序开发平台,可帮助您构建和发展应用程序和游戏用户喜欢的游戏。由Google的支持,并受到世界各地数百万企业的信任。

image.png

它是一个帮助开发者让应用变得更好的平台。其中 Google Analytics 和 Crashlytics 如同国内 友盟,Bugly 功能一样,其中更有 Events 事件体系如同神策埋点等。

它是免费的,只有部分功能收费,但对于刚起步的团队和个人来说,Firebase 平台不乏是最合适的选择。

Firebase 文档

Android 接入文档

一、需要一个 Google 账号

自行科学上网注册

二、创建项目

进入 Firebase 控制台 选择创建项目

WX20220504-232052@2x.png

1、输入项目名称

这里我填写的 Test, 下方 test-905e5 可以点击编辑一个通用格式的二项目名称代码

WX20220504-232224@2x.png

选中接收条款和我确认用途,然后点击继续

2、点击继续即可

Google Analytics 可以帮助我们分析用户,崩溃,事件等等

WX20220504-232213@2x.png

3、选择分析位置

国家是看业务需求,选择哪个国家 firebase 就会匹配最近的服务器,增加响应小绿

WX20220504-232804@2x.png

4、点击创建项目

等待项目创建完成即可

WX20220504-232844@2x.png WX20220504-232850@2x.png

5、项目创建完成,添加应用

WX20220504-232906@2x.png

三、添加应用

点击 iOS 安卓机器人 和 Web 图标来添加应用,下面以 安卓 为例

1、填写应用信息

WX20220504-234125@2x.png 1、填写包名 2、填写应用别名和 SHA-1 可选项 3、点击转圈(下一步)

2、下载 google-services.json 文件 必须下载!必须下载!必须下载!

点击下一步 WX20220504-234135@2x.png

3、 添加 Firebase SDK

如图添加代码到 project 下 gradle 文件内。 下载的 google-services.json 文件放在 app 目录下,与 build.gradle 同级。firebase 插件会检测这个 json 文件 WX20220504-234156@2x.png

4、添加依赖到 app 下的 build.gradle

WX20220504-234338@2x.png

5、点击前往控制台

WX20220504-234347@2x.png

四、控制台

左上角红框 可以切换项目 中间红框可以在此项目添加多个应用 下方红框必须等待 App 接入 Firebase SDK 成功后打开app,并且科学上网,firebase 会上报到控制台 WX20220504-234634@2x.png

五、接入后运行app可以会出现编译不过,需要排除文件如下,缺啥填啥

app 下 build.gradle android 标签下

packagingOptions {
    exclude 'project.properties'
    exclude 'META-INF/INDEX.LIST'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/ASL2.0'
}

六、接入 firebase 的 Crashlytics

Firebase Crashlytics 是一个轻量级的实时崩溃报告解决方案,可帮助您对影响应用质量的稳定性问题进行跟踪、确定优先解决顺序并加以修复。 Crashlytics 会对崩溃进行智能分组并突出显示导致这些崩溃的环境因素,从而为您节省问题排查的时间。

Firebase Crashlytics 文档

添加依赖到 app 下的 build.gradle

implementation 'com.google.firebase:firebase-crashlytics-ktx' 

添加插件到 project 下的 build.gradle

// Add the Crashlytics Gradle plugin
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1' 

添加plugin到 app 下的 build.gradle

 // Apply the Crashlytics Gradle plugin
apply plugin: 'com.google.firebase.crashlytics' 

这就完事儿啦。

为 Crashlytics 设置用户标识
Firebase.crashlytics.setUserId("user123456789")

当用户清除时可以设置为空。

在 Crashlytics 信息中心内获取便于用户理解的崩溃报告

添加混淆规则

-keepattributes SourceFile,LineNumberTable        # Keep file names and line numbers.
-keep public class * extends java.lang.Exception  # Optional: Keep custom exceptions.

添加 mapping 上传规则到 app 下 build.gradle 的 android 标签下 如果想要测试环境或正式环境不上传 可自行注释下方两个 if 条件

// 屏蔽 task (uploadCrashlyticsMappingFileRelease)
gradle.taskGraph.whenReady {
    tasks.each { task ->
        if (task.name.contains("uploadCrashlyticsMappingFileRelease")) {
            task.enabled = false
        }
        if (task.name.contains("uploadCrashlyticsMappingFileDebug")) {
            task.enabled = false
        }
    }
}

如果有测试环境和正式环境需要不同 firebase 的话可按下图配置 src 下分别创建 debug 和 release 文件夹,将对应环境的 json 文件放置其中即可

8551654695710_.pic.jpg

其他的配置可查阅文档:Firebase Crashlytics 文档