Este pequeño truco no hace tu Android más rápido, aunque lo parezca

Enrique Pérez el 14/04/2014 a las 18:48

animaciones-desactivar

Optimizar el rendimiento de Android siempre ha sido una de las tareas pendientes. Todo usuario busca maneras de hacer que su smartphone vaya más rápido y hay múltiples trucos para conseguir algo parecido. Al final sin embargo todo cambio se basará más en la percepción que no en una mejora real de los recursos del sistema.

Reducir el tiempo de las animaciones para ganar fluidez

Android está construido para trabajar con animaciones. Aunque en las opciones de desarrollo podemos desactivarlas o reducir su tiempo de duración. Este truco es bastante utilizado para mejorar la experiencia general del sistema y muchas webs como CNET o ALT1040 lo han recomendado para hacer nuestro Android más rápido. Sin embargo, ya que muchos nos han preguntado acerca de ello, tenemos que advertir que estos cambios son más visuales que otra cosa.

La animación básicamente es aquel movimiento que hay entre el cierre de una aplicación y la apertura de otra, o entre el launcher y una aplicación. Es la transición entre dos procesos. Pero el tiempo marcado por cada proceso es independiente de la animación que haya entre los dos.

Pongamos un ejemplo numérico: Una app se cerrará en el minuto 1:00 y otra se abrirá en el minuto 1:02. Si existiese una animación, lo que ocurriría es que a los 0:59 empezaría y no terminaría hasta el minuto 1:03. Reducir el tiempo de animación lo que provoca es que la animación empiece en el 1:00 y termine en el 1:02.

La cosa está, en que aunque desactivemos la animación, la aplicación seguirá abriéndose en el minuto 1:02 y no antes, ya que el tiempo de retraso (2s) entre el cierre y la apertura no está provocado por la animación, sino por la propia carga de CPU que la app conlleva. ¿Por qué notamos entonces una mejora en la velocidad? Pues porque en el ejemplo del principio veremos 4s de animación o cambios, mientras que en el último solo durante dos segundos nuestros ojos verán un cambio.

Mejora visual, ¿pero útil?

Las animaciones están a cargo de la GPU, y en principio la mayoría de móviles y tablets Android de hoy en día tienen una GPU suficientemente potente como para ocuparse de estas animaciones sin que lo demás (batería inclusive) tenga que sobrecargarse.

animaciones-android

Por tanto, ¿recomendamos desactivar o reducir el tiempo de las animaciones? Pues sí, sobretodo si quieres tener un smartphone que parezca que todo se abre instantáneamente. ¿Realmente tiene un impacto en el rendimiento y la batería? Aquí es donde dudamos más, pues estas animaciones solo son una manera elegante de ocultar que la app a abrir aún se está cargando.

Esperamos haber aclarado un poco este punto y damos la bienvenida no ya sobre si se nota o no se nota, sino sobre la física y la programación que hay detrás de estos procesos en Android. Pues entender como funciona nuestro sistema es la mejor forma de sacar el máximo rendimiento de él.

