Download PDF
Download page Androidアプリケーションのインストゥルメント化.
Androidアプリケーションのインストゥルメント化
Android アプリケーションをインストゥルメント化するには、最初に使用しているプラットフォームのアプリケーションを構築してからインストゥルメンテーション コードを追加する必要があります。
開始するには、次の手順を実行します。
Android アプリケーションの構築
アプリケーションを構築するには、ご使用のプラットフォームの手順に従います。
Gradle/Android Studio
Android アプリケーションのビルドを構成するには、次の手順を実行します。
- Gradle、Android Tools と Cisco AppDynamics プラグインのバージョンの互換性を確認します。
- Android エージェントをインストールします。
- プラグインをアクティブにします。
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() } }
プラグインのアクティブ化
モジュールレベル build.gradle
で、adeum
プラグインを以下の例のように com.android.application
プラグインの直後に追加します。
apply plugin: 'com.android.application' apply plugin: 'adeum' // this line added for AppDynamics
Apache Maven プロジェクト
アプリケーションが Maven プロジェクトの場合は、次の手順を実行します。
<dependencies>
セクションに次のコードを追加します。<dependency> <groupId>com.appdynamics</groupId> <artifactId>appdynamics-runtime</artifactId> <version>1.0</version> </dependency>
TEXT<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 アプリケーションのインストゥルメント化
アプリケーションの構築が完了したら、次の手順を実行します。
必要な権限の追加
アプリケーションの AndroidManifest.xml
ファイルを開き、次の権限があることを確認します。
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
これらの権限の両方が存在しない場合は、追加します。
EUM アプリケーションキーの取得
コントローラ UI で EUM アプリケーションキーを取得するには:
- コントローラ UI 上部のナビゲーションバーで、[User Experience] > [Mobile Apps] に移動します。
[Add App] > [Android] をクリックして、[Getting Started Wizard - Android] ページを開きます。
[Manual] をクリックします。
Splunk AppDynamics は Android Studio 4.0 以降をサポートしなくなったため、2020 年 5 月(Android Studio 4.0 がリリースされたとき)の時点で、Android Studio プラグインのインストール方法を使用することは推奨されません。代わりに、以下の手順の手動インストール方法に従ってください。
- [Create a new Mobile App Group] を選択し、アプリケーション名を入力して、[Continue] をクリックします。
- 表示されたアプリケーションキーとコレクタ URL をコピーします。
ソースの変更
アプリケーションのプライマリアクティビティを定義するソースファイルで、次の import を追加します。
import com.appdynamics.eumagent.runtime.Instrumentation;
JAVAプライマリアクティビティの
onCreate()
メソッドで、上記の手順 2 から EUM アプリケーションキーを渡す次の行を追加します。Instrumentation.start(<EUM_APP_KEY>, getApplicationContext());
JAVAファイルを保存します。コードは次のようになります。
import com.appdynamics.eumagent.runtime.Instrumentation; ... @Override public void onCreate(Bundle savedInstanceState) { Instrumentation.start(<EUM_APP_KEY>, getApplicationContext()); ... }
JAVAwithCollectorURL
および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モジュールレベルの
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>' }
JAVAAndroid 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
のいずれかにあります。