Acabei de descobrir o Realm e queria explorá-lo com mais detalhes, por isso decidi criar um aplicativo de exemplo e ter uma bagunça com ele. Por enquanto, tudo bem.
No entanto, uma coisa que ainda não consegui resolver é como visualizar meu banco de dados no Realm Browser. Como isso pode ser feito?
Respostas:
Atualmente, o Realm Browser não suporta o acesso a bancos de dados diretamente no dispositivo, portanto, você precisa copiar o banco de dados do emulador / telefone para visualizá-lo. Isso pode ser feito usando o ADB:
adb pull /data/data/<packagename>/files/ .
Esse comando puxará todos os arquivos de região criados usando
Realm.getInstance(new RealmConfiguration.Builder().build())
. O banco de dados padrão é chamadodefault.realm
.Observe que isso funcionará apenas em um emulador ou se o dispositivo estiver enraizado.
fonte
Agora você pode visualizar o Realm DB no navegador Chrome usando Stetho , desenvolvido pelo Facebook. Por padrão, o Stetho permite visualizar Sqlite, rede, preferências compartilhadas, mas com plug-in adicional aqui, também é possível visualizar o Domínio.
Depois de configurar sua
Application
classe com as bibliotecas acima, enquanto o aplicativo estiver em execução e conectado, abra o navegador Chrome e naveguechrome://inspect
para verEntão
Resources->Web Sql->default.realm
fonte
https://github.com/uPhyca/stetho-realm/raw/master/maven-repo
como mostrado aqui github.com/uPhyca/stetho-realmVocê também pode extrair seu arquivo de qualquer dispositivo não raiz usando o shell ADB e o comando executar como.
Você pode usar estes comandos para extrair do armazenamento privado do seu aplicativo um banco de dados chamado your_database_file_name localizado na pasta files:
fonte
adb exec-out run-as package.name cat files/your_database_file_name < your_database_file_name
Se você tiver preguiça de obter o arquivo de banco de dados de regiões sempre com o adb, poderá adicionar uma função de exportação ao seu código android, que envia um email com o arquivo de banco de dados de regiões como anexo.
Aqui está um exemplo:
Não se esqueça de adicionar esta permissão de usuário ao seu arquivo de manifesto do Android:
fonte
Para Android (não é necessário fazer root no seu dispositivo)
Para obter uma cópia de qualquer banco de dados do Realm no seu dispositivo, vá para o Device File Explorer no Android Studio.
Navegue para
/data/data/your.package.name/files/
.Lá você encontrará seus arquivos * .realm. Clique com o botão direito e, em seguida, em Salvar como . Certifique-se de sincronizar antes de salvá-los.
Use o Realm Browser ou qualquer um destes para visualizar arquivos * .realm:
fonte
Existe uma solução alternativa. Você pode acessar diretamente o arquivo no monitor do dispositivo. Você pode acessar esse diretório apenas quando estiver usando um emulador ou dispositivo raiz.
No Android Studio:
Selecione
Menu Ferramentas → Android → Monitor de dispositivo Android → Explorador de arquivos → dados → dados → (Nome do seu pacote) → arquivos → * db.realm
Puxe este arquivo do dispositivo:
No Android Studio 3 canary 1, o Device File Explorer foi introduzido. Você precisa procurar o arquivo de região aqui. Em seguida, (selecione seu pacote) → selecione o arquivo de região → Clique com o botão direito e salve.
E abra o arquivo no Realm Browser. Você pode ver seus dados agora.
fonte
Você pode acessar o arquivo de região diretamente. Aqui está a solução que eu usei.
Primeiro, você pode copiar o arquivo de região localizado em '/ data / data / packagename / files' para Environment.getExternalStorageDirectory () + '/ FileName.realm':
Segundo, use a ferramenta ADB para extrair esse arquivo assim:
Agora você pode abrir o arquivo no Realm Browser.
fonte
Aqui está uma solução que não requer que o seu telefone esteja enraizado, usando o
run-as
comando presente noadb
shell do aplicativo. A única condição prévia é que você deve ter uma compilação de depuração do seu aplicativo instalada no telefone de destino.Você terá uma cópia do banco de dados de qualquer telefone dentro do diretório local, que poderá ser carregado no navegador de região.
fonte
Agora você pode acessá-lo diretamente se estiver usando um emulador.
Primeiro, registre o caminho em que o arquivo está no emulador, como @bmunk diz:
Log.d(TAG, "path: " + realm.getPath());
Segundo Pesquise e clique com o botão direito do mouse no arquivo e escolha "Salvar como", na caixa de diálogo aparecerá a rota onde o arquivo realmente está no seu sistema.
E então, basta colar a rota na caixa de diálogo "Abrir arquivo local" do Realm Studio.
(Eu testei isso apenas no Windows)
fonte
Aqui está o meu script shell pronto para uso. Apenas mude o nome do pacote e seus caminhos adb, o script fará o necessário.
Mais detalhes nesta publicação do blog: http://medyo.github.io/2016/browse-populate-and-export-realm-database-on-android/
fonte
Mantendo simples:
Explicação:
adb
instalação. Se você estiver usando o Android Studio, consulte Arquivo> Estrutura do projeto> Local do SDK> Local do Android SDK e anexeplatform-tools
a esse caminho.run-as
argumentoNB: O arquivo é chamado default.realm porque não mudei o nome ao configurá-lo - o seu pode ser diferente.
fonte
Você tem poucas opções para visualizar seus arquivos de domínio do Android:
Como @Christian Melchior disse que você pode extrair seu banco de dados de região do dispositivo e abri-lo no seu Mac usando o OSX Realm Browser
Você pode usar o Android Realm Browser de terceiros que eu criei, para facilitar o desenvolvimento do Android com o reino. O aplicativo mostrará todos os arquivos de região no seu dispositivo e você poderá visualizar todos os arquivos de região em tempo real enquanto estiver testando seu aplicativo.
Você pode usar o navegador Chrome Stetho A descrição completa de como usar o Setho é fornecida pela resposta @Jemshit Iskendero.
fonte
Aqui está uma concha para pessoas preguiçosas como eu :)
O
.realm
arquivo será armazenado dentro datmpRealm/
pasta ao lado do.sh
arquivo.Ou se você preferir deixar
tmpRealm/
o cartão SD:Referência:
fonte