De acordo com a documentação oficial do desenvolvedor, aqui estão as opções para armazenamento de dados no Android:
- Preferências Compartilhadas – Armazenamento de dados primitivos privados em pares de valores chaves.
- Armazenamento Interno – Armazenamento de dados privados na memória do dispositivo.
- Armazenamento externo – Armazena dados públicos no armazenamento externo compartilhado.
- Bancos de dados SQLite – Armazena dados estruturados em um banco de dados privado.
- Conexão de rede – Armazena dados na web com o seu próprio servidor de rede.
Além da opção de conexão de rede, as outras opções são todas dados persistentes no dispositivo. Tanto SharedPreferences como SQlite Databases são dados privados armazenados no dispositivo. Estes ficheiros não são acessíveis a outras aplicações ou utilizadores a menos que esteja num emulador ou num dispositivo enraizado. Aqui estão algumas formas de aceder e inspeccionar estes dados privados para depuração durante o desenvolvimento.
Num emulador ou dispositivo raiz
Se estiver a correr um emulador ou dispositivo raiz. Você deve ter acesso ao armazenamento privado do dispositivo. Pode aceder aos ficheiros a partir da GUI do Android Studio ou via linha de comandos:
- GUI – No Android Studio, inicie o Android Device Monitor a partir do menu: Ferramentas/Andróide/Andróide Device Monitor. Navegue até a aba File Explorer, depois data/data/<seu nome de pacote de aplicação>/. Encontre o arquivo que você está procurando, e você pode empurrar e puxar um arquivo de lá.
- Linha de comando – você também pode empurrar o arquivo para o dispositivo ou puxar o arquivo do dispositivo via adb:
adb pull remote-dir local-dir <-- Copy from device to local machine
adb push local-dir remote-dir <-- Copy from local machine to device
Em um dispositivo não-raízado
Se você não estiver rodando em um emulador ou dispositivo enraizado. A partir da linha de comando:
adb shell
run-as <app-package-name>F
cd data/data/...
Agora pode aceder aos ficheiros no armazenamento interno do dispositivo. Para sair da shell, digite exit.
exit <-- exit out of adb shell
Sqlite ficheiro de base de dados
Após ser capaz de aceder ao ficheiro de base de dados SQLite num emulador, dispositivo raiz ou via adb shell / run as , existem algumas opções para inspeccionar o esquema e a sua base de dados SQLite no dispositivo.
Inspecte SQLite db via uma ferramenta GUI
Puxe o ficheiro do dispositivo primeiro, depois use um software GUI para ver o esquema e o conteúdo. Eu uso um navegador SQLite que permite que você veja o esquema do banco de dados, o conteúdo da tabela, assim como executar alguns scripts SQL simples.
Inspect SQLite db via sqlite3 ferramenta de linha de comando
Para mim a opção mais fácil é usar a ferramenta de linha de comando sqlite3 para inspecionar o banco de dados a partir da shell adb –
adb shell
cd data/data/<your package-name>/databases/
sqlite3 <db-name>
.tables
.schema <table-name>
Alternativamente você pode usar sqlite3 localmente em vez de dentro de uma shell, depois de puxar o arquivo do banco de dados a partir do dispositivo:
adb pull <db-name>
sqlite3 <db-name>
Apagar dados da aplicação
Então, quando você trabalha com SharedPreferences ou SQLite db no Android, muitas vezes você precisa apagar os dados e começar de novo. Então aqui estão algumas opções:
- Desinstalar e reinstalar o aplicativo
- Vá para Configurações/Apps/Findir seu aplicativo e clique nele/Armazenamento/Dados claros
Existe uma maneira muito mais fácil de ajudar no seu desenvolvimento e processo de depuração: instale um plug-in do Android Studio chamado ADB Idea. Para instalar o plug-in, vá para Android Studio/Preferences/Plugins, clique em Browse repositories e procure por “ADB Idea”. Instale e reinicie o Android Studio e você verá a opção de plug-in aparecer em Ferramentas/Android/ADB Idea. Experimente. Acho este plugin super útil quando preciso limpar dados de aplicativos.
Utilizar uma biblioteca
Existem outras opções para acessar e inspecionar arquivos privados em dispositivos Android usando uma biblioteca.
Uma opção é usar uma biblioteca chamada Android Debug Database e você pode ler os detalhes de um post de blog do autor nisto.