Androidアプリケーションに関係する機能について

Enterprise Architectには、Androidアプリケーションの解析や設計に便利な機能がいくつかあります。このページでは、そのうちのいくつかの機能について紹介します。

既存のソースコードの構造解析

既存のAndroidアプリケーションのJavaソースコードをEnterprise Architectに読み込むことにより、クラス図として構造を視覚的に表現することができます。その際に、Android SDKに含まれるクラスを含むEAPファイルに対してソースコードを読み込むことで、より広い範囲での解析が可能になります。

ここでは、具体的な例としてサンプルに含まれるNotepadを例にします。

まず、こちらのページからダウンロードできる、Android SDKのクラスが含まれるEAPファイルをダウンロードし、開きます。その後、自分が作成したアプリケーションのJavaソースファイルが含まれるディレクトリを指定して、クラス図として読み込みます。Notepadのサンプルの場合には、以下のようなクラス図を作成できます。


(クリックで拡大)

このようにしてクラス図として見ることで全体の構成を視覚的に把握することができます。さらに、「トレーサビリティサブウィンドウ」を利用すると、クラス図の中で選択したクラスの上位クラスや関係するSDK内のクラスについても関係を参照することができます。

また、「関係する要素の追加」機能を実行すると、特定のクラス(自分で作成したクラス)に関係する全てのクラスを自動的に配置・表示することができます。条件は自由に指定できます。下の図では、対象のクラス(NoteEditor)の親クラスや実装したインターフェースの関係のみを探索し、自動配置しました。


アプリケーションの動作解析

Enterprise Architectの機能の「シーケンス図の自動生成」を利用すると、Androidアプリケーションの動作内容をシーケンス図として視覚的に表示することができます。

このシーケンス図の自動生成機能で記録するためには、jdwp経由で行います。adb.exeのforwardコマンドでポート転送する関係で、事前に一度アプリケーションを起動し、そのプロセスIDが確定している必要があります。
(つまり、アプリケーションの起動時の処理をシーケンス図に表現することはできません。)

記録する範囲は、事前に指定する必要があります。興味のある箇所や視覚化したい箇所に、ブレークポイントやマーカーを配置します。通常は、動作が停止するブレークポイントではなくマーカーを利用して下さい。下の例では、onPrepareOptionsMenuメソッドなどが記録対象になるように「操作記録マーカー」を配置しています。

この状態で実際にアプリケーションを動作させると、その動作内容を記録します。その記録結果から、シーケンス図を自動生成できます。なお、下のシーケンス図は、配置される要素の名前を短縮することで、図の横幅の調整を行っています。

シーケンス図内のメッセージを選択した状態でCtrl+E(ソースコード表示)のショートカットを押すことで、ソースファイルの該当のメソッド部分のソースコードを表示することができます。シーケンス図の内容を見ながら、ソースファイルの処理内容を確認したい場合に便利です。