東海エリアを中心に活躍するVRクリエイター集団のページ

テストとトラブルシューティング

本コンテンツはOculusVR社のOculus Mobile Development Documentationを日本語訳したものです。
 ※Unity開発に必要なもののみ翻訳しているため、一部省略されている箇所があります
翻訳内容に関する問題・指摘などあれば、訳者:@kaniponまでご一報ください。

テストとトラブルシューティング

Oculus テストツールとプロデュース

ようこそOculus テストツールとプロデュースガイドへ

デベロッパーモード: GearVRヘッドセット外でアプリを実行する

これは、GearVRヘッドセットが反復的な変更を行うときに時間のかかるプロセスになる可能性があり、お使いの携帯端末を挿入せずに開発中のVRアプリケーションを実行するのに有用です。
ヘッドセットにロードすることなく、VRアプリケーションを実行するには、デベロッパーモードを有効にする必要があります。

デベロッパーモードを有効にするには:

  • Application Managerへ行きます
  • Gear VR Serviceを選択
  • Manage Storageを選択
  • Developper modeのトグルが表示されるまで、VR Service Versionを数回クリックする
  • Developper modeをトグルする

注: デベロッパーモードを有効にする前に、APKファイルがOSIGファイルを使用して署名し、お使いの携帯端末にそれをインストールしビルドしていなければなりません。そうしないと、”You are not a developer!”というエラーメッセージが表示されます

Oculusリモートモニター

モバイル開発用のモニタリングツール

OVR::Capture

キャプチャーライブラリは、モバイルVRアプリケーションでデバッグ動作とパフォーマンスの問題を支援するために設計された低オーバーヘッドの遠隔監視システムである。これは、リアルタイムに収集されたデータとオフライン検査の両方を行うことができる。お使いのデバイスは、VRの開発者モードが有効のときのサポートは(下記参照)は、デフォルトでアクセス可能によってVrAPIに組み込まれています。

Oculus Remote Monitor

モニタークライアント(Mac OS Xの、Linuxのx86_64版、およびWindowsで使用可能)がリモートデバイス上で実行されているVRアプリケーションに接続するアプリケーションです。それは、キャプチャ保存し、データがリモートデバイスからストリーミングさ表示するための責任があります。

既知の問題点
  • 低速のネットワークでは、キャプチャ内部のFIFOがターゲットアプリケーションにストールを引き起こして、いっぱいになる可能性があり。これは簡単にパフォーマンス/チャートビューで”OVR::Capture”スレッドで長いストールを探して、モニターで検出される。
    この問題が発生した場合、この機能は、ネットワークの帯域幅を大量に消費するように、それは、リモートデバイスに接続する前に、「キャプチャのフレームバッファ」を無効にすることが最善です。このような理由から、我々はまた、デバイスに直接、専用の802.11n以上の近接ネットワーク、または端末への直接テザリング接続を使用することをお勧めします。
  • GPUのゾーンは現在、タイマークエリに関連ドライバの問題が原因により無効になっています。
  • Integrated systraceは開発中のため、サポートは現在無効になっています。
  • 稀なハングアップは接続が予期せずに切断された場合に、リモートアプリケーションで発生する可能性があります。
  • 一部のVPNは、自動検出メカニズムが壊れます。あなたは、デバイスに接続することはできませんし、クライアントPCがVPNに接続されている場合は、VPNから切断する必要があるかもしれません。
セットアップ
ネットワークセットアップ

Oculusリモートモニタは、リモートホストを見つけるために、UDPブロードキャストベースの自動検出メカニズム、その後キャプチャストリームにアクセスするためのTCP接続を使用しています。
このため、ホストとクライアントが同じサブネット上にある必要があり、そしてネットワークが遮断またはUDPブロードキャストまたはTCP接続をフィルタリングしてはいけません。あなたがそのような制限があることが大企業ネットワーク上にある場合、それはあなたのデバイスに直接専用ネットワークまたはテザーを設定することがしばしば理想的です。
さらに、フレームバッファキャプチャが集中極めて帯域幅である。信号強度が低い場合や、ネットワーク上の干渉や多くのトラフィックをお持ちの場合は、キャプチャ性能を向上させるために接続する前に、キャプチャフレームバッファを無効にする必要があるかもしれません。

