Android アプリケーションをインストゥルメント化するには、最初に使用しているプラットフォームのアプリケーションを構築してからインストゥルメンテーション コードを追加する必要があります。  

開始するには、次の手順を実行します。

  1. Android アプリケーションの構築
  2. Android アプリケーションのインストゥルメント化 

Android アプリケーションの構築

アプリケーションを構築するには、ご使用のプラットフォームの手順に従います。

Gradle/Android Studio

Android アプリケーションのビルドを構成するには、次の手順を実行します。

  1. Gradle、Android Tools と Cisco AppDynamics プラグインのバージョンの互換性を確認します
  2. Android エージェントをインストールします
  3. プラグインをアクティブにします

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

Android エージェントをインストールするには、ネイティブ パッケージ システムを使用します。アプリケーションモジュール build.gradle で、Splunk AppDynamics Gradle プラグインのクラスパスをビルドパス依存関係句に追加します。classpath 'com.appdynamics:appdynamics-gradle-plugin:' の場合、Splunk AppDynamics ダウンロードポータルからの最新の Android エージェントバージョンを使用します。ただし、Gradle と Android Tools の間の互換性のため、またはその他の理由で、古いバージョンの Splunk AppDynamics プラグインを使用することができます。

Android Gradle プラグイン 3.4.1 以降を使用できない場合は、Android Agent 20.4.0 以前のバージョンを使用する必要があります。

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' classpath 'com.android.tools.build:gradle:3.4.1' // 3.4.1 or higher classpath 'com.appdynamics:appdynamics-gradle-plugin:<android-agent-version>' // Set to your Android Agent version. } } allprojects { repositories { mavenCentral() } }
TEXT

プラグインのアクティブ化

モジュールレベル build.gradle で、adeum プラグインを以下の例のように com.android.application プラグインの直後に追加します。


apply plugin: 'com.android.application' apply plugin: 'adeum' // this line added for AppDynamics
TEXT

Apache Maven プロジェクト

アプリケーションが Maven プロジェクトの場合は、次の手順を実行します。

  1. <dependencies> セクションに次のコードを追加します。

    <dependency> <groupId>com.appdynamics</groupId> <artifactId>appdynamics-runtime</artifactId> <version>1.0</version> </dependency>
    TEXT
  2. <plugins> セクションに次のコードを追加します。

    <plugin> <groupId>com.appdynamics</groupId> <artifactId>appdynamics-maven-plugin</artifactId> <version>1.0</version> <executions> <execution> <phase>implementation</phase> <goals> <goal>adinject</goal> </goals> </execution> </executions> </plugin>
    TEXT

Ant/Eclipse

手順については、ナレッジベースの記事「Use Ant to Build Android Apps with the Cisco AppDynamics Android SDK」を参照してください。

Android アプリケーションのインストゥルメント化

アプリケーションの構築が完了したら、次の手順を実行します。

  1. 必要な権限の追加
  2. アプリケーションキーの取得
  3. ソースの変更
  4. ビルドの実行
  5. インストゥルメンテーションの確認

必要な権限の追加

アプリケーションの AndroidManifest.xml ファイルを開き、次の権限があることを確認します。

<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
XML

これらの権限の両方が存在しない場合は、追加します。

EUM アプリケーションキーの取得

コントローラ UI で EUM アプリケーションキーを取得するには:

  1. コントローラ UI 上部のナビゲーションバーで、[User Experience] > [Mobile Apps] に移動します。
  2. [Add App] > [Android] をクリックして、[Getting Started Wizard - Android] ページを開きます。 

     

  3. [Manual] をクリックします。

    Splunk AppDynamics は Android Studio 4.0 以降をサポートしなくなったため、2020 年 5 月(Android Studio 4.0 がリリースされたとき)の時点で、Android Studio プラグインのインストール方法を使用することは推奨されません。代わりに、以下の手順の手動インストール方法に従ってください。

  4. [Create a new Mobile App Group] を選択し、アプリケーション名を入力して、[Continue] をクリックします。
  5. 表示されたアプリケーションキーとコレクタ URL をコピーします。