Te puede interesar
  • Astur

    A mi me mola desactivarlo porque parece más fluido, especialmente con ART

  • PARTISAN0

    Claro, ahora resulta que DUDAMOS si afecta eso a la batería? Claro claro: metemos más trabajo a la GPU (por poco que sea) y no consume más…
    Qué será lo próximo? Decir que dudamos si el 2G o el 3G o el 4G (en igualdad de nivel de señal) consumen más en el orden que he puesto? En fin…

    • No creo que la diferencia de consumo de batería entre 2G, 3G o LTE sea equiparable a el hecho de desactivar las animaciones. Si bien es evidente que puedes ahorrar algo de batería quitando animaciones porque es algo menos que se procesa, dudo que se vea reflejado a niveles perceptibles.

      • PARTISAN0

        No es comparable, lo sé… pero también sé (y tú también por lo que has dicho) que esas animaciones sí cinsumen batería y aquí, en este artículo, se ha puesto eso en duda. Duda ninguna: si salgo a correr quemo calorías, si la CPU o la GPU tienen más tareas para hacer, por pequeñas que sean, consumen más batería. Es algo impepinable.

        • ¿En qué punto “pequeña” se puede considerar “despreciable”?

          • PARTISAN0

            Y en qué punto inexistente se puede considerar existente?

          • Les Paul

            No dicen que no exista, dicen que dudan que suponga un impacto en la duración de la batería o el rendimiento. ¿Cuándo podemos decir que no supone un impacto en la duración de la batería? Cuando no exista diferencia perceptible entre que suceda o no suceda.

            ¿Que a ti te parece que la batería te dure dos (o diez) segundos menos es una diferencia perceptible? Cojonudo, ahora todos comprendemos tu monumental cabreo con el redactor. Problemas del primer mundo, que se llaman.

            En fin, sigue ahí sacando las puntillas. Eres el típico tío coñazo que corrige a cualquiera con obviedades totalmente irrelevantes. Crees que es algo interesante, pero no lo es. “- La forma esférica de la Tierra… + No es esférica, está achatada”. Algo así.

          • PARTISAN0

            2 o 10 segundos menos de duración de batería? Supongo que eso es porque has hecho un estudio pormenorizado del tema, verdad? Yo en ningún momento he hablado de tiempos, sólo de que aumenta el consumo de batería (lo cual es totalmente cierto). En fin, espero los números de tu estudio así como pruebas de que lo hayas realizado. Entonces también me parecerá cojonudo tu estudio. Problemas de ingenieros, que se llaman ;).

            Además estás presuponiendo que todos los terminales tienen la misma GPU o, al menos, de gran calidad… te invito a que compruebes en un Defy el impacto que puede suponer eso y, en teléfonos más modernos, los que llevan un procesador Mediatek (con su GPU de mierda) o, peor todavía, los que montan procesadores marca Nisu(padrelosconoce).

            Para que lo entiendas mejor: si aumentamos el tiempo de transición (metiendo animaciones o lo que sea) aumenta el tiempo en el que la GPU tiene actividad (=consume) y lo mismo pasa con la CPU (por si no lo sabes no puede estar a 0 MHz o sin recibir energía mientras está el terminal encendido ;) y eso es igual a consumo). Pero claro, todo eso sucede con la pantalla apagada, verdad? Ah, no!! Que es con ella encendida!!!!! ;)

            A los ingenieros esto no se nos escapa, otros preferís sacar la lengua a pastar basándoos en la ignorancia: has olvidado el tiempo de pantalla encendida. Pero claro, todos sabemos que medio segundo o un segundo por apertura/cierre de aplicación y por cada transición entre actividades dentro de una misma aplicación así como acceder al lanzador de aplicaciones y cerrarlo no tiene ningún impacto en la batería. Muchas gracias por compartir tus conocimientos con todos… un consejo: para la próxima reflexiona un poco antes de abrir la bocaza y meter la pata. Y los insultos, aunque hayas editado el mensaje para eliminarlos, te los puedes meter por donde se evacúan los sólidos habitualmente.

          • Les Paul

            “2 o 10 segundos menos de duración de batería? Supongo que eso es porque has hecho un estudio pormenorizado del tema, verdad? Yo en ningún momento he hablado de tiempos, sólo de que aumenta el consumo de batería (lo cual es totalmente cierto). En fin, espero los números de tu estudio así como pruebas de que lo hayas realizado. Entonces también me parecerá cojonudo tu estudio. Problemas de ingenieros, que se llaman ;).”

            Ejem… ¿Y tus estudios? ¿O esto como va? ¿Tu afirmas X y quien te rebata debe aportar estudios, pese a que tú no has aportado ningún estudio sobre X? Un tanto hipócrita, ¿eh?

            “Para que lo entiendas mejor: si aumentamos el tiempo de transición (metiendo animaciones o lo que sea) aumenta el tiempo en el que la GPU tiene actividad (=consume)”

            ¿Y quién te dice que aumente el tiempo de transición? Existe un tiempo de carga, y a éste no se le suma el tiempo de transición. Una animación de 1s no tarda 1s en procesarse (y en este caso no lleva ni un segundo), el tiempo necesario para calcular 15 o 30 imágenes idénticas pero redimensionadas a diferentes tamaños (que es lo único que hace la animación) es anecdótico. Y, siendo como es, una animación rápida, ni siquiera es necesario hacer un reescalado de cada una de esas imágenes (que sería sumar los colores de píxeles contiguos para evitar, en la medida de lo posible, pérdida de información), sino que bastaría con dejar de mostrar, por ejemplo, 1 de cada 16 píxels, luego 1 de cada 8, etc…

            “Para que lo entiendas mejor: si aumentamos el tiempo de transición (metiendo animaciones o lo que sea) aumenta el tiempo en el que la GPU tiene actividad (=consume)..”

            Como dije antes, el tiempo de transición no tiene que aumentar, o su aumento puede ser de unos pocos milisegundos para una animación tan simple, aunque la animación dure un segundo. Cuando se va a realizar un cálculo en el que no hay variables en tiempo de ejecución que puedan afectar el resultado, se puede almacenar todo en un buffer para utilizarlo posteriormente. De hecho, es lo que se suele hacer para optimizar el rendimiento.

            Como dije también en el mensaje anterior, ni siquiera sabemos si los cálculos se llevan a cabo igualmente, incluso con la animación desactivada. Esto depende más de la implementación que haya realizado Google.

          • En el punto que si hay una frecuencia activa y una ram libre el uso de esta no aumentara su consumo pues le dará igual una que 30 tareas que no suban su margen de necesidad.

            Ej: si tenemos 5 cajones y estamos usando 3, si estamos usando esos 3 constantemente no hará que la capacidad de los otros se vea mermada.

            Esto hablando de animaciones del sistema que entre cache, aprovechamiento de gpu y otros no suponen cambio alguno, tal vez no veas alguna animación y parezca que no se traba nunca pero… en vez de eso tendrás momentos “vacíos”.

            Como digo a menudo, la ram esta PARA USARSE (y sino se debe aumentar la frecuencia de la CPU por mi que la use al 90% pues eso significa que seguirá con las mismo voltaje y consumo básicamente a menos que haga cosas raras).

          • PARTISAN0

            Háblame del tiempo de pantalla encendida. Porque si tenemos medio segundo o un segundo por cada animación en la transacción entre cada actividad, abrir/cerrar aplicación, abrir/cerrar lanzador de aplicacioness, etc qué tenemos al final? Y la pantalla, querido amigo, es lo que más consume en un smartphone.

            Uso tu ejemplo de los cajones: no puedo aceptar como válida la premisa de “si no usas los cajones las guías no se desgastan” (por ejemplo) porque si yo tengo 3 de 5 cajones ocupados pero los 2 que tengo libres los abro y los cierro continuamente aunque esten vacíos sí se deterioran las guías, cierto? Pues eso mismo pasa con la batería y las animaciones: animaciones = mayor tiempo pantalla encendida = mayor uso de batería. Guste o no.

          • Una animación normal de sistema es como una pantalla de “loading” esta para evitar un tiempo muerto y una sensación de parada, esta para disimular un procesamiento, por lo tanto no tiene impacto directo habitual sobre el tiempo de encendido de una pantalla pues esta se desarrolla durante un tiempo que no esta siendo aprovechado de ninguna manera. Llámala si deseas “animación de transición de carga”.

            Con lo cual no tendremos mas tiempo la pantalla encendida de la cuenta a menos que la animación sea demasiado trabajada (véase efectos 3D) o mas duradera que el proceso que intenta ocultar precisamente esa animación.

            Pero vamos, no se tu, supongo que a ti las animación son molestas y eres capaz de usar los dedos sabiendo donde pulsar en cada momento en milisegundos sin visualizar la siguiente pantalla :/, android no es un sistema operativo en tiempo real, que usa java XD, debes dejarle trabajar unos milisegundos para que procese datos entre pantallas y eso es lo que se disimula con las animaciones para dar sensacion de fluidez :)

            El desgaste de las guías es tan insignificante que no es tenido en cuenta pues para ello fueron diseñados, eso si, yo no uso cajones con guias de plástico al igual que no uso CPU y GPU chinas ;), y vaya, que tengo cajones que uso todos los días muchas vecescon mas de 15 años =D

    • Astur

      Una GPU para una animacion de mierda de esas no le supone ni aumentar su frecuencia… acordemonos que una GPU es 100 veces más potente que una CPU

      • PARTISAN0

        Una? Acaso alguien ha hablado de una? Por ejemplo la transición entre actividades. No sé tú pero yo en muchas aplicaciones en cada uso de 8-10 actividades no bajo ;).

        P.D.: antes de que algún ignoto lo lea y diga algo al respecto me refiero a actividad en término de desarrollo en Android y no a “cosa para hacer”.

  • Uno de los viejos trucos de Apple. Abrir una carpeta o desbloquear el teléfono conlleva esperar que la fluida y lenta animación finalice. En mi Nexus 4 nunca he tenido esa sensación de que la animación se me hace eterna, así que no me he planteado modificar su duración.

    • Mussgo182

      En iOS 7 puedes desactivar todas las animaciones igual.

  • incom2

    Si tenéis KitKat, no dudéis en activar el menú de desarrolladores y cambiar la máquina JAVA de Dalvik a ART. Sin cambiar nada más del teléfono o tablet, conseguiréis que las aplicaciones funcionen más rápido y consuman menos batería (esta nueva máquina JAVA, simplificando la explicación, lo que hace es recompilar las aplicaciones que tengáis y las que se instalen desde ese momento de manera que el código resultante sea más próximo a lo que entiende el procesador, por lo que éste tardará menos en ejecutarlo). El precio a pagar por esta velocidad extra, es que las aplicaciones ocupan algo más de espacio, pero si lo que os preocupa es la velocidad en general y el consumo de batería, por aquí podéis atacar y sacar tajada sin capar animaciones, cambiar quién las procesa, etc etc.

    • DavidM

      Quiero informar que para los que usamos los módulos de Xposed (muy útiles la verdad), no se puede cambiar al modo ART aunque lo hagamos desde el menú de desarrolladores, solo se reiniciará android sin cambiar nada. Esto pasa porque Xposed hasta ahora solo es compatible con dalvik y habrá que esperar a que lo actualicen. No sé si valdrá la pena desinstalar Xposed a cambio de la velocidad :/

      • jenen

        Se me reiniciaba el móvil cada vez que quería poner Art, sin cambios , gracias por la aclaración, no me daba cuenta, de cualquier forma prefiero el xposed, ya que cuando antes de instalarlo había probado Art en mi móvil, prácticamente no note tanta diferencia, kitkat es muy fluido de por si, tengas dalvik o Art

        • DavidM

          De nada, investigué mucho en internet hace unos días y parecía que yo era el único con el problema, por eso aproveché de divulgarlo. Por lo que me dijo un amigo que tiene un defy, ART se hace notar más en teléfonos antiguos o de gama media – baja, como el suyo. Y tu comentario me hace confirmarlo, gracias.

    • Ignacio

      Estimado, realice el cambio que mencionas y la verdad no me resulto para nada, las aplicaciones se demoran considerablemente mas en abrir sobretodo el navegador Chrome y apps de redes sociales como Facebook etc. no se la verdad si sera un poca optimización con respecto a mi equipo, no manejo esa información solo hablo con respecto a mi caso. Saludos

  • José Antonio García

    Cuando ART sea el runtime predeterminado, imagino que cuando saquen la nueva versión de Android allá por octubre/noviembre, sí que va a haber un salto en las transiciones… y lo que no son las transiciones.

  • Alexis Domínguez

    Es algo que he estado viendo desde hace tiempo, pero por primera vez veo que es un redactor el que comete el error, están confundiendo fluidez con relentizaciones, no es lo mismo.

  • JULIO CESAR GUTIERREZ BARRERA

    era un truco viejo porque antes eran smartphones single-core y ahora la mayoria son multicore pero sirve para ahorrar energia el proceso lleva tiempo y el tiempo es bateria

  • Manuel Anaya

    ZZZZZZZ que pereza con los amigos que quieren demostrar en estos comentarios que el uno sabe mas que el otro de programacion.

  • Pedro Jesus Zaldivar Tapia

    Mi Celular LG L5X con Android 4.1.2 se ha optimizado de una forma espectacular con la desactivación de las animaciones :D :D

  • Gilbert

    Es un truco que realmente no aporta mucho… Android seguira siendo un completo desastre en equipos Gama media! nada que hacer…

    • Julian Hernandez

      Que estupido eres retrasado fanboy de ios, mi gama medio mola un montón, hijo 100 fluido. Pedazo de pendejo; otra cosa es que tengas una basura gama baja.

    • Said Boulahfa

      Seguro?? Has visto el Huawei P8, o el lite,….

  • Luis Rivas

    Buenas tengo un android 2.3 y por error se activo la opcion de mostrar uso del CPU ahora no se como ocultarlo me fastidia eso si alguien me pudiese ayudar se los agradeceria

    • Said Boulahfa

      Te vas a opciones de desarrollo, ahí busca s el subapartado mostrar uso de cpu y ya…