デバイスセットアップ

セキュリティ上の理由から、VR デベロッパーモードがオンでかつ、お使いのデバイスのOculus Developerプリファレンスファイルがキャプチャのサポートが有効で無い限り、キャプチャライブラリは、接続を受け付けません。

VRデベロッパーモード
  1. Application Manager > Gear VR Service > Manage Storage
  2. Developper Modeチェックボックスが表示されるまで、バージョン番号をタップします。
  3. Developper Modeチェックボックスをタップします。
Oculus Developer Preferences

ターゲットデバイス上のファイル /sdcard/.oculusprefs のdev_enableCaptureの1行を追加します。このファイルの内容を設定する簡単な方法は、ターミナル/コマンドラインで次のコマンドを次のとおり実行します:

adb shell
echo dev_enableCapture 1 > /sdcard/.oculusprefs

常に予期しないオンからのキャプチャのサポートを防ぐために、終了したら開発者の環境設定ファイルを削除することをお勧めします。それは簡単に行うことができます :

adb shell rm /sdcard/.oculusprefs

使用法
接続する

ホストとクライアントが同じサブネット上にあり、ネットワークが正しく設定されている場合(上記の「ネットワーク設定」を参照)、Oculusリモートモニタは、自動的にネットワーク上の任意の互換性のある実行中のアプリケーションを発見するでしょう。単純にホストを選択し、ご希望のセッション設定を切り替えると、キャプチャしたデータの表示を開始するために Connect をクリックします。

キャプチャファイル

各接続時には、Oculusリモートモニタは自動的に圧縮してディスクへ一意のファイル名”package-YYYYMMDD-HHMMSS.dat”のフォーマットでデータストリームを格納します。保存先はモニターの設定で変更することができますが、デフォルトではこれらのファイルは、あなたのDocumentsディレクトリ下のOVRMonitorRecordingsというフォルダに格納されます。

ツールバー上のFileアイコンをクリックして古いキャプチャファイルを開いて再生することもできます。

Frame Buffer Viewer

データを受信し、リアルタイムにフレームバッファを調べるためのメカニズムを、Frame Buffer Viewerは提供します。それは特にテストセッションをモニターするのに役立ちます。

有効にすると、キャプチャライブラリは、ネットワーク全体でダウンスケールプレディストーションアイバッファ(縮小された歪曲後の視界データ)をストリーミングします。
品質が過度に低いように思えるかもしれませんが、単純なダウンスケーリングではなく、高い圧縮方式を使用する目的は、常に任意の時点で画面上に何が起こっているかのようにクライアントアプリケーションコンテキストを与えながら、できるだけホストデバイス上のオーバーヘッドを低減することである。

16ビット@128×128は、現在のデフォルトです。モニターアプリケーションは、大規模なキャプチャを扱う場合、メモリとディスクスペースを節約するためにフレームバッファを再圧縮します。

パフォーマンスデータ

パフォーマンスデータビューアは、リアルタイムとCPU/ GPUのイベント、センサーの読み取り、コンソールメッセージ/警告/エラーとフレームバッファのオフライン検査単一の連続タイムライン上のキャプチャの両方を提供します。これは将来変更される可能性がありますがデフォルトでVrAPIは、VR固有のスケジューリングの問題の診断に役立つ組み込みイベントの最小数を持っています。

スペースバーを押すと、スクロールや特定の時点での凍結リアルタイムのタイムラインを切り替えます。これはユーザーがイベントをリアルタイムに展開するのを見て、停止させるか、再起動することなく特定の興味のある地点で焦点をあわせ、停止をすばやく前後させることができます。

マウスホイールをスクロールするとアウトビューをズームします。

タイムラインで時間を前後にクリックとドラッグでパンします。

