1.0.0 / July 29, 2012
(4.8/5) (12)

Description

This app is targeted at developers, or anyonecurious about performance differences between OpenGL and Canvas.Specifically, it measures the performance of drawing 2D spritesexplicitly using OpenGL ES 2.0 with a hybrid of Java and C, anddrawing 2D sprites using Canvas with Java.

When you are done running a test, you can see a benchmarkanalysis of the performance by pressing the device's backbutton.

It is similar to Sprite Method Test by Chris Pruett, but it isupdated for OpenGL ES 2.0. His Sprite Method Test runs the outdatedES 1.0, and is broken on Jelly Bean (because of tripplebuffering).

This app works on all devices which support OpenGL ES 2.0.

This is ad-free and nag-free.


More details:

Specifically, this app measures the performance of drawing 2Dsprites explicitly using OpenGL ES 2.0 with a hybrid of Java and C,and drawing 2D sprites using Canvas with Java.

On every frame:
The background color shifts slightly, pulsing between red andwhite.
Each sprite moves a random (Gaussian) amount. If the center of asprite goes over an edge of the screen, the sprite moves to arandom screen location.

The Canvas test uses a SurfaceView and Canvas.drawBitmap(). Allthe calculations are done in Java (using Random.nextGaussian() andRandom.nextFloat()) on a float[].

The OpenGL ES 2.0 tests use a GLSurfaceView in Java. Calculationis done in C (using drand48() and an inline C equivalent of Java'sGaussian algorithm) on a native float[]. Drawing is also done in C,using glDrawArrays(GL_POINTS, ...). C (NDK) methods are calledevery frame from Java through the JNI.

All tests have the identical overhead of profiling operations inJava.

Statistics:
The FPS information is about when frames are actually posted to thescreen (technically, the SurfaceFlinger).
The Draw information is about the time it takes to issue (andglFlush() + glFinish(), in the OpenGL test) the drawing commands.It does not count the time to actually flip screen buffers.
The Push information (VBO only) is about the time it takes to pushthe vertex data to the GPU buffer. This will often be <.5ms(which rounds to 0.000s) per frame. When using the non-VBO OpenGLtest, this time is essentially included in the draw time instead.In practical applications, it might take longer to push data to theGPU. This example contains only one VBO (or Vertex array) with 2floats per sprite. Practical applications would have more data(such as size and texture information).
The Calc information is about the time it takes to calculate aframe's background color and the new position of each sprite. WhenJIT is enabled, calculation time is comparable between the Java(Canvas) test and the native (Open GL) tests, but with JITdisabled, Java suffers a significant penalty.

App Information Compare Sprite Draw Method

  • App Name
    Compare Sprite Draw Method
  • Package Name
    com.terriblysimple.android.spritetest
  • Updated
    July 29, 2012
  • File Size
    60k
  • Requires Android
    Android 2.2 and up
  • Version
    1.0.0
  • Developer
    Terribly Simple
  • Installs
    1,000 - 5,000
  • Price
    Free
  • Category
    Libraries & Demo
  • Developer
  • Google Play Link

Terribly Simple Show More...

Compare Sprite Draw Method 1.0.0 APK
This app is targeted at developers, or anyonecurious about performance differences between OpenGL and Canvas.Specifically, it measures the performance of drawing 2D spritesexplicitly using OpenGL ES 2.0 with a hybrid of Java and C, anddrawing 2D sprites using Canvas with Java.When you are done running a test, you can see a benchmarkanalysis of the performance by pressing the device's backbutton.It is similar to Sprite Method Test by Chris Pruett, but it isupdated for OpenGL ES 2.0. His Sprite Method Test runs the outdatedES 1.0, and is broken on Jelly Bean (because of tripplebuffering).This app works on all devices which support OpenGL ES 2.0.This is ad-free and nag-free.More details:Specifically, this app measures the performance of drawing 2Dsprites explicitly using OpenGL ES 2.0 with a hybrid of Java and C,and drawing 2D sprites using Canvas with Java.On every frame:The background color shifts slightly, pulsing between red andwhite.Each sprite moves a random (Gaussian) amount. If the center of asprite goes over an edge of the screen, the sprite moves to arandom screen location.The Canvas test uses a SurfaceView and Canvas.drawBitmap(). Allthe calculations are done in Java (using Random.nextGaussian() andRandom.nextFloat()) on a float[].The OpenGL ES 2.0 tests use a GLSurfaceView in Java. Calculationis done in C (using drand48() and an inline C equivalent of Java'sGaussian algorithm) on a native float[]. Drawing is also done in C,using glDrawArrays(GL_POINTS, ...). C (NDK) methods are calledevery frame from Java through the JNI.All tests have the identical overhead of profiling operations inJava.Statistics:The FPS information is about when frames are actually posted to thescreen (technically, the SurfaceFlinger).The Draw information is about the time it takes to issue (andglFlush() + glFinish(), in the OpenGL test) the drawing commands.It does not count the time to actually flip screen buffers.The Push information (VBO only) is about the time it takes to pushthe vertex data to the GPU buffer. This will often be <.5ms(which rounds to 0.000s) per frame. When using the non-VBO OpenGLtest, this time is essentially included in the draw time instead.In practical applications, it might take longer to push data to theGPU. This example contains only one VBO (or Vertex array) with 2floats per sprite. Practical applications would have more data(such as size and texture information).The Calc information is about the time it takes to calculate aframe's background color and the new position of each sprite. WhenJIT is enabled, calculation time is comparable between the Java(Canvas) test and the native (Open GL) tests, but with JITdisabled, Java suffers a significant penalty.
Bouncy Circles 1.0.0 APK
Tilt your device to change how gravityaffectsthe floating particles.When your device is level, they are calm, but globs of themcanexplode!If you have your device upright, it will force them into a wall oracorner and they will explode constantly!Long-press on the screen or press your device's Menu buttontochange the settings.If the simulation is laggy, try lowering the quantity.This app uses / is:AccelerometerPhysicsExplosionsSimulationSimpleEasy
Multitouch Test with Pressure 1.3 APK
Displays all pointers touching the screenwiththeir pointer ID, along with the size and pressure data-Size data is shown as the size of the filled circle and thethicklines.-Pressure data is shown as the size of the hollow circle andthespread of the thin lines.-A color is assigned to each pointer touching the screen.-Customizable colors, orientation, size, etc.