本コンテンツは、投稿日時点での最新のAndroidアプリにおけるNew Relic Mobileエージェントのセットアップ手順を記載しています。最新の手順や詳細については、基本的にすべてドキュメントページに記載されているため、そちらをご参照ください。

 

アプリケーショントークン取得

まず最初に、アプリに組み込むためのトークンを以下の手順で取得してください。

  1. New Relicにログインし、画面左の「+ Add Data」をクリック。
  2. Add Dataの画面上部の検索ボックスにて、androidとタイプしていただくと、「Android」のタイルが表示されるので、それをクリック
  3. 続いて表示された画面で、アカウントを選択していただき、Continueをクリック
  4. 「Give your application a name」の項目にアプリ名を入力し、CreateをクリックするとNew Relic上でアプリが作成されます。
  5. 引き続きUI上で表示されるガイドに従って導入していただくこともできますが、本ブログの手順に従う場合は、一旦Add Dataの画面を抜けます。
  6. 左側メニューで「Mobile」の項目がある場合は、それを選択してください。ない場合は、左側メニューの「All Capabilities」をクリックしていただき、表示されたタイルのリストから「Mobile」を選択してください。
  7. すると先程作成したアプリケーションがリストに表示されています。
  8. 作成したアプリをクリックし、その中の「Application」をクリックし、表示された画面のtokenをコピーしてください。

 

Agentの導入

Android Studioで、対象のプロジェクトを開き、以下の手順に従いAgentを導入してください。

  1. プロジェクトレベルのbuild.gradleを開き、dependenciesブロックに、
    classpath "com.newrelic.agent.android:agent-gradle-plugin:AGENT_VERSION
     を追加してください。AGENT_VERSIONこちらから最新版を確認し、ご記載してください。)
  1. アプリレベルのbuild.gradleを開き、pluginsブロックに、id 'newrelic'を追加し、dependenciesブロックに、 
    implementation 'com.newrelic.agent.android:android-agent:AGENT_VERSION'
     を追記してください。AGENT_VERSIONは、プロジェクトレベルのbuild.gradleに記載したバージョンと同じバージョンを記載してください。)
  1. build.gradleを編集・保存後、Android Studioの編集画面に現れる「Sync Now」をクリックし、プロジェクトを同期させてください。
  2. AndroidManifest.xmlに以下の2つのパーミッションを追加してください。(すでに追加されている場合は不要です)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  1. Agentを起動するため、Default ActivityにAgent起動用のコードを追加してください。
    1. importブロックに import com.newrelic.agent.android.NewRelic; を追加
    2. onCreate()の関数内に、 NewRelic.withApplicationToken("GENERATED_TOKEN").start(this.getApplication()); を追加GENERATED_TOKENは、前述のアプリケーショントークンの取得で取得したトークンに置き換えてください。)
  1. これで、モバイルモニタリングが開始できるようになりました。試しにクラッシュが取得できることが確認できるよう、任意の箇所(例えば特定のボタンをクリックしたときに動作するコード)に、 NewRelic.crashNow() を追加し、アプリをビルドして実行、クラッシュを発生させ、アプリを再起動してみてください。数分以内に、one.newrelic.comのMobileの画面で、クラッシュを確認することができます。

Proguradの設定

Androidアプリをリリースビルドする場合、通常はProguardによる難読化が実施されます。Proguardを利用されている場合は、引き続き以下の設定を実施してください。(Dexguardをご利用の場合はこちらをご参照ください)

  1. アプリのルート(projectname/app)にnewrelic.propertiesという名前のファイルを作成し、com.newrelic.application_token=GENERATED_TOKENをファイルに書き込んで保存してください。GENERATED_TOKENは、前述のアプリケーショントークンの取得で取得したトークンに置き換えてください。)
  1. 以下の3行を、ご利用のProGuard設定ファイル(proguard.cfg、proguard-android.txt、proguard-rules.proなど)に追加してください
-keep class com.newrelic.** { *; }
-dontwarn com.newrelic.**
-keepattributes Exceptions, Signature, InnerClasses, LineNumberTable, SourceFile, EnclosingMethod
  1. Apache HttpやOkHttpなどネットワークライブラリをご利用の場合、各ライブラリに対応するルールも追加してください。詳細は、こちらをご参照ください。

アプリ起動時間の取得設定

Android AgentのVersion 6.9.0以降では、「コールドタイム」、「ホットタイム」と呼ばれるアプリの起動時間を報告することができます。それらを取得するため、AndroidManifest.xmlに以下のようなproviderの設定を追加してください。

<application>

 <!-- make sure to provide unique authorities if apply to multiple apps on the same device -->
  <provider
     android:name="com.newrelic.agent.android.rum.contentprovider.NewRelicAppContentProvider"
     android:authorities="com.newrelic.android.agent.nrprovider.${applicationId}"
     android:initOrder="200"
     android:exported="false"/>
     
</application>

以上で基本的な設定は完了です。その他細かい設定の変更などは、以下の参考情報やドキュメントページをご参照ください。

その他参考情報

  1. Gradleプラグイン設定(releaseビルド以外でもmapファイルのアップロードを有効にするなど)
  2. Agentの設定や機能フラグの変更方法
  3. Android Instant Appsへの導入方法
  4. トラブルシューティング
  5. MobileAgentで収集されるデータの説明