Android 응용 프로그램에서 Firebase의 crash와 analytics를 시도합니다.

11889 단어 AndroidFirebase
5/20(금) 개최 Gotanda.mobile #1 발표 내용 +α하계.

개요: Firebase


약 2년 전 구글이 인수한 MBaaS.현재 진행 중인 Google I/O 2016에서는 Analytics 등의 기능이 추가되었습니다.특히 Push 기능이 무료이며 무제한 사용도 화제가 되고 있다(내 생각에).
이번에는 그 중에서crash와analytics의 일부분을 설치하여 가져오는 방법을 총괄하였다.왜 화제의push(notification)가 아닌지 말하자면, 조사 총결산할 시간이 없기 때문이다.

배치


새 항목


https://console.firebase.google.com/,“CREATE NEW PROJECT”
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
이번에는 시도하지 않았지만 구글 개발자 콘솔이 만든 프로젝트도 가져올 수 있다.

프로젝트에 응용 프로그램 등록


물론 사용하는 프로그램을 등록하지 않으면 각종 기능을 사용할 수 없다.추가 응용 프로그램에서 등록합니다.

인증서의 SHA1 입력에는 문턱이 느껴지지만 이번에는 crash와 analytics만 있기 때문에 입력할 필요가 없습니다.

응용 프로그램에서 라이브러리 가져오기


구글 플레이 서비스를 공용하는 부분도 있는 것 같아서 구글 플레이 서비스를 추가하면서 라이브러리를 가져옵니다.
(project)/build.gradle
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'

        // これを追加します
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
(project)/(app)/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' // これを追加

// ...

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'

    compile 'com.google.firebase:firebase-core:9.0.0'  // analyticsを実装
    compile 'com.google.firebase:firebase-crash:9.0.0' // crashを実装
}
Firebase는 사용하는 기능에 따라 추가되는 저장소가 다릅니다.공식 문서의'가용libraries'를 참고하여 필요한 저장소를 추가합니다.
https://firebase.google.com/docs/android/setup#add_the_sdk

실시


Analytics 구현


analytics 창설FirebaseAnalytics의 실례, 거기서 이벤트 발송 등을 실현합니다.
현재 Google Analytics는 화면, 차원, 지표 같은 것을 설정하지 않았습니다(사용자 속성이 있는 설정).
그래서 디테일을 보려면 구글 애널리틱스와 함께 사용해야 한다.
MainActivity.java
public class MainActivity extends AppCompatActivity {

    private FirebaseAnalytics mFirebaseAnalytics;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

        // ユーザープロパティの設定
        mFirebaseAnalytics.setUserProperty("key", "value");
    }

    // ...
    private void onButtonClick() {
        // イベントの送信
        Bundle params = new Bundle();
        params.putString(FirebaseAnalytics.Param.ITEM_ID, "10");
        params.putString(FirebaseAnalytics.Param.ITEM_NAME, "name");
        params.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "text");
        mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, params);
    }
이벤트는 Bundle을 보내는 형식으로 진행됩니다.어느 정도 파라미터 부분을 준비했지만 완전히 무시하고 자신의 형식으로 보낼 수도 있다.
MainActivity.java
    private void onButtonClick() {
        // イベントの送信
        Bundle params = new Bundle();
        params.putString("text_name", "logevent2");
        params.putString("text_data", "Hello Firebase Analytics");
        mFirebaseAnalytics.logEvent("send_text", params);
    }

analytics의 반응은 GA와 마찬가지로 반나절에서 다음날 정도가 필요하다는 인상을 준다.
각 이벤트 이름을 클릭하면 설정된 값을 볼 수 있지만 단독 형식으로 전송된 데이터의 상세한 상황은 볼 수 없습니다(오해일 수 있습니다).

※ 내용 섹션입니다.아까 출처로 말하자면 send_text 활동 이쪽에 표시되지 않았기 때문에 text_data에 어떤 데이터가 있는지 확인할 수 없습니다.

crash 구현


라이브러리를 설치할 때 완료해야 합니다.그래서 소스에 아무것도 필요 없어요.
그나저나 붕괴가 발생했을 때 보고서 발송용 서비스를 만들어 데이터를 보내는 동작인 것 같다.

Crashlytics와 마찬가지로 충돌 보고서를 보내거나 로그 정보를 쌓을 수도 있습니다.
MainActvity.java

// ログ情報のセット(送信ではない)
FirebaseCrash.log("Start Crash2");

// クラッシュレポートを送信する
FirebaseCrash.report(new Exception("Android non-fatal error"));
콘솔에 대한 반영은 1시간도 안 걸렸다.

console의crash 정보 화면입니다.FirebaseCrash.report() 전송된 데이터는 "비치명적"으로 표시됩니다.


각 충돌 정보에 대한 상세한 정보.솔직히 Crashlytics보다 예뻐요.(단말기 정보도 이쪽이 많죠.)

총결산


따라서 Firebase에서 빠르게 가져올 수 있는 analytics와crash를 소개합니다.
analytics를 진정으로 활용하려면 얻을 수 있는 정보가 미묘해지는 인상을 줄 수 있다.
crash는 현재 충분한 도입 문턱에 대한 장점도 강하다.
그렇긴 하지만 둘 다 다른 서비스의 힘을 버리지 않았기 때문에 (Crashlytics는closeissue를 소박하고 편리하게 할 수 있다) 당분간 기존의 서비스와 함께 운용하는 동시에 앞으로의 사용 방법을 결정하는 것이 옳다고 생각합니다.
도입 원가 자체가 가벼운 인상을 주기 때문에 일단 넣어봐도 되겠죠.

참고 자료

  • Firebase
  • Firebase(document)
  • Firebase at Google I/O 2016 - YouTube
  • 좋은 웹페이지 즐겨찾기