上のスクリーンショットは、キャプチャする利用可能なデータの一部を示します。

  • Frame Buffer – 歪曲後のフレームバッファの画面キャプチャを提供します。フレームがタイムワープコンテキストに渡された直前に瞬間をタイムスタンプします。各スクリーンの左端は、それがGPUからキャプチャされた時点を表す。
  • VSync – ドライバーの垂直同期イベント毎にノッチが表示されます。
  • VrAPI内部の様々な機能の壁時計の時間の階層的な可視化。
    ログメッセージは、マウスを介したメッセージを表示するためにできることはほとんどアイコンとしてそれらに対応するCPUのスレッドに表示されます: メッセージ用の青い円、警告の黄色の正方形、およびエラーの赤いダイヤモンド
  • 一般的なセンサデータビジュアライザ。CPUとGPUのクロックは、上記のスクリーンショットで視覚化されるが、熱センサ、IMUデータetcのような、その他のデータは個々に表示してもよい。
ロギング

VrAPIは、AndroidのLogcatにメッセージとエラー条件の各種を報告と、オキュラスリモートモニタにメッセージのスレッドとタイムスタンプを提供だけでなく、ログビューアはこのデータへの生のアクセスを提供します。

設定する

モニタは、ツールバーの右上内の歯車のアイコンをクリックすることで調整可能ないくつかの永続的な設定があります。

いつでも目的のパスにADBパスを設定することができます。モニターの実行時に、それが有効な実行可能を指していない場合は、特定のコピーに、環境変数の場合、ADBのポイントを見てチェックすることにより、ADBの有効なコピーを探そうとします。
それが失敗した場合、モニターはANDROID_HOME下を検索します。

レコーディングディレクトリは、リモートホストに接続されたときにモニターが自動的にキャプチャファイルを保存する場所を指定します。デフォルトの場所は、現在のユーザーのドキュメントディレクトリ下のOVRMonitorRecordingsにあります。

フレームバッファ圧縮品質はフレームバッファのクライアント側の再圧縮のために使用される。
これは、クライアント上のメモリ使用量を大幅に節約を可能にしながら、ホストからの圧縮荷重の負荷を軽減するのに役立ちます。低品質の設定は、より多くのメモリの節約を提供するが、フレームバッファビューアでにブロッキングアーティファクト可能性があります。

ローカル環境設定

/sdcard/.oculusprefsに書き込まれたキーと値のペアのセットは、ローカル環境ではなく、特定のアプリケーションやユーザーよりもデバイスに結び付けられ、デバッグ設定を保存するための便利です。

デベロッパーモードは、お使いのデバイスのために有効になっていない限り、セキュリティ上の理由から、ローカル環境では許可されていません。
お使いのデバイスのためにデベロッパーモードを有効にするには、デベロッパーモードをご参照ください。

次のローカル環境設定はUnityインテグレーションとVRアプリのフレームワークをで現在利用可能です:

設定 設定可能な値 機能
dev_enableCapture “0” , “1” アプリケーションへの接続にオキュラスリモートモニタのサポートを有効にします。
dev_cpuLevel “0”, “1”, “2”, “3” 固定CPUレベルを変更します。
dev_gpuLevel “0”, “1”, “2”, “3” 固定GPUレベルを変更します。
dev_gpuTimings “0” or “1” logcatにおけるGPUのタイミング(不安定なためデフォルトではオフ)をオンにします。

ローカル環境設定値を設定するには、コマンドラインから次の操作を行う場合があります:

adb shell “echo dev_gpuTimings 1 > /sdcard/.oculusprefs”

また、一度に複数の値を設定する場合があります :

adb shell “echo dev_cpuLevel 1 dev_gpuLevel 2 > /sdcard/.oculusprefs”

値を設定した後、一時停止し、その後更新されるローカル環境設定ファイル用のアプリを再開

: 思いがけず終了したら、ローカルの環境設定をファイルを消去するか取り外す事を忘れないでください

ネイティブアプリケーションでは、次のを使用して独自のローカル環境設定のデバッグオプションを照会することができる :

const char * myDebugOptionStr =
ovr_GetLocalPreferenceValueForKey( “myDebugOption”, “0” );
if ( atoi( myDebugOptionStr ) > 0 )
{
// perform debug code
}

Androidデバッグ(現在機械翻訳のまま)

モバイルVR開発のためのAndroidのデバッグするためのガイド。

ADB

このドキュメントは、Android上で任意のアプリケーションのデバッグを改善するためのユーティリティ、ヒントとベストプラクティスについて説明

プラットフォーム。 これらのヒントのほとんどは、ネイティブとユニティ両方のアプリケーションに適用されます。

