Fresco: marcador de posición causa pérdida de memoria

Creado en 13 ene. 2016  ·  4Comentarios  ·  Fuente: facebook/fresco

mi codigo en xml es

        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="0dp"
            fresco:placeholderImage="@drawable/thisone_placeholder"
            fresco:actualImageScaleType="fitCenter"
            android:layout_height="wrap_content"
            fresco:viewAspectRatio="0.5625"
            android:layout_weight="1" />

thisone_placeholder_left es un jpg, cuando uso esto, la memoria aumenta rápidamente.
y después de moverlo, se vuelve normal.

needs-details

Comentario más útil

Pequeña o no, una fuga es una fuga.

Todos 4 comentarios

Fresco no hace nada sofisticado con las imágenes de marcador de posición: lo que especifique, se obtendrá a través Resources.getDrawable (https://github.com/facebook/fresco/blob/94ce1dee0733300fe2c029382e0c454169db81b8/drawee/src/main/java/ com/facebook/drawee/view/GenericDraweeView.java#L246).

¿Podría verificar si la memoria crece porque la imagen thisone_placeholder es tan grande o porque se crean varias instancias de mapas de bits (una por dibujable)? Puedes verificar eso en heapdump.

Confirmo esto.

Tenía una vista de cuadrícula con varias imágenes usando un JPEG grande como marcador de posición (para probar), y la aplicación fallaba por falta de memoria. Quité el marcador de posición y lo hice de la manera anterior, verificando si hay una imagen, de lo contrario cargué el marcador de posición como una imagen real, y la fuga se detuvo.

Aquí está el análisis de asignación de memoria de Android Studio: 2016.02.10_21.04.zip

Los marcadores de posición están destinados a ser imágenes pequeñas que se cargan rápidamente. Si necesita usar una imagen grande allí, debe usar una solicitud de baja resolución en su lugar.

Pequeña o no, una fuga es una fuga.

¿Fue útil esta página
0 / 5 - 0 calificaciones