Mi aplicación se redujo significativamente en Android 4.0
He desarrollado y probado una aplicación en Android 3.2, interactúa con la base de datos SQLite y mostrar los resultados en la pantalla. No tengo animaciones ni nada extravagante. Lo que sí tengo es un montón de ListViews para mostrar datos al usuario.
La base de datos de la aplicación es muy grande, con algunas tablas con más de 300k filas. Intentamos utilizar AsyncTask en cada interacción con la base de datos, pero hay algunos puntos que todavía tenemos que optimizar el rendimiento.
- Problema de bajo rendimiento de Phonegap
- No puedo seleccionar mi cliente de Android en la perspectiva de DDMS de eclipse
- Android ViewPager y TabLayout no funcionan rápido
- Acceso al campo local vs campo de objeto. ¿Está mal el documento?
- Android error Dx problema de escritura salida: ya preparado
El problema es que la compañía actualizó algunas de las tabletas a Ice Cream Sandwich y la aplicación es mucho más lenta de lo que estaba en Honeycomb. He cargado el mismo código, con el mismo db, en dos dispositivos, uno ejecutando ICS y el otro con Honeycomb. La aplicación se desempeñó mucho mejor en el dispositivo 3.2. También intenté usar <uses-sdk android:minSdkVersion="14" />
pero no funcionó mejor.
¿Hay algo que pueda hacer para optimizar el rendimiento en el 4.0? También me encantaría saber por qué sucedió esto y si hay algo que podría haber causado eso (algún componente o clase que no funciona tan bien en 4.0).
¡Gracias!
ACTUALIZACIÓN: encontré la solución para la pantalla principal de mi aplicación. Presentaba un fragmento que funcionaba como una lista horizontal, era un HorizontalScrollView
que cargaba una enorme lista de datos y creaba una gran cantidad de LinearLayout
para ser presentado dentro del ScrollView. Encontré un widget de un HorizontalListView y lo usé para cargar mi lista. Sólo eso hizo que la aplicación más rápido. Pero no encontré la respuesta a por qué fue más lento en el ICS.
También intenté perfilar la aplicación, pero es una cosa muy difícil de hacer, hay mucha información. Seguramente lo haré en las próximas semanas para acelerar la aplicación. Gracias por todas las respuestas y comentarios!
- ¿Por qué está agregando un OnClickListener dentro onBindViewHolder de un RecyclerView.Adapter considerado mala práctica?
- ¿Cómo puedo eliminar los recursos no utilizados de las bibliotecas de terceros que he incluido en Android?
- Mejor manera de mostrar datos de flujo en la vista de lista de Android
- Cómo maximizar la eficiencia en este complejo escenario de transferencia de datos
- Malo rendimiento al dibujar continuamente en CustomView
- Ventaja y desventaja de CardView
- ListView vs LinearLayout
- Perfomance de red móvil: ¿Cuál sería el tipo de datos más eficiente para transferir datos de un servidor web a un teléfono móvil?
Mi conjetura es que se relaciona con la aceleración de hardware que es predeterminado habilitado para sandwich de helado . La aceleración de hardware es agradable, pero a veces viene con una disminución del rendimiento .
Hay otra lectura interesante acerca de la aceleración de hardware de Android por Dianne Hackborn en google + te recomiendo que mirar.
- Firebase Dynamic Links no vincula profundamente con la URL corta en pestañas personalizadas
- Cómo obtener fragmentos de mapas de Google en onCreateView con las pestañas de ActionBar