¿Por qué la documentation recomienda que networkinguzca el sobregiro en dispositivos Android?

Los desarrolladores de Android se recomiendan para networkingucir el sobregiro en sus aplicaciones.

https://developer.android.com/topic/performance/rendering/overdraw.html

A los desarrolladores de iOS se les advierte sobre sobregiros, pero no se enfatiza. Más bien tienen una opción para colorear capas combinadas.

https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/MeasuringGraphicsPerformance.html

Por lo que entiendo en iOS CoreGraphics pone capas en la GPU y la GPU las combina en el time de renderizado. Calcular qué píxeles mostrar es más fácil cuando los píxeles no se mezclan (canal alfa).

¿Cuál es la diferencia técnica que hace que Android se centre en la sobregirada? ¿Puedes proporcionar una reference técnica?

Supongo que se debe principalmente a las diferencias entre el algorithm del pintor y el almacenamiento en búfer Z.

Con el primero, dibuja cada vista de atrás hacia adelante de acuerdo con su layout, extrayendo píxeles según sea necesario. Esto puede llevar a un poco de desperdicio, ya que los píxeles tienen que representarse independientemente de si están ocluidos o no.

Z-Buffering puede mejorar esto al usar Z-Culling, donde algunos píxeles se pueden eliminar temprano si las capas se clasifican correctamente.

Originalmente, Android usaba una stack de procesamiento totalmente basada en software, por lo que Z-Buffering no estaba disponible y, por lo que yo sé, se utilizó un simple algorithm de Painter's. iOS siempre se basó en renderizado acelerado por hardware y, por lo tanto, podría tomar (alguna) ventaja de Z-Buffering. Pero desde Android 3.0, Android también comenzó a implementar la renderización basada en hardware.

Sin embargo, las cosas no son tan simples en la práctica. Por un lado, el uso de capas de hardware y la sorting de profundidad también conllevan algún costo, y si se trata de operaciones de dibujo muy simples como las aplicaciones mobilees (como dibujar un bitmap, en lugar de complejas operaciones basadas en píxeles que tiene con charts en 3D) Los píxeles podrían ser más baratos que tratar de evitarlo. Cuando se trata de transparencias, las cosas también se complican mucho más.

Supongo que tanto Android como iOS utilizan una combinación de técnicas, por lo que lo más probable es que Overdraw se produzca en ambas plataforms. Es una buena idea en cualquier escenario tratar de evitar el problema por completo al tratar de evitar la superposition innecesaria.

Los desarrolladores de iOS son instruidos para evitar el sobregiro:

Elimina el dibujo cuando tu aplicación o su contenido no está visible; por ejemplo, cuando su aplicación está en segundo plano, o cuando su contenido está oculto por otras vistas, recortadas o fuera de pantalla.

desde el enlace que mencionaste.