アンドロイドデバッグブリッジ(ADB)は、AndroidのSDKに含まとの通信に使用される主なツールです

デバッグのためのAndroidデバイス。私たちは、公式ドキュメントを読むことによって、それに習熟することをお奨め

ここにある: http://developer.android.com/tools/help/adb.html

ADBの使い方

OSシェルからのadbを使用して、それが直接的に接続し、Androidデバイスと通信することが可能である

USB経由、またはWiFi接続を介してTCP / IP経由。Androidのソフトウェア開発キットおよび適切な

デバイスドライバは、ADBを使用しようとする前にインストールする必要があります( デバイスと環境のセットアップガイドをもっと用

情報)。

USB経由でデバイスを接続するには、互換性のあるUSBケーブルでPCにデバイスを接続。接続した後、オープン

OSシェルとタイプアップ:

ADBデバイス

デバイスが正しく接続されている場合は、ADBは、次のようなデバイスIDリストが表示されます:

接続されたデバイスのリスト

ce0551e7デバイス

ないデバイスが検出されない場合は、adbを使用しなくてもよい。お使いのデバイスがリストにない場合は、最も可能性の高い問題は、あなたが行うことです

正しいサムスンUSBドライバを持っていない-を参照して 、デバイスと環境設定ガイドを参照してください。あなた

また、別のUSBケーブル、および/またはポートを試してみてください。

– デバイスを待っている –

特定のデバイスに応じて、検出が時々気難しいあることに注意してください。特に、いくつかの上

VRアプリが実行されている間、またはADBは、デバイスを待っているとき、からデバイスを防ぐことができる接続するデバイス、

確実に検出されている。そのような場合は、アプリを終了しようとすると再接続する前にCtrl-Cを使用して、ADBを停止

デバイス。 あるいは、adbのサービスは、ADBサービスした後、次のコマンドを使用して停止することができます

次のコマンドを実行するときに自動的に再起動されます。

ADBキル·サーバー

複数のデバイスを一度に取り付けることができ、これは、多くの場合、クライアント/サーバアプリケーションをデバッグするために有益である。

WIFI経由で接続してもUSB経由で接続されたときにも、ADBは、2つのデバイスとして、単一のデバイスが表示されます。で

複数のデバイスケースADBは、-sスイッチを使用して動作するように、どのデバイスと言われなければならない。例えば、2つと

接続されたデバイスは、ADBデバイスコマンドが表示されることがあります:

接続されたデバイスのリスト

ce0551e7デバイス

10.0.32.101:5555デバイス

リストされたデバイスは、2つの別々のデバイス、またはその両方WIFIを介して接続されたと差し込まれている一つのデバイスであってもよい

USB(おそらくバッテリを充電する)。この場合、すべてのadbコマンドが形を取る必要があります。

ADB -s <デバイスID> <コマンド>

ここで、<デバイスID>はADBデバイスによって報告されたIDです。したがって、たとえば、にlogcatコマンドを発行する

TCP / IPを介して接続されたデバイス:

ADB -s 10.0.32.101:55555 logcat -c

とUSB接続した機器に同じコマンドを発行する:

ADB -s ce0551e7

WiFi経由でADBの接続

USBを介してデバイスに接続する高速なTCP / IP接続を使用して、より一般的であるが、TCP / IP接続である

電話がに置かれたときのみに発生する動作をデバッグする場合は特に、時々不可欠

USB接続はギアVRジャックによって占有される場合にはギアVR、。

TCP / IP経由で接続するには、最初のデバイスのIPアドレスを決定し、デバイスが既にあることを確認してください

USB経由で接続。[設定]の下でデバイスのIPアドレスを見つけることができます – >デバイスについて – >ステータス。その後

次のコマンドを発行します。

ADB TCPIP <ポート>

ADB接続<IPアドレス>:<ポート>

例えば:

> ADB TCPIP 5555

TCPモードポートで再起動:5555

> ADB接続10.0.32.101:5555

10.0.32.101:5555に接続

デバイスがUSBポートから切断されてもよい。限りADBのデバイスはすべて、単一のデバイスを示しているように

adbのコマンドは、WiFi経由でデバイスに対して発行されます。

