コンテンツにスキップ

Android アプリケーションの導入


Android アプリケーションのメトリクスデータを収集し、可視化してアプリケーションパフォーマンスを分析します。

参照ガイド

前提条件

注意

RUM Headless サービスが有効になっている場合、前提条件は自動的に設定されているため、アプリケーションを直接導入できます。

アプリケーションの導入

  1. RUM > アプリケーションを作成 > Android に移動します;
  2. アプリケーション名を入力します;
  3. アプリケーション ID を入力します;
  4. アプリケーションの導入方法を選択します:

    • パブリック DataWay: DataKit コレクターをインストールせずに RUM データを直接受信します。
    • ローカル環境デプロイメント: 前提条件を満たした後に RUM データを受信します。

インストール

ソースコード: https://github.com/GuanceCloud/datakit-android

デモ: https://github.com/GuanceDemo/guance-app-demo

Gradle 設定

Plugin の導入

  • プロジェクトルートの build.gradle ファイルに SDK のリモートリポジトリURLを追加します
//build.gradle
buildscript {
    //...
    repositories {
        //...
        //Plugin のリモートリポジトリURLを追加
        maven {
            url 'https://mvnrepo.guance.com/repository/maven-releases'
            }
    }
    dependencies {
        //...
        //Plugin のプラグインを追加、AGP 7.4.2 以上、Gradle 7.2.0 以上が必要
        classpath 'com.cloudcare.ft.mobile.sdk.tracker.plugin:ft-plugin:[latest_version]'
        // AGP 7.4.2 未満の場合は、ft-plugin-legacy を使用してください
        //classpath 'com.cloudcare.ft.mobile.sdk.tracker.plugin:ft-plugin-legacy:[latest_version]'
        }
}
//setting.gradle
pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
        //Plugin のリモートリポジトリURLを追加
        maven {
            url('https://mvnrepo.guance.com/repository/maven-releases')
            }
    }
}

//build.gradle
plugins{
    //Plugin のプラグインを追加、AGP 7.4.2 以上、Gradle 7.2.0 以上が必要
    id 'com.cloudcare.ft.mobile.sdk.tracker.plugin' version '[latest_version]' apply false
    // AGP 7.4.2 未満の場合は、ft-plugin-legacy を使用してください
    //id 'com.cloudcare.ft.mobile.sdk.tracker.plugin.legacy' version '[latest_version]' apply false
    }
  • プロジェクトのメインモジュール app/build.gradle ファイルに Plugin の使用を追加します
//app/build.gradle でプラグインを適用、設定がないと以下の自動収集機能に影響します。
// 
// 1.RUM:アプリ起動、OkHttp リクエスト、WebView アクティビティ Activity/Fragment 遷移、クリックイベント
// 2.Log:Console Logcat 
apply plugin: 'ft-plugin'  //ft-plugin-legacy を使用している場合も、同じ設定を使用します

//オプション:必要に応じてプラグインパラメータを設定
FTExt {
    //showLog = true
    //asmVersion='asm7'
    //ignorePackages=['com.ft','com/ft']
    //knownWebViewClasses = ['com.your.CustomWebView']
}

プラグインパラメータはすべてオプションです。ほとんどのシナリオでは、apply plugin: 'ft-plugin' だけで十分です。プラグインの動作をデバッグしたり、インストゥルメンテーション範囲を制御したり、WebView 認識を手動で補完する場合にのみ、FTExt の設定を追加する必要があります。

パラメータ名 デフォルト値 説明 適用シナリオ
showLog Boolean false ft-plugin のビルドログを出力するかどうか。 プラグインの実行プロセスをデバッグしたり、インストゥルメンテーションが有効かどうかを確認する場合に有効にします。
asmVersion String asm9 プラグインが使用する ASM バージョンを指定します。asm7 ~ asm9 から選択可能。 プロジェクト内の他のバイトコード処理プラグインとの互換性が必要な場合に調整します。
ignorePackages String[] ASM インストゥルメンテーションを実行しないパッケージパスを設定します。パス区切りには . または / を使用できます。 特定のビジネスパッケージ、サードパーティパッケージ、または他のプラグインと競合するコードをスキップする必要がある場合に使用します。
knownWebViewClasses String[] WebView として認識する必要があるカスタムクラスを手動で宣言します。 カスタム WebView の継承階層が複雑で自動認識が機能しない場合に使用します。

