From 3e820bee2b15a4b0ebf11d455dce5119ca0a94f7 Mon Sep 17 00:00:00 2001 From: Joe Fernandez Date: Tue, 19 Jun 2012 15:48:29 -0700 Subject: [PATCH] docs: GL Tracer, Device Monitor Tools for SDK r20 Change-Id: Ib45210b88a7eb93e3bba4f7d535f344ccb054a72 --- docs/html/images/gltracer/dialog-trace.png | Bin 0 -> 43438 bytes docs/html/images/gltracer/icon-capture.png | Bin 0 -> 331 bytes docs/html/images/gltracer/icon-load-trace.png | Bin 0 -> 538 bytes docs/html/tools/help/gltracer.jd | 103 ++++++++++++++++++ docs/html/tools/help/monitor.jd | 24 ++++ docs/html/tools/tools_toc.cs | 2 + 6 files changed, 129 insertions(+) create mode 100644 docs/html/images/gltracer/dialog-trace.png create mode 100644 docs/html/images/gltracer/icon-capture.png create mode 100644 docs/html/images/gltracer/icon-load-trace.png create mode 100644 docs/html/tools/help/gltracer.jd create mode 100644 docs/html/tools/help/monitor.jd diff --git a/docs/html/images/gltracer/dialog-trace.png b/docs/html/images/gltracer/dialog-trace.png new file mode 100644 index 0000000000000000000000000000000000000000..86676235eb13931c14eadeeb562ca12cb9a9ea56 GIT binary patch literal 43438 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/gltracer/icon-capture.png b/docs/html/images/gltracer/icon-capture.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbdb3b7b1ced23aac0d28a269789b61c3e851a6 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8pdfpRr>`sf9X3e;7XHUQ50(IhBuiW)N}Tg^b5rw57@Uhz6H8K46v{J8 zG8EiBeFMT9`NV;Wc6hothFF|VuKE4!YdsqmgD`VzLu*9q(bZlLa=cT$+XNmbgfJ&? zRUNJ>kScocjIoV9U*5>Tz~BI{!YyvMA~&A?`}TPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX1{n|n9Y$|9Y5)KL8FWQhbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b0f$LMK~y-)t&__y15p&leA7 ze9N2r{m#ALIY$U;YMehPgFniWd=QPrnNZGII@eHC9e@UBHoa~q1C3>f8RnY8=P&Gq z?igH9*a_afU&s2;365ej9A;g(AJYm0H&BmlI> zXJ!sBnLSaN^fZwrTFd~i?||{GQ`|W==K9;-jmc6U41E4;`l^e}Aujtv0E~6kr!@n( zY!aPi4s#dcz-}-RSVw8zkICm-B{M((+_^FU+nW9(KsTbPbI?|jsO()k;OQln*8CKU zvk|yS1&p*-;k1gZ2g3BtY_fWBonqbygc+JwsLQv1JqIiP5Cd}xp+^INLRq3JS4KeK z_%?!WM49q5(^X#ZHQ=q^Uf({8XBz550_3!c^i;SQZLg+C&P+dv$-0VsyyVxr@LAs( c|7{yz0gmyMy;%=o(f|Me07*qoM6N<$g3+_!egFUf literal 0 HcmV?d00001 diff --git a/docs/html/tools/help/gltracer.jd b/docs/html/tools/help/gltracer.jd new file mode 100644 index 0000000000000..35c405ef7a9b2 --- /dev/null +++ b/docs/html/tools/help/gltracer.jd @@ -0,0 +1,103 @@ +page.title=Tracer for OpenGL ES +@jd:body + +

+
+

In this document

+
    +
  1. Running Tracer
  2. +
  3. Generating a Trace
  4. +
  5. Analyzing a Trace
  6. +
+

See also

+
    +
  1. Tools
  2. +
+
+
+ +

Tracer is a tool for analyzing OpenGL for Embedded Systems (ES) code in your Android application. +The tool allows you to capture OpenGL ES commands and frame by frame images to help you understand +how your graphics commands are being executed.

+ +

Note: The Tracer tool requires a device running Android 4.1 (API +Level 16) or higher.

+ + +

Running Tracer

+ +

Tracer can be run as part of the Eclipse Android Development Tools (ADT) plugin or as part of the +Device Monitor tool.

+ +

To run Tracer in Eclipse:

+ +
    +
  1. Start Eclipse and open a workspace that contains an Android project.
  2. +
  3. Activate the perspective for Tracer by choosing Window > Open Perspective > +Other...
  4. +
  5. Select Tracer for OpenGL ES and click OK.
  6. +
+ +

To run Tracer in Device Monitor:

+ +
    +
  1. Start the Device Monitor tool.
  2. +
  3. Activate the perspective for Tracer by choosing Window > Open +Perspective...
  4. +
  5. Select Tracer for OpenGL ES and click OK.
  6. +
+ +

Generating a Trace

+ +

Tracer captures OpenGL ES command execution logs and can also capture progressive images of the +frames generated by those commands to enable you to perform logical and visual analysis of your +OpenGL ES code. The Tracer tool operates by connecting to a device running Android 4.1 (API Level +16) or higher that is running the application you want to analyze. The Tracer tool captures trace +information while the application is running and saves it to a {@code .gltrace} file for +analysis.

+ + +

Figure 1. Trace capture dialog box.

+ +

To capture an OpenGL ES trace for an Android application:

+ +
    +
  1. Connect the Android device using a USB cable and make sure it is enabled for debugging. For +more information, see Using Hardware Devices.
  2. +
  3. In Eclipse or Device Monitor, activate the Tracer for OpenGL ES +perspective.
  4. +
  5. On the toolbar, click the trace capture button ().
  6. +
  7. In the dialog box, select the Device to use for the trace.
  8. +
  9. In the Application Package field, enter the full application package name +containing the activity you want to trace, for example: {@code com.example.android.opengl}
  10. +
  11. In the Activity to launch field, enter the class name of the activity you +want to trace, for example: {@code OpenGLES20Complete} +

    Note: If you are tracing the default activity for the +application, you can leave this field blank.

    +
  12. +
  13. Select the desired Data Collection Options. +

    Note: If you want to capture progressive frame images for each +drawing call, enable the Read back currently bound framebuffer on glDraw*() option. +Be aware that using this option can result in large trace files.

    +
  14. +
  15. Enter a Destination File for the trace output.
  16. +
  17. Click Trace to start the trace capture.
  18. +
  19. On the connected device, exercise the functions of your application you want to trace.
  20. +
  21. In the dialog box, Stop Tracing to complete the tracing run.
  22. +
+ +

Analyzing a Trace

+ +

After you have generated a trace, you can load it for review and analysis.

+ +

To review a captured trace:

+ +
    +
  1. In Eclipse or Device Monitor, activate the Tracer for OpenGL ES +perspective.
  2. +
  3. On the toolbar, click the trace load button ().
  4. +
  5. After loading a trace, select a frame and review the OpenGL ES calls. Drawing commands are +highlighted in blue.
  6. +
\ No newline at end of file diff --git a/docs/html/tools/help/monitor.jd b/docs/html/tools/help/monitor.jd new file mode 100644 index 0000000000000..8e2ea36ae25dd --- /dev/null +++ b/docs/html/tools/help/monitor.jd @@ -0,0 +1,24 @@ +page.title=Debug Monitor +@jd:body + +

Android Debug Monitor is a stand-alone tool that provides a graphical user interface for +several Android application debugging and analysis tools. The Monitor tool does not +require installation of a integrated development environment, such as Eclipse, and encapsulates the +following tools:

+ + + +

Usage

+ +

To start Debug Monitor, enter the following command from the SDK tools/ +directory:

+
monitor
+ +

Start an Android emulator or connect an Android device via USB cable, and connect the Debug +Monitor to the device by selecting it in the Devices window.

diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs index 94bf8bc8e802b..c7cdded460f3d 100644 --- a/docs/html/tools/tools_toc.cs +++ b/docs/html/tools/tools_toc.cs @@ -130,6 +130,7 @@ class="en">Tools Help
  • ADT
  • android
  • bmgr +
  • Device Monitor
  • dmtracedump
  • Draw 9-Patch
  • Emulator
  • @@ -153,6 +154,7 @@ class="en">MonkeyRunner
  • ProGuard
  • +
  • Tracer for OpenGL ES
  • Traceview
  • zipalign