ScrollingCache?

¿Puede alguien explicar el significado de la scrolling cache de scrolling cache en Android. Me tropecé con esta palabra, pero fue incapaz de encontrar la explicación, ya sea en el sitio web oficial de Android o en la web.

Todo lo que pude encontrar fue cómo puedo encenderlo.

Gracias.

La caché de desplazamiento es básicamente una caché de dibujo.

En android, puede pedir a una Vista que guarde su dibujo en un caché llamado dibujo de caché (básicamente un mapa de bits). De forma predeterminada, una memoria caché de dibujo se desactiva porque ocupa la memoria, pero puede pedir a la Vista que cree explícitamente a través de setDrawingCacheEnabled oa través de capas de hardware (setLayerType).

Entonces, ¿por qué es útil? Porque el uso de una caché de dibujo hace que su animación sea más suave en comparación con el redibujo de la vista en cada fotograma.

Este tipo de animación también puede ser acelerado por hardware porque el sistema de procesamiento puede tomar este mapa de bits y cargarlo a la GPU como una textura (si se utilizan capas de hardware) y hacer manipulaciones rápidas de matriz en él (como cambiar alfa, traducir, rotación). Compare esto con la animación si está redibujando (onDraw se llama) en cada fotograma.

En el caso de una vista de lista, cuando se desplaza por arrojando, está en esencia animando las vistas de su lista (ya sea moviéndolas hacia arriba o hacia abajo). La vista de lista utiliza la caché de dibujo de sus hijos visibles (y algunos niños potencialmente visibles cerca de los bordes) para animarlos muy rápidamente.

¿Existe alguna desventaja en el uso de caché de dibujo? Sí consume memoria por lo que por defecto se desactiva en una Vista. En el caso de ListView, el caché se creó automáticamente para usted tan pronto como toque el ListView y mover un poco (para diferenciar un toque de desplazamiento). En otras palabras, tan pronto como ListView crea que está a punto de desplazarse / lanzar, creará una memoria caché de desplazamiento para animar el movimiento de desplazamiento / desplazamiento.

ScrollingCache se explica en detalle en la conferencia de "el mundo de listView".

Es básicamente cachés el desplazamiento en sí para que se mueva un mapa de bits, pero de acuerdo a mi experiencia, en realidad hace las cosas mucho más lento y tomar memoria para nada especial.

ScrollingCache está habilitado de forma predeterminada, al menos para listView. Es por eso que si el rendimiento es importante para usted, debe considerar inhabilitarlo.

Creo que usted está hablando de lo siguiente:

Imagine una lista de 50 elementos en los que sólo 10 elementos son visibles. Android almacenará en caché el siguiente y el anterior (estimado) 5 elementos en un elemento de lista.

Cuando comience a desplazarse por la lista, reutilizará las vistas de elementos invisibles, usando la función getView de ArrayAdapter (). Por ejemplo, si se desplaza hacia arriba, se verá en la parte inferior y se colocará en la parte superior con nuevos datos.

Así que la caché de desplazamiento son los elementos siguientes y anteriores arriba / debajo de los elementos visibles.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.