Estoy haciendo una aplicación para Android, en mi actividad necesito cargar una matriz de alrededor de 10000 cadenas. Cargando desde la base de datos fue lento, así que decidí ponerlo directamente en un archivo .java (como un campo privado). Tengo aproximadamente 20 de estas clases que contienen matrices de cadenas y mi pregunta es, ¿están todas las clases cargadas en la memoria después de que se inicia mi aplicación? Si es así, la Actividad en la que necesito estas cadenas se cargaría rápidamente, pero la aplicación como un todo tendría un inicio lento ... ¿Hay alguna otra manera, cómo cargar muy rápidamente una matriz de 10000 cadenas desde un archivo?¿Están todos los archivos .class en mi aplicación Java cargados en la memoria después del inicio de la aplicación?
ACTUALIZACIÓN: ¿Por qué necesito estas cadenas? Mi aplicación de Android te permite encontrar "viajes" en el transporte público de Praga: eliges la parada de salida, la parada de llegada y encuentra tu recorrido (mira here). Mi aplicación tiene una función de sugerencias: ingresa el carácter "c" como la parada de salida y aparece una sugerencia de ListView con paradas para comenzar con "c". Para estas sugerencias, necesito las cuerdas. La obtención de las sugerencias de la base de datos es lenta (alrededor de 400 ms en G1).
¿Para qué sirven esas cadenas? – Macarse
La mayoría de los dispositivos Android carecen de memoria principal, si es posible generaría esas cadenas sobre la marcha. –
Si los muestra en una lista, un ListView + CursorAdapter los cargará sobre la marcha, muy rápidamente también. No debería tener ningún problema de rendimiento con SQLite en Android para un caso tan básico. –