WiFi接続の使用を停止するには、OSのシェルから次のadbコマンドを発行します。

ADB切断

Logcat

AndroidのSDKには、どのようなアプリケーションを決定するために不可欠である、logcatのログユーティリティを提供し、

AndroidのOSがやっている。

logcatを使用するには、USBまたはWiFi経由でAndroidデバイスを接続し、OSシェル、およびタイプを起動します。

ADB logcat

デバイスが接続され、検出された場合、ログは直ちにシェルに出力を開始します。ほとんどの場合、この

生の出力が便利であるには余りにも冗長です。Logcatは、タグによるフィルタリングをサポートすることにより、これを解決します。唯一の特定を表示するには

タグ、使用します。

ADB logcat -s <タグ>

この例:

ADB logcat -s VrApp

「VrApp “タグでのみ出力を表示します。

ネイティブVRLibコードでは、メッセージは、一般的にLOG()マクロを使用して印刷することができます。ほとんどのソースファイルでは、この

そのファイルに特定のタグを渡すように定義される。LOG.Hは、いくつかの追加のログのマクロを定義していますが、すべてに解決

__android_log_print()を呼び出す。

Logcatを使用すると、クラッシュの原因を特定するには

アプリケーションがクラッシュしたときLogcatは必ずしも実行されなくなります。幸いなことに、それは最近のバッファを保持します

出力、多くの場合、コマンドログをキャプチャするために、クラッシュの直後logcatに発行することができる

クラッシュのためのバックトレースが含まれています。

ADB logcat> crash.log

単にその後、上記のコマンドを発行するシェルのログファイルにバッファリングされた出力をコピーする瞬間を与え、

エンドADB(Windowsの場合はCtrl + Cは、プロンプトまたはOS XターミナルプロンプトCMD)。へ:次に、「バックトレース」のログを検索する

クラッシュで始まるスタックトレースを見つけます。

あまりにも多くの時間が経過したとして、ログがバックトレースが表示されない場合は、そこにクラッシュの完全なダンプ状態がすべき

まだ存在しています。全体をファイルにdumpstateをリダイレクトするには、次のコマンドを使用します。

adbのシェルdumpstate> dumpstate.log

ログファイルにフルdumpstateをコピーすると、通常は単に現在のキャプチャよりも有意に長い時間がかかる

logcatログをバッファリングされたが、それは、クラッシュに関する追加情報を提供することができる。

より良いスタックトレースの取得

logcatキャプチャまたはdumpstateでバックトレースは、一般的にクラッシュが発生した関数を示しているが、

行番号を提供していません。クラッシュの詳細については、Androidのネイティブ開発キットを取得するには

(NDK)をインストールする必要があります。NDKがインストールされると、スタックのndkユーティリティはlogcatログを解析するために使用することができ、または

スタックの状態の詳細についてはdumpstate。NDK-スタックを使用するには、次を発行します。

NDK-スタック-sym <シンボルファイルへのパス> -dump <ソースログファイル>> stack.log

たとえば、このコマンドを実行します。

NDK-スタック-sym VrNative \ Oculus360Photos \ OBJ \ローカル\ armeabi-v7a -dump crash.log>

stack.log

という名前のファイルに出力するオクルス360枚の写真より詳細なスタックトレースをシンボル情報を使用しています

crash.logで見つかったバックトレースを使用して、stack.log。

アプリケーションパフォーマンス分析

モバイルVRアプリケーション開発時の性能解析へのガイド。

性能解析

このドキュメントでは、アプリケーションのパフォーマンス分析に固有の情報が含まれています。

このドキュメントは、ネイティブアプリケーション開発を 対象としている間、ここで提示ツールのほとんどもある

Unityまたは他のエンジンで開発されたAndroidのアプリケーションのパフォーマンスを改善するのに有用。

アプリケーションパフォーマンス

このセクションでは、アプリケーションのパフォーマンスを評価するためのツール、方法およびベストプラクティスについて説明します。

このセクションでは、FPSレポート、Systraceは、およびNDKプロファイラを確認します。

FPSレポート

logcatのロギングFPS。

毎秒アプリケーションフレーム数、レンダリング最後の眼のシーンをレンダリングするためにGPU時間、および

