リアルユーザーモニタリング (RUM) は、パフォーマンス、クラッシュ、無応答のリアルタイム追跡を含む、包括的なモバイルアプリケーションモニタリングを提供します。ここでは、Android アプリケーションに RUM SDK を統合する方法を説明します。
前提条件
SDK は Android 7.0 以降をサポートしています。
ステップ 1:SDK の統合
Maven 自動統合
Android Studio プロジェクトで、build.gradle ファイルに Maven 依存関係を追加して、最新の SDK バージョンをインポートします。
-
プロジェクトのルートディレクトリにある
build.gradleファイルにプラグイン依存関係を追加します。buildscript { repositories { mavenLocal() google() mavenCentral() gradlePluginPortal() } dependencies { // Alibaba Cloud ARMS RUM プラグイン依存関係をインポートします。 // 最新のプラグインバージョンをインポートします。最新の SDK バージョンの詳細については、Android SDK リリースノートを参照してください。 classpath "com.aliyun.rum:alibabacloud-android-rum-plugin:2.2.14" } } -
プロジェクトの app モジュールの
build.gradleファイルで、プラグインを有効化し、SDK 依存関係を追加します。// Alibaba Cloud ARMS RUM プラグインを有効化します。 apply plugin: "com.aliyun.rum" dependencies { // Alibaba Cloud ARMS RUM SDK をインポートします。 // 最新の SDK バージョンは次の URL から取得してください: // https://www.alibabacloud.com/help/arms/user-experience-monitoring/android-sdk-release-notes implementation("com.aliyun.rum:alibabacloud-android-rum-sdk:2.2.14") }
手動統合
-
SDK をダウンロードし、パッケージを解凍します。
.zip ファイルには、以下が含まれています:
-
libsフォルダー:必要な JAR パッケージと JNI ライブラリが含まれています。 -
repoフォルダー:必要なプラグインが含まれています。 -
libs/assetsフォルダー:必要なリソースファイルが含まれています。
-
-
プロジェクトを設定します。
-
repoフォルダーをプロジェクトのルートディレクトリに、libsフォルダーを app モジュールディレクトリに、libs/assetsのファイルをApp/src/assetsディレクトリにコピーします。
-
プロジェクトのルートディレクトリにある
build.gradleファイル (Gradle 7.0 以前の場合) またはsettings.gradleファイル (Gradle 7.0 以降の場合) を開き、repositoriesブロックに次の Maven 設定を追加します。build.gradle
buildscript { repositories { maven { url uri('./repo') } //... その他の設定 } } allprojects { repositories { maven { url uri('./repo') } //... その他の設定 } } //... その他の設定settings.gradle
pluginManagement { repositories { maven { url uri('./repo') } //... その他の設定 } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven { url uri('./repo') } //... その他の設定 } } //... その他の設定 -
プロジェクトのルートディレクトリにある
build.gradleファイルに classpath 設定を追加します。// Gradle のバージョンに関係なく、次の内容を追加します。 buildscript { dependencies { classpath "com.aliyun.rum:alibabacloud-android-rum-plugin:2.2.14" } } //... その他の設定 -
app モジュールの
build.gradleファイルを開き、AlibabaCloudRUM プラグインとその依存関係をインポートします。apply plugin: "com.aliyun.rum" //... その他の設定 android { //... その他の設定 sourceSets { main { jniLibs.srcDirs = ['libs'] } } //... その他の設定 } dependencies { implementation files('libs/alibabacloud-android-rum-sdk.jar') //... その他の設定 }
-
ステップ 2:プラグインの設定
app モジュールの build.gradle ファイルに、必要に応じてプラグイン設定を追加します。
AlibabacloudRumExt {
// インストルメント化が不要なパッケージを除外します。
excludePackages = [
"com.example.internal", // 内部実装パッケージを除外します。
"com.myapp.debug", // デバッグ関連パッケージを除外します。
"com.thirdparty.analytics" // サードパーティの分析 SDK を除外します。
]
}
//... その他の設定
ステップ 3:パーミッションの設定
RUM SDK は、ホストアプリケーションで次のパーミッションが必要です。
<!-- 必須 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- オプション -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
ステップ 4:難読化の設定
アプリケーションで ProGuard による難読化を使用する場合は、次のルールを追加します。
-keep public class com.alibabacloud.rum.** { *; }
-dontwarn com.alibabacloud.rum.**
-optimizations !code/simplification/*,!field/*,!class/merging/*,!method/propagation/*,!class/unboxing/enum,!code/allocation/variable
ステップ 5:SDK の初期化
カスタム Application クラスの onCreate() メソッドの冒頭に、次の初期化コードを追加します。初期化方法は SDK のバージョンによって異なります。
同期起動
//
// SDK のバージョンに応じて、以下のいずれかのコードブロックを使用してください。両方を同時に使用しないでください。
//
// ===============================================
// 例 1: SDK バージョン >= 2.0.0 の場合
// ===============================================
import com.alibabacloud.rum.AlibabaCloudRum;
public class YourApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AlibabaCloudRum.withServiceId("") // RUM アプリケーション作成時に取得した ServiceId。
.withWorkspace("") // RUM アプリケーション作成時に取得したワークスペース。
.withEndpoint("") // RUM アプリケーション作成時に取得したエンドポイント。
.start(getApplicationContext());
}
}
// ===============================================
// 例 2: SDK バージョン < 2.0.0 の場合
// ===============================================
import com.alibabacloud.rum.AlibabaCloudRum;
public class YourApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AlibabaCloudRum.withAppID("<your appid>") // ステップ 1 で RUM アプリケーション作成時に取得した AppID。
.withConfigAddress("<your config address>") // ステップ 1 で RUM アプリケーション作成時に取得した ConfigAddress。
.start(getApplicationContext());
}
}
非同期起動
非同期起動は SDK バージョン 2.2.9 以降でサポートされています。
非同期起動はホストアプリケーションをブロックしません。ただし、初期化が完了する前に生成されたデータは、SDK が収集できない場合があります。
import com.alibabacloud.rum.AlibabaCloudRum;
public class YourApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// SDK バージョン >= 2.2.9 の場合
AlibabaCloudRum.withServiceId("") // RUM アプリケーション作成時に取得した ServiceId。
.withWorkspace("") // RUM アプリケーション作成時に取得したワークスペース。
.withEndpoint("") // RUM アプリケーション作成時に取得したエンドポイント。
.start(getApplicationContext(), true);
}
}
統合の検証
アプリケーションを起動し、Android Studio の Logcat を確認します。キーワード AlibabaCloudRUM で検索するか、そのタグでフィルタリングします。以下のログエントリが表示された場合、SDK は正常に統合され、データを収集しています。