knownWebViewClasses は自動認識が失敗した場合にのみ設定が必要です。関連するトラブルシューティング方法はカスタム WebView の自動収集が機能しない場合を参照してください。

SDK の導入

  • プロジェクトルートの build.gradle ファイルに SDK のリモートリポジトリURLを追加します
//build.gradle
allprojects {
    repositories {
        //...
        //SDK のリモートリポジトリURLを追加
        maven {
            url 'https://mvnrepo.guance.com/repository/maven-releases'
            }
    }
}
//build.gradle
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        //SDK のリモートリポジトリURLを追加
        maven {
            url('https://mvnrepo.guance.com/repository/maven-releases')
            }
    }
}
  • プロジェクトのメインモジュール app/build.gradle ファイルに SDK の依存関係を追加します
//app/build.gradle
dependencies {
    //SDK の依存関係を追加
    implementation 'com.cloudcare.ft.mobile.sdk.tracker.agent:ft-sdk:[latest_version]'
    //ネイティブ層のクラッシュ情報をキャプチャするための依存関係、ft-sdk と併用する必要があり、単独では使用できません
    implementation 'com.cloudcare.ft.mobile.sdk.tracker.agent:ft-native:[latest_version]'
    // JSON シリアライズ
    implementation 'com.google.code.gson:gson:2.8.+'
    //オプション、ネットワークリクエストの自動収集とリンクの自動開始に必要、最低 3.12.+ 以上と互換性あり
    implementation 'com.squareup.okhttp3:okhttp:4.+'
}

最新バージョンは上記の ft-sdkft-pluginft-native のバージョン名を参照してください。

Application 設定

最適な SDK 初期化位置は ApplicationonCreate メソッド内です。アプリケーションにまだ Application が作成されていない場合は、作成して AndroidManifest.xml で宣言する必要があります。サンプルはこちらを参照してください。

<application 
       android:name="YourApplication"> 
</application> 

R8 / Proguard 難読化設定

ft-sdk 1.6.15 より前のバージョンを使用しており、android.buildTypesminifyEnabled = true を設定する必要がある場合は、以下の設定を有効にしてください:

-dontwarn com.ft.sdk.**

### ft-sdk ライブラリ
-keep class com.ft.sdk.**{*;}

### ft-native ライブラリ
-keep class ftnative.*{*;}

### Action 取得時に action_name のクラス名が難読化されるのを防ぐ ###
-keepnames class * extends android.view.View
-keepnames class * extends android.view.MenuItem

```

初期化について

最小限の初期化例はクイックスタートを参照してください。

完全な FTSDKConfig パラメータの説明はSDK 初期化を参照してください。

詳細設定

高度なシナリオ

Plugin AOP の無視

Plugin AOP のオーバーライドメソッドに @IgnoreAOP を追加して、ASM 挿入を無視します。バッチで無視する必要がある場合は、ft-pluginFTExt 内の ignorePackages を使用して無視します。

```java View.setOnClickListener(new View.OnClickListener() { @Override @IgnoreAOP public void onClick(View v) {

}

}); ```

```kotlin View.setOnClickListener @IgnoreAOP {

} ```

よくある質問

グローバル変数を追加してフィールドの競合を回避する

カスタムフィールドと SDK データの競合を避けるために、タグ名に プロジェクトの略称 のプレフィックスを追加することを推奨します。例えば custom_tag_name などです。プロジェクトで使用する key 値はソースコードで確認できます。SDK のグローバル変数に RUM や Log と同じ変数が存在する場合、RUM や Log が SDK のグローバル変数を上書きします。

SDK 互換性

マーケットのプライバシー審査への対応

プライバシーと権限の説明 を参照してください。

サードパーティフレームワーク

flutterreact-nativeuni-appunity では、上記のネイティブ Android と同様の遅延初期化方式を採用することで、アプリマーケットのプライバシー審査に対応できます。

Jetpack Compose サポート

現在、Compose コンポーネントで生成されたページの自動収集は暫定的にサポートされていませんが、手動で ActionView のカスタムインターフェースを使用して、クリックイベントやページ遷移イベントを追跡できます。こちらを参照してください。

フィードバック

このページは役に立ちましたか?