Pergunta

Minha pergunta é bem simples, mas não acho que a resposta seja ... tenho muito conteúdo em ter em meu aplicativo para fazê -lo correr corretamente, e estou pensando em colocar tudo isso em um banco de dados e distribua -o em um banco de dados incorporado com o aplicativo no mercado. O único problema é que não tenho idéia de como fazer isso. Sei que posso extrair um arquivo .db do Eclipse DDMS com o conteúdo do meu banco de dados, e suponho que preciso colocá -lo na pasta de ativos do meu aplicativo, mas como fazer com que o aplicativo o use para regenerar o banco de dados do aplicativo ? Se você tiver algum link para algum código ou ajuda, isso seria ótimo. Obrigado

Foi útil?

Solução

Bem, para alcançar o que você está perguntando, você pode colocar o arquivo .db em seus ativos/ diretório e copiá -lo na primeira vez que iniciar seu aplicativo ...

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

Onde "InitialisedAtabase" é um sinalizador indicando se o aplicativo foi lançado pela primeira vez.

Embora, se você estiver olhando para armazenar muitos dados, como mencionou: eu recomendo fortemente que você evite inchar o arquivo APK com ele e use a conexão com a Internet para baixar os registros do banco de dados (de um servidor hospedado) após o aplicativo ter sido lançado. Dessa forma, você pode mostrar uma barra de progresso indicando ao usuário por que eles estão esperando muito tempo para começar a usar o aplicativo. Fazer o APK especialmente grande geralmente impede as pessoas de instalá -lo em primeiro lugar.

Outras dicas

Você pode implementar a solução no meio da estrada: use a abordagem acima, mas em vez de distribuir o arquivo DB, coloque-o no servidor em algum lugar. Na minha experiência, obter arquivos é de apenas 10% do tempo de processamento, o resto dele é analisar e serializar imagens para DB

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top