Pregunta

Mi pregunta es que creo bastante simple, pero no creo que la respuesta será ... Tengo un buen montón de contenido para tener en mi aplicación para que funcione correctamente, y estoy pensando en poner todo ello en una base de datos, y distribuirlo en una base de datos Embebido con la aplicación de El mercado. El único problema es que no tengo ni idea de cómo hacerlo. Yo sé que puedo extraer un archivo .db de Eclipse DDMS con el contenido de mi base de datos, y supongo que necesito para ponerlo en la carpeta de recursos de mi solicitud, pero entonces cómo hacer que el uso de la aplicación es para regenerar la base de datos de aplicaciones ? Si tiene cualquier enlace a algún código o ayuda, que sería grande. Gracias

¿Fue útil?

Solución

Bueno, para lograr lo que preguntas, se puede poner el archivo .db en su activos / directorio y copiarlo en su lugar la primera vez que inicie su aplicación .....

final String DB_DESTINATION = "/data/data/YOUR_PACKAGE_NAME/databases/MyDatabaseFile.db";

// Check if the database exists before copying
boolean initialiseDatabase = (new File(DB_DESTINATION)).exists();
if (initialiseDatabase == false) {

    // Open the .db file in your assets directory
    InputStream is = getContext().getAssets().open("MyDatabaseFile.db");

    // Copy the database into the destination
    OutputStream os = new FileOutputStream(DB_DESTINATION);
    byte[] buffer = new byte[1024];
    int length;
    while ((length = is.read(buffer)) > 0){
        os.write(buffer, 0, length);
    }
    os.flush();

    os.close();
    is.close();
}

Donde "initialiseDatabase" alguna bandera que indica si la aplicación ha sido puesto en marcha por primera vez.

Aunque, si usted está buscando en el almacenamiento de una gran cantidad de datos, como usted ha mencionado: Recomiendo a evitar la hinchazón del archivo APK con él, y el uso de la conexión a Internet para descargar los registros de la base (de un servidor alojado) después de la aplicación ha sido puesto en marcha. De esta manera puede mostrar una barra de progreso que indica al usuario qué están esperando mucho tiempo para empezar a utilizar la aplicación. Haciendo que el APK especialmente grande por lo general disuade a la gente de su instalación en el primer lugar.

Otros consejos

Se puede implementar la solución de mediana de la carretera: Uso enfoque anterior, pero en lugar de distribuir el archivo db ponerlo en algún lugar del servidor. En mi experiencia, los archivos que consiguen es sólo el 10% del tiempo de procesamiento, resto es el análisis y la serialización de imágenes para db

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top