Eu criei um banco de dados sqlite programaticamente com a maneira padrão de estender SQLiteOpenHelper
e substituir onCreate()
. Desta forma, o banco de dados é criado instantaneamente quando necessário.
Gostaria de verificar o conteúdo do arquivo db na minha máquina OS X com um navegador sqlite. Eu sei o nome do arquivo db, mas não consigo localizá-lo no dispositivo. Eu conectei o dispositivo via USB e procurei no localizador e no terminal, mas simplesmente não consigo encontrar o arquivo db.
Qual é o local padrão para bancos de dados sqlite em um dispositivo Android?
Respostas:
Você pode encontrar o banco de dados criado, chamado
<your-database-name>
no
Retire-o usando o Explorador de arquivos e renomeie-o para ter a extensão .db3 para usá-lo no SQLiteExplorer
Use o explorador de arquivos do DDMS para navegar até o diretório do emulador.
fonte
700
. Você precisa de privilégios de root para vê-lo.Para isso, o que eu fiz foi
E para fazer isso, seu aplicativo deve ter permissão para acessar o cartão SD, adicione a seguinte configuração ao seu manifest.xml
Não é uma maneira brilhante, mas funciona.
fonte
O Contexto contém muitas funções de caminho: Context.getXXXPath ()
Uma delas é android.content.Context.getDatabasePath (String dbname) que retorna o caminho absoluto de um banco de dados chamado dbname.
O caminho retornado, neste caso, seria algo como:
Observe que esse caminho é gerado automaticamente se estiver usando SQLiteOpenHelper para abrir o banco de dados.
fonte
Se você está falando sobre o dispositivo real
/data/data/<application-package-name>
é inacessível. Você deve ter direitos de root ...fonte
sudo su
Esta é uma pergunta antiga, mas responder pode ajudar outras pessoas.
O caminho padrão onde o Android salva bancos de dados não pode ser acessado em dispositivos sem acesso root. Portanto, a maneira mais fácil de acessar o arquivo de banco de dados (apenas para ambientes de depuração) é modificar o construtor da classe:
Lembre-se de mudar para ambientes de produção com estas linhas:
fonte
Failed to open database '/mnt/sdcard/itens'.
emLogcat
/data/data/packagename/databases/
ie
/data/data/com.example.program/databases/
fonte
Um banco de dados SQLite é apenas um arquivo. Você pode pegar esse arquivo, movê-lo e até mesmo copiá-lo para outro sistema (por exemplo, do telefone para a estação de trabalho) e ele funcionará bem. O Android armazena o arquivo no
/data/data/packagename/databases/
diretório. Você pode usaradb command
ouFile Explorer view
em Eclipse (Window > Show View > Other... > Android > File Explorer
) para visualizar, mover ou excluí-lo.fonte
bem, isso pode ser tarde, mas vai ajudar. Você pode acessar o banco de dados sem fazer root em seu dispositivo por meio do adb
inicie o adb usando cmd e digite os seguintes comandos
Agora você pode abrir daqui em diante.
fonte
Se você nomear seu banco de dados como um arquivo sem fornecer um caminho, a maneira mais comum de obter sua pasta é:
onde
DBAdapter.DATABASE_NAME
éString
como "meu banco de dados.db".Context.getFilesDir()
retorna o caminho para os arquivos do aplicativo como:/data/data/<your.app.packagename>/files/
é por isso que você precisa.getParent()+"/databases/"
, remover "arquivos" e adicionar "bancos de dados" ao invés.BTW Eclipse irá avisá-lo sobre a string "data / data /" codificada, mas não neste caso.
fonte
E verifique se o seu banco de dados está armazenado no Armazenamento do dispositivo. Em caso afirmativo, você deve usar permissão em Manifest.xml:
fonte
Você pode acessá-lo usando adb shell how-to
Conteúdo do link acima:
fonte
Se seu aplicativo cria um banco de dados, este banco de dados é salvo por padrão no diretório
DATA/data/APP_NAME/databases/FILENAME.
As partes do diretório acima são construídas com base nas seguintes regras. DATA é o caminho que o método Environment.getDataDirectory () retorna. APP_NAME é o nome do seu aplicativo. FILENAME é o nome que você especifica no código do aplicativo para o banco de dados.
fonte
Você também pode verificar se o seu IDE tem um utilitário como a perspectiva DDMS do Eclipse, que permite navegar pelo diretório e / ou copiar arquivos de e para o emulador ou um dispositivo com acesso root.
fonte
Defina o nome do seu banco de dados como:
E você pode ver seu banco de dados em:
fonte
Não fixe o código de "/ sdcard /"; use Environment.getExternalStorageDirectory (). getPath () em vez disso
fonte
Não codifique o caminho como
//data/data/<Your-Application-Package-Name>/databases/<your-database-name>
. Bem, funciona na maioria dos casos, mas este não está funcionando em dispositivos onde o dispositivo pode oferecer suporte a vários usuários. O caminho pode ser assim//data/user/10/<Your-Application-Package-Name>/databases/<your-database-name>
. A solução possível para isso é usarcontext.getDatabasePath(<your-database-name>)
.fonte