タイトル:アンドロイド

エージェントのインストール

SixthSense モバイル監視 アンドロイド SDK をインストールするには、build.gradle ファイルの dependencies ブロックに依存関係の追加が必要です。

implementation("com.rakuten.sixthsense.observability:mobilemonitoring:2.1.0")

repositories ブロックに以下の行を追加します。

repositories {
maven {
url "https://artifacts-observability.sixthsense.rakuten.com/api/v4/projects/21/packages/maven"
credentials(HttpHeaderCredentials) {
name = "Private-Token"
value = "Git_lab_access_token_here"
}
authentication {
header(HttpHeaderAuthentication)
}
}
}

エージェントの設定

AndroidManifest.xml で設定を行います。

  1. アプリケーション タグでアクセストークンを設定します。
<meta-data android:name="com.rakuten.sixthsense.ACCESS_TOKEN"
android:value="access-token-here"/>

トークンへアクセスには、「SixthSense ポータルを使用開始する」内の アクセストークンへのアクセス を参照ください。

  1. 同様に、レポートのベースURLを設定します。
<meta-data android:name= "com.rakuten.sixthsense.BASE_URL"
android:value="https://http-collector-observability.sixthsense.rakuten.com/mobile"/> (for OneCloud Platform, use android:value="https://sixthsense-backend.jpe2-caas1-prod1.caas.jpe2b.r-local.net/mobile"/>)
  1. (オプション) 同様に、このアプリケーションに関するデータが報告されたときにSixthSense ダッシュボードに表示したいアプリケーション名を設定することができます。
<meta-data android:name= "com.rakuten.sixthsense.APP_NAME"
android:value="your-custom-app-name"/>

このフィールドを設定しない場合、デフォルトのアプリケーション名がこのアプリケーションのデータ報告に使用されます。このオプション機能は、異なる製品フレーバー(例:開発環境、テスト環境、本番環境等)があり、それぞれのデータをダッシュボードに個別に報告したい場合に有用です。

  1. アプリケーションのサブクラスの OnCreate コールバックで SSObservability を初期化します:
class App : Application() {
override fun onCreate() {
super.onCreate()
// Initialise error handling here
SSObservability.init(this)
}
}

これによりキャプチャされたクラッシュと ANR がダッシュボードに表示されます。処理された例外を報告するには、以下の SSLogger を使います。

try {
...
}
catch (e: Exception) {
SSLogger.log(e)
...
}

難読化解除されたスタックトレースを取得する場合(R8 minification 等を使用する場合)は、ProGuard 設定ファイル(proguard.cfg、proguard-android.txt、proguard-rules.pro等)に以下を追加してください。

-keepattributes Exceptions, Signature, InnerClasses, LineNumberTable, SourceFile, EnclosingMethod
  1. OkHttp3、Retrofit、and Volley の統合

OkHttp3 クライアントを直接使用するアプリケーション、OkHttp3 を使用するRetrofit、またはHttpURLConnection を使用する Volley から行われるすべてのネットワークコールをキャプチャするには、プロジェクト内の対象クライアントすべての自動インストルメンテーションを実行する SSNetworkPlugin を追加します。

プラグインをダウンロードするためには、指定されたリポジトリ(buildscript 内)に以下の行を追加します。

repositories {
maven {
url "https://artifacts-observability.sixthsense.rakuten.com/api/v4/projects/21/packages/maven"
credentials(HttpHeaderCredentials) {
name = "Private-Token"
value = "Git_lab_access_token_here"
}
authentication {
header(HttpHeaderAuthentication)
}
}
}

buildscript の dependencies ブロックに以下を追加します。

dependencies {
classpath "com.rakuten.sixthsense.mobilemonitoring:SSNetworkPlugin:1.2.0"
}

モジュールレベルの build.gradle でプラグインを適用します。

”SSNetworkPlugin” プラグインを適用します:

上記の Http クライアントの自動インストルメンテーションの要件は以下の通りです。

  • Android Gradle プラグイン 7.1+
  • Gradle バージョン- 7.2+

あるいは、OkHttp クライアントを手動でインストルメンテーションし、コード内の特定の場所からのネットワークコールのみをキャプチャしたい場合は、以下のコードのように、OkHttpClient インスタンスを作成する際にイベントリスナーとして SSEventListener を追加する必要があります。

OkHttpClient.Builder().eventListener(SSEventListener()).build()