目のタイムワープをレンダリングするためのGPU時間は、の詳細については、第二(一回logcatすることが報告されている

logcat、参照 アンドロイドデバッグ)。報告されたGPU時間が解決する時間は含まれないことに注意してください

オンチップ·メモリからメインメモリに戻ってレンダリングするので、それは過小評価である。

報告されたGPU時間は約14ミリ秒を超えている場合、実際の描画は、フレームレートを制限している、と

解像度/幾何学/シェーダーの複雑さが戻って60 FPSまで取得するために削減する必要があります。GPU時間がある場合

大丈夫とアプリケーションが60 FPSではまだされていない場合、CPUがボトルネックになっている。ユニティでは、これは、のいずれかである

スクリプトを実行UnityMainスレッド、またはOpenGLドライバ·コールを発行UnityGfxDeviceスレッド。Systraceはある

CPU使用率を調査するための良いツール。UnityGfxDeviceスレッドが時間の長いブロックを取っている場合には、還元

描画呼び出しバッチの数は、改善のための主要なツールです。

Systraceは

Systraceはは、Android開発ツール(ADT)バンドルに付属するプロファイリングツールです。Systraceはを記録することができます

Google Chromeブラウザで表示できるシステム活動の詳細なログ。

Systraceはと、それはむしろ単一のアプリケーションよりも、システム全体が何をしているかの概要を見ることができる。

これはスケジュールの競合を解決するか、アプリのように実行していない正確に理由を見つけるための非常に貴重なことができます

期待した。

Windowsでは:Systraceはを使用するための最も簡単な方法は、一緒にインストールされたmonitor.batファイルを実行することです

ADTバンドル。\アンドロイド\ ADT-バンドルのWindows-:これはADTバンドルのインストールフォルダ(例えば、Cで見つけることができます

x86_64-20131030)SDK / Toolsフォルダの下に。Androidのデバッグモニタを起動するためにmonitor.batダブルクリックします。

図34:Androidのデバッグモニタ

左側の列に、必要なデバイスを選択し、アイコンをクリックしSystraceはを切り替えるには、上記の赤でハイライト

ロギング。ダイアログには、トレースの出力の.htmlファイルの選択を可能に表示されます。トレースがオフに切り替えられると、

トレースファイルは、Google Chromeでそれを開いて表示することができます。

あなたは、HTMLドキュメントをナビゲートしながら、パンとズームするWASDキーを使用することができます。追加のキーボードの場合

:ショートカットは、以下のマニュアルを参照してください http://developer.android.com/tools/help/systrace.html

NDKプロファイラ

gprofの互換プロファイル情報を生成するために、NDKプロファイラを使用してください。

AndroidのNDKプロファイラは、Androidのためにgprofのポートです。

このリリースでテストされています最新のバージョンは、3.2であり、以下からダウンロードすることができます

場所: https://code.google.com/p/android-ndk-profiler/

C:\開発\アンドロイド\アンドロイド-NDK-R9Cダウンロードしたら、あなたのNDKにパッケージの内容を解凍し、パス、例えばをソース

\源。

PATHにNDKの構築済みのツールを追加し、例えばC:\開発\アンドロイド\アンドロイド-NDK-R9C \チェーン\アーム-Linuxの場合

androideabi-4.8 \ビルトインの\ WINDOWS-x86_64の\ binを。

AndroidのMakefileの変更

1.プロファイリング情報をでコンパイルしNDK_PROFILEを定義する

LOCAL_CFLAGS:= -pg -DNDK_PROFILE

NDK-プロファイラライブラリ2.リンク

LOCAL_STATIC_LIBRARIES:=アンドロイド-NDK-プロファイラ

3.インポートアンドロイド-NDK-プロファイラモジュール

$(コール·インポート·モジュール、アンドロイド-NDK-プロファイラー)

ソースコードの変更

monstartupとあなたの初期化およびシャットダウン機能にmoncleanupの呼び出しを追加します。monstartup呼び出さないでくださいまたは

あなたのアプリの有効期間中に複数回moncleanup。

#ifの定義されている(NDK_PROFILE)

のextern “C”ボイドmonstartup(char型のconst *);