ソースの変更

  1. アプリケーションのプライマリアクティビティを定義するソースファイルで、次の import を追加します。

    import com.appdynamics.eumagent.runtime.Instrumentation;
    JAVA
  2. プライマリアクティビティの onCreate() メソッドで、上記の手順 2 から EUM アプリケーションキーを渡す次の行を追加します。

    Instrumentation.start(<EUM_APP_KEY>, getApplicationContext());
    JAVA
  3. ファイルを保存します。コードは次のようになります。

    import com.appdynamics.eumagent.runtime.Instrumentation; ... @Override public void onCreate(Bundle savedInstanceState) { Instrumentation.start(<EUM_APP_KEY>, getApplicationContext()); ... }
    JAVA
  4. withCollectorURL および withScreenshotURL メソッドを使用して、エージェントの初期化時に EUM サーバーおよびスクリーンショットサービスのエンドポイントにメトリックとスクリーンショットを報告するように Android エージェントを設定します。 

    import com.appdynamics.eumagent.runtime.Instrumentation; ... @Override public void onCreate(Bundle savedInstanceState) { Instrumentation.start(AgentConfiguration.builder() .withAppKey("<EUM_APP_KEY>") .withContext(getApplicationContext()) // Use the EUM Server endpoints for your on-prem deployments:     .withCollectorURL("http(s)://<domain-name-of-your-eum-server>:7001/eumcollector") .withScreenshotURL("http(s)://<domain-name-of-your-eum-server>:7001/screenshots/v1") .build()); ... }
    JAVA
  5. モジュールレベルの build.gradle ファイルで、Splunk AppDynamics アカウント情報を adeum スニペットの構成として追加します。開始ウィザードでこの手順を完了すると、構成が UI コードスニペットに入力されます。開始ウィザードから EUM アプリケーションキーを取得できない場合は、「ブラウザモニタリング構成へのアクセス」を参照してください。

    dependencies { implementation 'com.appdynamics:appdynamics-runtime:<latest version>' // This line is added for AppDynamics. } adeum { // This section is added for AppDynamics. account { name '<account name>' licenseKey '<key>' }
    JAVA
    1. Android Studio を使用している場合は、ビルドスクリプトブロックをプロジェクトの build.gradle ファイルの先頭に追加する必要があります。

      // project level build.gradle buildscript { dependencies{ classpath("com.appdynamics:appdynamics-gradle-plugin:<latest-version>")} repositories { mavenCentral() } }
      JAVA


      または、settings.gradle ファイルでプラグインブロックを使用して resolutionStrategy ブロックを定義することもできます。

      // project level build.gradle plugins{ 	id 'com.appdynamics.appdynamics-gradle-plugin' version<version> } // settings.gradle repositories{ 	gradlePluginPortal() 	mavenCentral() } resolutionStrategy { eachPlugin { plugin -> if (plugin.requested.id.id == "com.appdynamics.appdynamics-gradle-plugin") { useModule("com.appdynamics:appdynamics-gradle-plugin:<latest-version>") } } }
      JAVA

ビルドの実行

ビルドシステムの手順に従って Android アプリケーションを構築作成します。

コンソールに表示される例を次に示します。

 [injector] 				/=========================================\ [injector] 				| AppDynamics BCI Instrumentation summary | [injector] 				\=========================================/ [injector] [injector] [injector] 		 - Total number of classes visited (#720 classes) [injector] 		 - Total number of classes instrumented (#1 classes) [injector] 		 - Total number of classes failed to instrument (#2 classes) [injector] 		 - Total number of features discovered (#3) [injector]

インストゥルメンテーションの確認

使用したビルドシステムに基づいて、インストゥルメンテーションが正常に行われたことを確認します。

Gradle/Android エージェント インストーラ プラグイン

-i フラグを使用しなかった場合は、コンソール出力に「inject」が含まれる行があることを確認してください。コンソールにこの情報が出力されていない場合は、プロジェクトが正しく構成されていないか、インジェクタが完全に動作していません。このプロセスの非常に詳細なログは、<project>/target/appdynamics_eum_android_bci.log または <module>/target/appdynamics_eum_android_bci.log のいずれかにあります。

Maven

コンソールにこの情報が出力されていない場合は、プロジェクトが正しく構成されていないか、インジェクタが完全に動作していません。このプロセスの非常に詳細なログは、<project>/target/appdynamics_eum_android_bci.log または <module>/target/appdynamics_eum_android_bci.log のいずれかにあります。

Ant

コンソールにこの情報が出力されていない場合は、プロジェクトが正しく構成されていないか、インジェクタが完全に動作していません。このプロセスの非常に詳細なログは、<project>/target/appdynamics_eum_android_bci.log または <module>/target/appdynamics_eum_android_bci.log のいずれかにあります。