AppDynamics は、iOS/Android ネイティブ SDK または任意の Cordova ベースのフレームワークに基づいて、ハイブリッド アプリケーションのモニタリングをサポートしています。

ハイブリッド アプリケーション

ハイブリッド アプリケーションは、Android または iOS ネイティブシェル内で実行される Web アプリケーションです。Web アプリケーションは、Android WebViewiOS WKWebViews、または通常の Web アプリケーションと同じように、HTML、CSS、JavaScript、およびその他のリソースで構成される Cordova Web アプリケーションの形式にすることができます。 

ハイブリッドの使用例

モバイル RUM は、次の 2 つの使用例をサポートしています。

  • Web アプリケーションまたは Web ビューを実行するネイティブ モバイル アプリケーション。これは Android WebViews と iOS WKWebView の例です。
  • Ionic などの Cordova ベースのフレームワークで作成されたアプリケーション。 Web アプリケーションを実行するためのネイティブシェルとネイティブモバイル API のインターフェイスを提供します。

ハイブリッド アプリケーションのインストゥルメンテーションに関する要件

ハイブリッド アプリケーションをインストゥルメント化するには、次の手順を実行します。

  • JavaScript エージェントを使用して iFrame を手動でインストゥルメント化します。モバイル ネイティブ アプリケーションの場合、JavaScript エージェントは、埋め込み Web ページ(iFrame)ではなく、トップレベルの WebView または WKWebView インスタンスに挿入されます。 
  • Cordova ベースのアプリケーションの場合、プラグインの JavaScript API を使用してイベントを手動で報告します。
  • 組み込み Web ビューを使用するハイブリッド アプリケーションの場合は、Android WebViews または iOS WKWebView を使用します。詳細については、Cordova アプリケーションのインストゥルメント化を参照してください。

インストゥルメンテーション手順

ハイブリッド アプリケーションをモニタするには、モバイル RUM を設定してアクセスし、ハイブリッドの使用例に基づいて次の手順を実行する必要があります。

提供内容の概要

ネイティブ Android/iOS アプリケーションの場合、Android エージェントまたは iOS エージェントは JavaScript エージェントを Android WebView または iOS WKWebView に挿入します。Cordova ベースのアプリケーションの場合、AppDynamics プラグインは Web アプリケーションに JavaScript エージェントを挿入します。 

次の図は、モバイルのネイティブアプリケーションと Cordova ベースのアプリケーションをモニタするためにモバイル RUM を使用する方法の概要を示しています。

モバイル ネイティブ アプリケーション アーキテクチャ
Mobile RUM Architecture Diagram


1 Icon モバイルアプリケーションは、Android/iOS エージェントのいずれかを使用してインストゥルメント化します。

2 Icon モバイルアプリケーションが WebView または WKWebView インスタンスをインスタンス化すると、モバイルエージェントによって JavaScript エージェントが挿入されます。

3 Icon JavaScript エージェントはパフォーマンスと WebView の使用状況をモニタします。

4 Icon JavaScript エージェントは、モバイルエージェントにビーコンを送信してアプリケーション アクティビティを報告します。

5 Icon モバイルエージェントは、ブラウザビーコンをモバイルビーコンに再パッケージ化し、ビーコンを EUM サーバに送信します。

Cordova ベースのアプリケーション アーキテクチャ
EUM Server Infrastructure Diagram


1 Icon AppDynamics Cordova プラグインは JavaScript エージェントを Cordova WebView に挿入します。

2 Icon Cordova ベースのアプリケーションは、プラグインの JavaScript バインディングを使用してモバイルエージェントを設定します。

3 Icon WebView に挿入された JavaScript エージェントはアプリケーション アクティビティとパフォーマンスをモニタします。

4 IconJavaScript エージェントはモバイルエージェントにブラウザビーコンを送信します。

5 Iconモバイルエージェントは、ブラウザビーコンを解析して、モバイルビーコンに変換します。

6 Icon モバイルエージェントは EUM サーバにモバイルビーコンを送信します。

モバイルエージェントと JavaScript エージェントの互換性

ハイブリッド アプリケーション サポートが有効になっている場合、モバイルエージェントは組み込みの JavaScript エージェントを使用してモバイル Web ページをモニタします。ブラウザアプリケーションを使用して同じモバイル Web ページをすでにモニタしている場合は、ブラウザアプリケーションのインストゥルメント化に使用される JavaScript エージェントのバージョンが、モバイルエージェントで使用されている JavaScript エージェントのバージョンと異なる場合があります。JavaScript エージェントの 2 つのバージョンに互換性がない場合、モバイルエージェントは Web ビューをインストゥルメント化したり、Web ビューからイベント通知にアクセスしたりすることはできません。

互換性を確保する方法

互換性を確保するために、ブラウザアプリケーションは JavaScript エージェントバージョンの 4.5.4 以降を使用する必要があり、モバイルアプリケーションはモバイル エージェント バージョン 4.5.5 以降を使用する必要があります。JavaScript エージェントの互換性のあるバージョンを使用する場合、ブラウザアプリケーションの JavaScript エージェントは Web ページのビーコンを報告します。また、Web ページは JavaScript エージェントと複数回インストゥルメント化できないため、モバイルアプリケーションの組み込みの JavaScript エージェントは無視され、レポートビーコンは表示されません。 

モバイルエージェントのハイブリッド アプリケーション サポートを無効にしている場合は、ブラウザアプリケーションで使用されている JavaScript エージェントのバージョンに関係なく、互換性の問題はありません。

互換性のない JavaScript エージェントバージョンのトラブルシューティング

JavaScript エージェントの互換性のないバージョンを使用している場合は、次のいずれかを実行して問題を修正します。

  • ブラウザアプリケーションをインストゥルメント化するために使用している JavaScript エージェントをアップグレードします。
  • モバイル インストゥルメンテーションでは、古いバージョンの JavaScript エージェントを使用してインストゥルメント化されるブラウザアプリケーションによってのみインストゥルメント化されるように、ハイブリッドサポート(iOS/Android)を無効にします。

ハイブリッド アプリケーションのネットワーク要求

Cordova ベースのアプリケーションの WebView のコンテキストで実行されたネットワークコールは、JavaScript エージェントからの Ajax コールとして表示されます。