Android の概要

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

サポートタイムラインと代替手段の詳細については、こちらを参照してください。

App Center SDK ではモジュールアーキテクチャが使用されるため、サービスの一部またはすべてを使用できます。

App Center によって収集されたデータに関する情報は、 App Center SDK によって収集されたデータ一般的なデータ保護規則FAQ ページで確認できます。

App Center Analytics と App Center のクラッシュを使用するようにアプリで App Center Android SDK を設定し始めましょう。 App Center Distribute をアプリに追加するには、 App Center の配布に関するドキュメントを参照してください

1.前提条件

開始する前に、次の前提条件が満たされていることを確認します。

  • Android プロジェクトは Android Studio で設定されています。
  • Android バージョン 5.0 (API レベル 21) 以降を実行しているデバイスを対象としています。

2. App Center ポータルでアプリを作成してアプリ シークレットを取得する

App Center ポータルでアプリを既に作成している場合は、この手順をスキップできます。

  1. appcenter.ms に向かいます。
  2. サインアップまたはログインし、ページの右上隅にある [ 新しい追加 ] ボタンをクリックし、ドロップダウン メニューから [ 新しいアプリの追加 ] を選択します。
  3. アプリの名前と説明 (省略可能) を入力します。
  4. OS として [Android ] を選択し、プラットフォームとして [Java ] を選択します。
  5. [ 新しいアプリの追加] ボタンをクリックします。

アプリを作成したら、2 の下にある [はじめに] ページでアプリ シークレットを取得できます。SDK を起動します。 または、[ 設定] をクリックし、右上隅にある 3 つの垂直ドット をクリックし、[ アプリ シークレットのコピー ] を選択してアプリ シークレットを取得します。

3. App Center SDK モジュールを追加する

  1. プロジェクトのアプリ レベル の build.gradle ファイル (app/build.gradle) を開き、 の後 apply pluginに次の行を追加します。 プロジェクトに必要な依存関係を含めます。 このセクションでは、各 SDK モジュールを個別の依存関係として追加する必要があります。 App Center Analytics とクラッシュを使用する場合は、次の行を追加します。
dependencies {
    def appCenterSdkVersion = '5.0.4'
    implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
    implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"
}

注意

Android Gradle プラグインのバージョンが 3.0.0 より低い場合は、コンパイルで単語の実装を置き換える必要があります。

注意

jCenter サポートが終了したため、すべてのアセンブリが Maven Central リポジトリに移動されました。 jCenter から Maven Central への移行については、 このガイド に従ってください。 Maven Central には非推奨のモジュールは含まれていないことに注意してください。 プロジェクトに、非推奨の App Center SDK モジュールの依存関係がないことを確認します。

  1. Android Studio で Gradle 同期をトリガーしてください。

アプリケーションに SDK を統合したので、次は SDK を起動し、App Center を使用します。

4. SDK を起動する

4.1 start() メソッドを追加する

App Center を使用するには、使用するモジュールをオプトインする必要があります。 既定では、モジュールは開始されません。SDK の起動時に各モジュールを明示的に呼び出す必要があります。
App Center AnalyticsApp Center のクラッシュを使用するには、アプリの メイン アクティビティ クラスの onCreate-callback 内に次の行を挿入します。

AppCenter.start(getApplication(), "{Your App Secret}", Analytics.class, Crashes.class);
AppCenter.start(application, "{Your App Secret}", Analytics::class.java, Crashes::class.java)

警告

ソース コードにアプリ シークレットを埋め込むことはお勧めしません。

App Center サービスを個別に開始する必要がある場合は、次の手順を実行する必要があります。

  1. アプリ シークレットを構成または開始します。
  2. コードを複数回呼び出すことができる場合は、App Center が既に構成されているかどうかをチェックします。
  3. アプリ シークレットを使用せずに、必要なサービスを開始します。
AppCenter.configure(application, "{Your App Secret}");
if (AppCenter.isConfigured()) {
    AppCenter.start(Analytics.class);
    AppCenter.start(Crashes.class);
}
AppCenter.configure(application, "{Your App Secret}");
if (AppCenter.isConfigured()) {
    AppCenter.start(Analytics::class.java);
    AppCenter.start(Crashes::class.java);
}

