Crash SDKインストール

IMQA CrashをAndroidプロジェクトに追加すると、JavaとKotlinで開発したアプリで発生するアプリケーションの性能問題を様々な視点から確認することができます。

MPMインストールを実行する場合は、Androidはインストールする必要がありません。

IMQAプロジェクトページでiOSプロジェクトを作成してプロジェクトキーを受け取ったらインストールを実行してください。

1. SDKインストール

一般的に「<project_dir>/app/build.gradle」にあります。

  • Android Studioで「app.gradle」ファイルを開いてください。

  • Repositoriesに「mavenCentral()」を追加してください。

  • Dependenciesに「imqa-crash-client」を追加してください。

ファイルをアップデート後にGradleファイルを同期させる必要があります。

app.gradle
// Add jcenter repository
repositories {
    mavenCentral()
}

// Add compile or implementation dependencies
dependencies {
    compile 'io.imqa:imqa-core:2.27.4'
    compile 'io.imqa:imqa-crash-client:2.27.4'

    // Add when using zstd
    implementation 'com.github.luben:zstd-jni:1.5.2-3@aar'
}

2. 基本設定

インターネット設定

プロジェクトの「AndroidManifest.xml」に発生したクラッシュ情報をアップロードするため、インターネット権限を追加してください。

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<!-- To view the LogCat contents -->
<uses-permission android:name="android.permission.READ_LOGS"/> 

IMQAController初期化

プロジェクトの「Application」クラスにIMQAControllerを初期化するコードを入れてください。「PROJECT_KEY」は、IMQAサイトでプロジェクトを作成すると発行を受けることができます。

MyApplication.java
...
  @Override
  public void onCreate() {
      super.onCreate();
      io.imqa.crash.IMQACrashAgent.InitializeAndStartSession(
          this,
          BuildConfig.FLAVOR,
          "PROJECT_KEY");
  }
...
MyApplication.kt
...
  override fun onCreate() {
      super.onCreate()
      io.imqa.crash.IMQACrashAgent.InitializeAndStartSession(
          this,
          BuildConfig.FLAVOR,
          "PROJECT_KEY")
  }
...

⚠️ HTTPS (API level > 27)

Android API 28から強化されたネットワークセキュリティポリシーにより、HTTPリクエストが必要となりました。 これを解決するためには、以下のとおりの措置を講じる必要があります。

• 認証されたHTTPSリクエスト IMQAサーバーで認証されたHTTPSのリクエストを行って正常に収集してください。

MyApplication.java or MyApplication.kt
...
imqaOption.setCrashServerUrl('https://collector.imqa.io');
...

• 強制HTTPリクエスト このflagを設定すると、すべてのcleartextトラフィックに対して許可処理を実行できます。

AndroidManifest.xml
...
<application
    ...
    android:usesCleartextTraffic="true"
    />
...

Zstandard圧縮アルゴリズムを使用

一般的なgzipではないセキュリティ性、圧縮効率が高くなったZstandard圧縮アルゴリズムを使用することができます。これを使用するためには、次の設定が必要です。(* Zstandard圧縮方式は有料版のみ利用可能です。)

MPM Mode Optionの設定 IMQAの開始コードを挿入するとき、設定においてzstdを使用するかどうかを設定することができます。

MyApplication.java or MyApplication.kt
...
imqaOption.setCompressZstd(true);
...

Zstdライブラリに追加 「app.gradle」ファイルで「buildscript」内の「dependencies」ブロックに「zstd-jni」aarライブラリを追加します。

app.gradle(app module)
...
    dependencies {
    // Add dependencies.
       ...
       implementation 'com.github.luben:zstd-jni:1.5.2-3@aar'
       ...
    } 
} 

3. ProGuard設定

ProGuardは、使用しないリソースを削除してクラスやメソッドの名前を短く短縮するなど、APKを最大限小さくするためのツールです。ProGuardまたはDexGuardを使用する場合は、以下の内容を参考にしてください。マッピングファイルをアップロードすると、原本クラス・メソッド名をクラッシュレポートに表示することができます。

事前準備

開発中のプロジェクトでProguardを使用する場合、ソースコードが難読化され解析が困難になります。このとき、作成されるmapping.txtファイルを利用すると、難読化されたコードを解析することができるようになります。

Proguardルール(proguard-rules.pro)に以下の内容を追加してください。

proguard-rules.pro
  -keepattributes SourceFile,LineNumberTable
  -printmapping map.txt

  # IMQA Proguard
  -keep class io.imqa.** { *; }
  -dontwarn io.imqa.**

  # okhttp3 Proguard
  -dontwarn okhttp3.**
  -dontwarn okio.**p

app/build/outputs/mapping/debug(またはrelease)/mapping.txtの位置にファイルが作成されます。(buildTypeとflavorによってファイルの位置は多少異なることがあります。) このように作成されたファイルを、http://crash.imqa.ioにアクセスしてアップロードしてください。

Androidの場合、「mapping.txt」、「map.txt」などの「txt」ファイルをアップロードします。

アップロード手順

1. プロジェクトメニューから設定へ移動します。

2. [ファイル選択]ボタンを押してアップロードウィンドウを開いてください。

3. Gradleに明示されたApp versionに適した[ファイル選択]ボタンを押してmapping.txtファイルをアップロードしてください。

4. [登録]ボタンを押すと、以後アップロードされるクラッシュ情報は解析されて表示されます。

アプリの最新バージョンがリリースされた場合、該当するバージョンで発生したクラッシュ情報を確認するためには同じアプリバージョンのマッピングファイルを追加登録してください。

4. インストール型顧客の必須設定事項

IMQAインストール型をご利用される顧客会社の場合、必ず収集サーバーを設定してください。

MyApplication.java
@Override
public void onCreate() {
    super.onCreate();
    io.imqa.core.IMQAOption imqaOption = new io.imqa.core.IMQAOption();

    /*
     * Default value : 'https://collector.imqa.io'
     * String : Server information
     */
    imqaOption.setCrashServerUrl('https://(ipaddress)');

    io.imqa.crash.IMQACrashAgent.InitializeAndStartSession(
        this, // Application Context
        BuildConfig.FLAVOR, // Project Flavor Setting
        "PROJECT_KEY",  // Issued project key
        imqaOption // Add an object when the option is set
    );
}

Last updated