のextern “C”の空隙moncleanup();

#endifの

のextern “C” {

空洞Java_oculus_VrActivity2_nativeSetAppInterface(JNIEnvの* JNI、JCLASS

clazzで){

#ifの定義されている(NDK_PROFILE)

のsetenv(「CPUPROFILE_FREQUENCY “、” 500 “、1); //は秒当たりの割り込み、デフォルト

100

monstartup(「libovrapp.so “);

#endifの

APP->初期化();

}

空洞Java_oculus_VrActivity2_nativeShutdown(JNIEnvの* JNI){

APP->シャットダウン();

#ifの定義されている(NDK_PROFILE)

moncleanup();

#endifの

}

} //をextern “C”

マニフェストファイルの変更

あなたのアプリをSDカードへの書き込みをするためにあなたが許可を追加する必要があります。gprofの出力ファイルは、/ SDカード/に保存されます

gmon.outという。

<使用する許可アンドロイド:名= “android.permission.WRITE_EXTERNAL_STORAG E” />

あなたのアプリをプロファイリング

プロファイリングデータを生成するには、あなたのアプリケーションを実行し、[戻る]ボタンを押すことでmoncleanup関数呼び出しをトリガー

お使いの携帯電話に。あなたのアプリの状態に基づいて、これはをOnStop()またはOnDestroy()によってトリガされます。かつて

moncleanupはプロファイリングデータが/sdcard/gmon.outであなたのAndroidデバイスに書き込まれます、トリガーされた。

ADB:あなたのプロジェクトは、次のコマンドを使用してPC上に配置されているフォルダにファイルgmon.outをコピーします

/sdcard/gmon.out引っ張る

プロファイル情報を表示するには、それに非取り除かライブラリ、例えばを渡し、gprofのツールを実行します。

腕のlinux-androideabi-gprofのOBJ /ローカル/ armeabi / libovrapp.so

gprofのプロファイル情報の解釈については、以下を参照してください。 http://sourceware.org/binutils/docs/

gprofを/ Output.html

レンダリング性能:OpenGL ESのためのトレーサー

OpenGL ESのは、アプリケーションのための呼び出しをキャプチャするためのOpenGL ESのためのトレーサーを使用してください。

トレーサーは、ADTバンドルに付属するプロファイリングツールです。

1。 Windowsでは:トレーサーを使用するための最も簡単な方法は、一緒にインストールされmonitor.batファイルを実行することです

ADTバンドル。\アンドロイド\ ADT-バンドルのWindows-:これはADTバンドルのインストールフォルダ(例えば、Cで見つけることができます

x86_64-20131030)SDK / Toolsフォルダの下に。ただAndroidのデバッグモニタを起動するためにmonitor.batをダブルクリックします。

。2 >パースペクティブを開く…とOpenGL ESのためのトレーサーを選択- Windowsに移動します。

3。以下のようにトレースキャプチャ]ボタンをクリックします。

図35:OpenGL ESのためのトレーサー

4。トレース·オプションを入力し、トレースを選択します。

注:パッケージ名およびアクティビティを見つけるための簡単な方法は、logcatのランニングであなたのアプリを起動することです。

パッケージマネージャgetActivityInfoラインは情報が表示され、例えば、com.Oculus.Integration /

com.unity3d.player.UnityPlayerNativeActivity。

図36:OpenGL ESのためのトレーサー

注:すべてのデータの収集オプションを選択すると、トレースが非常に大きいとに遅くなることがあり

キャプチャ。

トレーサーは、あなたのアプリを起動し、フレームをキャプチャを開始します。

図37:OpenGL ESのためのトレーサー

5次のオプションを有効にします。

  • )(eglSwapBuffers上のフレームバッファの内容を収集
  • )(glDraw *上のフレームバッファの内容を収集

6。あなたは十分なフレームを収集したら、トレースの停止]を選択します。

図38:OpenGL ESのためのトレーサー

7。ボタンを選択し、先ほど撮影し.gltraceファイルをインポートするために赤で上記強調した。これは長くなる可能性が

プロセス。トレースがロードされると、あなたはすべてのキャプチャしたフレームのためのGLコマンドを表示することができます。

PAGETOP
Copyright © 近未来ラボ All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.