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.

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!

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.

  • Sqlcipher 'open' performance con cordova y Cordova-SQLitePlugin
  • La creación de clase Pojo desde el cursor Sqlite está tomando demasiado tiempo
  • Rendimiento de procesamiento en android
  • Reserva de almacenamiento interno del dispositivo Android para futuros registros críticos de aplicaciones
  • Android: Ampliación del libro de contactos del usuario. Rendimiento ContentProvider vs Sqlite vs Lista en la memoria
  • Las imágenes de gridview de Android en caché, en las imágenes de desplazamiento se repiten antes de ser reemplazadas
  • Parse ~ 1 MB JSON en Android muy lento
  • ¿Es una buena idea escribir juegos para móviles en ActionScript3 en lugar de Java / Objective-C?
  • Rendimiento de Android ContentProvider
  • Android: Obtener "No se puede cargar la lista AVD:" error en el momento de la ejecución
  • Android - E / Surface: queueBuffer: buffer de cola de errores en SurfaceTexture, -22 crash
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.