title: Forbidden things and tricks of OpenGL ES 1.x programming(Android)
body: <p><strong>This question is about OpenGL ES 1.x programming for Android.</strong></p>
  <p>I followed <a href="http://blog.jayway.com/2010/01/01/opengl-es-tutorial-for-android-%E2%80%93-part-iii-%E2%80%93-transformations/" rel="nofollow noreferrer">this tutorials</a> and tested code on Samsung Galaxy Ace and it lagged a bit.
  Some code of that tutorial:</p>
  <pre><code>public void onDrawFrame(GL10 gl) {
      // Clears the screen and depth buffer.
      gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
      // Replace the current matrix with the identity matrix
      gl.glLoadIdentity();
      // Translates 10 units into the screen.
      gl.glTranslatef(0, 0, -10); 
  
      // SQUARE A
      // Save the current matrix.
      gl.glPushMatrix();
      // Rotate square A counter-clockwise.
      gl.glRotatef(angle, 0, 0, 1);
      // Draw square A.
      square.draw(gl);
      // Restore the last matrix.
      gl.glPopMatrix();
  
      // SQUARE B
      // Save the current matrix
      gl.glPushMatrix();
      // Rotate square B before moving it, making it rotate around A.
      gl.glRotatef(-angle, 0, 0, 1);
      // Move square B.
      gl.glTranslatef(2, 0, 0);
      // Scale it to 50% of square A
      gl.glScalef(.5f, .5f, .5f);
      // Draw square B.
      square.draw(gl);            
  
      // SQUARE C
      // Save the current matrix
      gl.glPushMatrix();
      // Make the rotation around B
      gl.glRotatef(-angle, 0, 0, 1);
      gl.glTranslatef(2, 0, 0);
      // Scale it to 50% of square B
      gl.glScalef(.5f, .5f, .5f);
      // Rotate around it's own center.
      gl.glRotatef(angle*10, 0, 0, 1);
      // Draw square C.
      square.draw(gl);
  
      // Restore to the matrix as it was before C.
      gl.glPopMatrix();
      // Restore to the matrix as it was before B.
      gl.glPopMatrix();
  
      // Increse the angle.
      angle++;
  }
  </code></pre>
  <ul>
  <li>What are the week parts here?</li>
  <li>What should one do to optimize OpenGL ES program for Android?</li>
  <li>Should I rather use NDK in big graphics projects?</li>
  <li>Is it worth goind direct to OpenGL ES 2.0?</li>
  </ul>
  <p>As far as I didn't find any good and complex book on OpenGL ES 1.x programming for Android, I adress this question to honorable users of Stackoverflow.
  Would appreciate any help.</p>