アプリケーションへのエントリ ポイントが複数ある場合 (ディープ リンク アクティビティ、サービス、ブロードキャスト レシーバーなど)、アプリケーション カスタム クラスまたは各エントリ ポイントで を呼び出 start します。 後者の場合は、呼び出しの前に App Center が既に構成されているかどうかをチェックしますstart

if (!AppCenter.isConfigured())) {
  AppCenter.start(getApplication(), "{Your App Secret}", Analytics.class, Crashes.class);
}
if (!AppCenter.isConfigured()) {
  AppCenter.start(application, "{Your App Secret}", Analytics::class.java, Crashes::class.java)
}

4.2 プレースホルダーをアプリ シークレットに置き換える

テキストは、必ずアプリケーションの実際の値に置き換えてください {Your App Secret} 。 アプリ シークレットは、App Center ポータルの [はじめに] ページまたは [設定] ページにあります。

はじめに ページには、上記のコード サンプルとアプリ シークレットが含まれています。サンプル全体をコピーして貼り付けることができます。

上記の例は、 メソッドを使用 start() し、App Center Analytics と App Center のクラッシュの両方を含める方法を示しています。

2 つのサービスのいずれかを使用しない場合は、上記のメソッド呼び出しから対応するパラメーターを削除します。

start メソッドでパラメーターとして各モジュールを明示的に指定しない限り、その App Center サービスを使用することはできません。 さらに、API は start() アプリのライフサイクルで 1 回だけ使用できます。他のすべての呼び出しでは、コンソールに警告が記録され、最初の呼び出しに含まれるモジュールのみが使用できるようになります。

たとえば、 - App Center Analytics にオンボードするだけの場合は、次のように API 呼び出しを変更する start() 必要があります。

AppCenter.start(getApplication(), "{Your App Secret}", Analytics.class);
AppCenter.start(application, "{Your App Secret}", Analytics::class.java)

メソッドを挿入 start() すると、Android Studio によって必要な import ステートメントが自動的に提案されますが、クラス名が認識されないというエラーが表示された場合は、アクティビティ クラスの import ステートメントに次の行を追加します。

import com.microsoft.appcenter.AppCenter;
import com.microsoft.appcenter.analytics.Analytics;
import com.microsoft.appcenter.crashes.Crashes;
import com.microsoft.appcenter.AppCenter
import com.microsoft.appcenter.analytics.Analytics
import com.microsoft.appcenter.crashes.Crashes

SDK によって自動的に収集される分析とクラッシュのデータをポータルで視覚化するように設定されています。

両方のサービスのより高度な機能をカスタマイズして使用する方法については、 App Center AnalyticsApp Center のクラッシュ に関するドキュメントを参照してください。

アプリ内更新プログラムの使用を開始する方法については、 App Center の配布に関するドキュメントを参照してください。

5. バックアップ ルール (Android のみ)

注意

Android 6.0 (API レベル 23) 以降を対象とするアプリでは、自動バックアップが自動的に有効になります。 

注意

バックアップ規則を含むカスタム ファイルが既にある場合は、3 番目の手順に切り替えます。

自動バックアップを使用してデバイスに関する正しくない情報を取得しないようにする場合は、次の手順に従います。

5.1. Android 11 (API レベル 30) 以下の場合。

  1. res/xml フォルダー appcenter_backup_rule.xml ファイルを作成します。
  1. プロジェクトの AndroidManifest.xmlファイルを 開きます。 属性を android:fullBackupContent 要素に <application> 追加します。 appcenter_backup_rule.xml リソース ファイルを指している必要があります。
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. appcenter_backup_rule.xml ファイルに次のバックアップ規則を追加します。
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
      <exclude domain="sharedpref" path="AppCenter.xml"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
      <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
      <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
  </full-backup-content>

5.2. Android 12 (API レベル 31) 以降の場合。

  1. res/xml フォルダー appcenter_backup_rule.xml ファイルを作成します。
  1. プロジェクトの AndroidManifest.xmlファイルを 開きます。 属性を android:dataExtractionRules 要素に <application> 追加します。 appcenter_backup_rule.xml リソース ファイルを指している必要があります。
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. appcenter_backup_rule.xml ファイルに次のバックアップ規則を追加します。
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
    <cloud-backup>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </cloud-backup>
    <device-transfer>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </device-transfer>
</data-extraction-rules>