O Database Inspector permite inspecionar, consultar e modificar os bancos de dados do app enquanto ele está em execução. Isso é especialmente útil para a depuração do banco de dados. O Database Inspector funciona com o SQLite plain e com bibliotecas criadas com base no SQLite, como a Room.
Abrir o Database Inspector
Para abrir um banco de dados no Database Inspector, faça o seguinte:
Execute o app em um emulador ou dispositivo conectado executando a API de nível 26 ou versões mais recentes.
Na barra de menus, selecione View > Tool Windows > App Inspection.
Selecione a guia Database Inspector.
Selecione o processo do app em execução no menu.
Os bancos de dados no app atualmente em execução aparecem no painel Databases. Expanda o nó do banco de dados que você quer inspecionar.
Ver e modificar dados
O painel Databases mostra uma lista dos bancos de dados no app e as tabelas que cada um deles contém. Clique duas vezes no nome de uma tabela para mostrar os dados na janela do inspetor à direita, conforme a Figura 1. Clique no cabeçalho de uma coluna para classificar os dados na janela do inspetor por essa coluna.

Para modificar dados em uma tabela, siga estas etapas:
- Clique duas vezes em uma célula.
- Digite um novo valor.
- Pressione Enter.
Se o app usa a Room e a IU observa o banco de dados, por exemplo, com LiveData
ou Flow
, todas as mudanças feitas nos dados ficam
imediatamente visíveis no app em execução. Caso contrário, só será possível conferir essas
informações na próxima vez que o app ler os dados modificados do banco de dados.
Conferir mudanças no banco de dados em tempo real
Se você quiser que o Database Inspector atualize automaticamente os dados que apresenta durante a interação com seu app em execução, marque a caixa de seleção Live Updates na parte de cima da janela do inspetor. Enquanto as atualizações em tempo real estiverem ativadas, a tabela na janela do inspetor vai ser somente leitura e não vai ser possível modificar os valores dela.
Como alternativa, para atualizar manualmente os dados, clique no botão Refresh table, na parte de cima da janela do inspetor.
Consultar o banco de dados
O Database Inspector pode executar consultas no banco de dados do seu app enquanto ele está em execução. A ferramenta pode usar consultas DAO caso seu app use a Room, mas também aceita consultas SQL personalizadas.
Executar consultas DAO
Se o app usa a Room, o Android Studio oferece ações de gutter para você executar rapidamente métodos de consulta já definidos nas classes de DAO. Essas ações estão disponíveis enquanto o app está em execução e o Database Inspector está aberto no ambiente de desenvolvimento integrado.
Para executar qualquer método de consulta em um DAO, clique no botão Run SQLite
statement in Database Inspector
ao lado da anotação
@Query
.

Caso seu app inclua mais de um banco de dados, o Android Studio solicita que você selecione o banco de dados para consultar uma lista. Caso seu método de consulta inclua parâmetros de vinculação, o Android Studio solicita valores para cada parâmetro antes de executar a consulta. Os resultados da consulta aparecem na janela do inspetor.
Executar consultas SQL personalizadas
Também é possível usar o Database Inspector para executar consultas SQL personalizadas nos bancos de dados do seu app enquanto ele está em execução.
Para consultar um banco de dados, siga estas etapas:
Clique em Open New Query tab
na parte de cima do painel Databases para abrir uma nova guia na janela do inspetor.
Figure 3. Abra uma guia New Query. Se o app incluir mais de um banco de dados, selecione o que você quer consultar na lista da guia New Query.
Na parte de cima da guia New Query, digite sua consulta SQL personalizada no campo de texto.
Clique em Executar.
Como alternativa, use o recurso de histórico de consultas para executar uma consulta feita anteriormente:
Clique no botão Show query history
para ver uma lista de consultas executadas anteriormente no banco de dados selecionado.
Figura 4. O menu do histórico de consultas. Clique em uma consulta na lista para uma visualização de toda a consulta no editor e pressione Enter para copiá-la no editor.
Clique em Run para executar a instrução.
Os resultados da consulta exibidos na guia New Query são somente leitura e
não podem ser modificados. No entanto, é possível usar o campo de consulta SQL personalizado para executar
instruções modificadoras, como UPDATE
, INSERT
ou DELETE
.
Se o app usa a
Room e a IU observa o banco de dados, por exemplo, com LiveData
ou Flow
,
todas as mudanças feitas nos dados ficam imediatamente visíveis no app em execução.
Caso contrário, só vai ser possível conferir essas informações na próxima vez que o app ler os dados
modificados do banco de dados.
Modo off-line
No Android Studio 4.2 e versões mais recentes, é possível continuar a inspecionar os bancos de dados do app após a desconexão de um processo. Isso facilita a depuração do app após uma falha.
Quando ocorre uma desconexão, o Database Inspector faz o download dos seus bancos de dados e os disponibiliza no modo off-line. Quando estiver off-line, ainda será possível abrir tabelas e executar consultas.
Quando você se reconecta a um processo de app ativo, o Database Inspector sai do modo off-line e mostra apenas os dados que estão no dispositivo. Em outras palavras, os dados mostrados no modo off-line não são mantidos quando você se reconecta a um processo de app. Devido a essa limitação, o Database Inspector não permite a edição de dados ou a execução de instruções SQL de modificação no modo off-line.
Quando você está visualizando um banco de dados no modo off-line, o nome do processo inclui
[DETACHED]
para indicar que o inspetor não está mais anexado ao
processo. Além disso, o ícone do banco de dados
indica o estado off-line, mostrado na Figura 5.

Manter as conexões do banco de dados abertas
O Database Inspector só pode modificar um banco de dados enquanto seu app mantém uma
conexão ativa com ele. Isso significa que, se o app se
conecta e desconecta com frequência dos bancos de dados, pode ser difícil
depurá-los. O painel Databases usa ícones para identificar bancos
de dados abertos
e fechados
.
Além disso, para evitar que as conexões de banco de dados sejam encerradas, mude a opção
Keep database connections open de desativada
para ativada
na parte de cima do painel Databases.
Exportar dados do Database Inspector
Você pode exportar bancos de dados, tabelas e resultados de consultas do Database Inspector para salvar, compartilhar ou recriar localmente. Ao abrir um projeto de app no Android Studio e inspecionar o app no Database Inspector, é possível começar a exportar dados de uma destas maneiras:
- Selecione um banco de dados ou uma tabela no painel Databases e clique em Export to file próximo à parte de cima do painel.
- Clique com o botão direito do mouse em um banco de dados ou em uma tabela no painel Databases e selecione Export to file no menu de contexto.
- Ao inspecionar uma tabela ou resultados de consulta em uma guia, clique em Export to file acima da tabela ou dos resultados da consulta.
Depois de selecionar uma ação de exportação, use a caixa de diálogo Export Database para ter ajuda nas etapas finais, como mostrado na Figura 6.
Se estiver tentando exportar um banco de dados, uma tabela ou resultados de consulta, você terá a opção de exportar os dados em um ou mais dos seguintes formatos: DB, SQL ou CSV.
Outros recursos
Para saber mais sobre o Database Inspector, consulte os seguintes recursos:
Postagens do blog
- Database Inspector: a ferramenta de banco de dados em tempo real que você estava esperando (link em inglês)