Android アプリ

この章では、Android アプリのインストルメントについて説明します。

tipp icon

注意

Android 開発者向け: インストルメント プロセスの一部として、テスト対象アプリは Ranorex automation library と共にコンパイルされます。このライブラリは、APK ファイルにいくつかの機能と権限を追加します。そのため、インストルメントされたアプリは、Google Play には公開しないでください。

アプリとモバイル デバイスの準備

アプリをインストルメントおよびデプロイする前に、以下を確認してください。

アプリの準備

Ranorex Studio がインストールされているコンピューターから、APK にアクセスできることを確認してください。 APK のコピーを、対象のコンピューターのフォルダーに格納することをおすすめします。

モバイル デバイスの準備

  • ⇢ デバイスの設定 をおこなってください。
  • Ranorex Studio がインストールされているコンピューターに、⇢ デバイスを接続 してください。
  • デバイスで、Ranorex Service App を起動してください。
Note icon

Note

インストルメント ウィザードを使用することで、アプリをインストルメントして、モバイル デバイスにすぐにデプロイできます。この場合、モバイル デバイスを USB 経由でコンピューターに接続する必要があります。

インストルメントの例

この例では、Dropbox アプリをインストルメントします。Dropbox のダウンロードおよび使用には、terms and conditions の利用規約が適用されます。

インストルメントの準備として、Ranorex Studio がインストールされているコンピューターの、Android app testing フォルダーに、アプリを格納します。

テクノロジーの選択

インストルメント ウィザードを起動します。
Android を選択し、次へ をクリックします。

APK の選択と設定

APK ファイルの追加

参照… をクリックします。
APK を選択します。

インストルメント パラメーターの設定

パラメーターを細かく設定したい場合には、手動で設定 を選択し、設定… をクリックします。詳細は、このセクションの最後の 高度なインストルメント設定 を参照ください。
デフォルトは 自動で識別 です。インストルメント パラメーターを自動で調整し、インストルメント処理を試みます。
次へ をクリックし、インストルメント処理を開始します。
インストルメント処理が完了すると、処理が完了した旨のメッセージが表示されます。 また、自動識別で処理された設定の詳細が表示されます。完了 をクリックし、ウィザードを終了します。

Note icon

Note

インストルメントが失敗する場合には、⇢ デバイスの設定 および ⇢ デバイスの接続 が正しくおこなわれていることを確認してください。また、他のプログラムがリソースを消費していることで、インストルメントに時間がかかり、タイムアウトになる場合もあります。他のすべてのプログラムを終了するか、インストルメント関連のタイムアウト設定を変更してください。

結果

アプリが正常にインストルメントおよびデプロイされている場合、デバイスに以下のように表示されます。

Ranorex Service App に表示されたインストルメント済みアプリ
デバイスのホームスクリーンに表示されたインストルメント済みアプリ

Ranorex Studio では、モバイル テスト作成時のダイアログに、対象のアプリが表示されます。

高度なインストルメント設定

これらの設定は、このセクションの APKの選択と設定 で説明しているインストルメント ダイアログから利用できます。これらの設定には、特定の種類の Android アプリのインストルメント方法を変更するためのオプションが含まれています。

AndroidManifest.xml addon settings

Change extractNativeLibs attribute to true: True に設定した場合、Ranorex は、AndroidManifest.xml で定義されている extractNativeLibs 属性を True に変更します。

Change testOnly attribute to false: True に設定した場合、Ranorex は、AndroidManifest.xml で定義されている testOnly 属性を False に変更します。

Custom R.id package name: リソース ID が配置されているカスタムのクラス名 (例: com.ranoerx.demo.R) を指定できます。デフォルトでは、Ranorex Studio は、.R から ID を検索します。

Enable web testing: True に設定した場合、WebView の DOM コンテンツを、Ranoerx Spy の UI 要素ツリーに表示します。パフォーマンスに著しい影響を与えます。デフォルトは True です。

Full image comparison: True に設定した場合、イメージのリソース ID を決定するために、より堅牢なイメージ比較メカニズムを使用します。スタートアップ時のパフォーマンスに影響を与えます。デフォルトは False です。

Tree simplification: False に設定した場合、UI 要素ツリーの後処理をおこないません。これにより、より複雑な要素ツリーが Ranorex Spy に表示されることになりますが、サードパーティ製の Android コントロールを処理する必要がある場合には有用な場合があります。デフォルトは True です。

Instrumentation mode

Resign only: True に設定した場合、Ranorex は選択した APK ファイルの署名の変更のみをおこないます。通常は False を設定してください。

Skip deployment: True に設定した場合、Ranorex は APK ファイルのデプロイ処理をおこないません。つまり、エンドポイントへの APK ファイルのアップロードをおこないません。デフォルトは False です。

Skip instrumentation: True に設定した場合、Ranorex は APK ファイルへの署名を含むインストルメント処理をおこなません。デフォルトは False です。

Instrumentation options

Auto-detect: True に設定した場合、インストルメント設定を自動で調整し、インストルメント処理をおこないます。デフォルトは True です。

Avoid resources decompiling: True に設定した場合、インストルメント処理で、リソースのデコンパイル/コンパイルをおこないません。これにより、以下がおこなわれます。

  • リソースはデコンパイルされず、arsc ファイルがデコードされずにそのまま維持されます。
  • AndroidManifest.xml が、APK に組み込まれているデフォルトの Android ツールによってではなく、Ranoerx Studio によりデコードされます。

これにより、インストルメント処理が劇的に高速化されます。インストルメント済みの APK に含まれるリソースに変更を加える必要がある場合にのみ、False に設定してください。デフォルトは True です。

Debug information: True に設定した場合、インストルメント ログ ファイルに、デバッグ情報を追加します。インストルメントで問題が発生した場合のトラブルシューティングに役立ちます。

Multidex application: モバイル アプリおよび使用しているライブラリが、65,536 個以上のメソッドを参照していて、かつ、このオプションが False の場合、インストルメント中のビルド エラーが発生します。これは、Android のビルド アーキテクチャの限界値に到達したため発生するものです。このエラーを解消するには、このオプションを True に設定し、インストルメントを再度実行してください。

Other instrumentation flags: インストルメント処理に適用する、特定のフラグを追加できます。

Redistribute smali: デコンパイルした Smali コードのメソッド数に関するエラーが発生した場合には、このオプションを True に設定してください。これにより Ranorex Studio は、コードを複数のファイルに分割します。

Static instrumentation: “Register count exceeds…” または “Method count exceeds 65k” といったエラーが発生した場合には、このオプションを True に設定してください。これにより Ranorex Studio は、ユーザー アクティビティに追加する必要のあるコード量を大幅に減らすため、特別なインストルメント メカニズムを使用します。
このオプションを有効化する前に、”Redistribute smali” オプションの使用を試してください。

Signing APK

APK ファイルに署名したい場合には、これらのオプションをすべて設定してください。