Question

Ma question est je pense assez simple mais je ne pense pas que la réponse sera ... J'ai pas beaucoup de contenu à avoir dans mon application pour le faire fonctionner correctement, et je pense à mettre tous dans une base de données, et le distribuer dans une base de données embeded avec l'application le marché. Le seul problème est que je n'ai aucune idée de la façon de le faire. Je sais que je peux extraire un .db de fichier Eclipse DDMS avec le contenu de ma base de données, et je suppose que je dois mettre dans le dossier de l'actif de ma demande, mais comment faire l'utilisation de l'application pour régénérer la base de données de l'application ? Si vous avez un lien vers un code ou de l'aide, ce serait génial. Merci

Était-ce utile?

La solution

Eh bien, pour obtenir ce que vous demandez, vous pouvez mettre le fichier .db dans votre actif / et copiez-le en place la première fois que vous démarrez votre application .....

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();
}

Où « initialiseDatabase » est un certain drapeau indiquant si l'application a été lancée pour la première fois.

Bien que, si vous cherchez à stocker beaucoup de données, comme vous l'avez dit: je vous recommande fortement d'éviter les ballonnements le fichier APK avec elle, et utiliser la connexion Internet pour télécharger les enregistrements de base de données (à partir d'un serveur hébergé) après la application a été lancée. De cette façon, vous pouvez afficher une barre de progression indiquant à l'utilisateur pourquoi ils attendent beaucoup de temps pour commencer à utiliser l'application. Faire l'APK particulièrement grand dissuade souvent les gens de l'installer en premier lieu.

Autres conseils

Vous pouvez mettre en œuvre centriste solution: approche utilisation ci-dessus, mais au lieu de distribuer le fichier db mettre quelque part du serveur. Dans mon expérience obtenir des fichiers est seulement 10% du temps de traitement, reste est l'analyse syntaxique et images sérialisation à db

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top