Gabriel Augusto Gomesgabrielaugustodm@gmail.comArmazenamento de Dados         Android           SANTOS      1° Semestre de...
1. ARMAZENAMENTO DE DADOS       O Android oferece várias opções para você armazenar dados de umaaplicação. A melhor soluçã...
// We need an Editor object to make preference changes.            // All objects are from android.context.Context        ...
1. 3. External Storage   Cada dispositivo suporta um "armazenamento externo" compartilhado quevocê pode usar para salvar a...
Os principais comandos são:      SQLiteDatabase db;      openOrCreateDataBase(nome, modo, fabrica);      db.insert(tabela,...
REFERENCIAS BIBLIOGRÁFICASAndroid     Developers       –     Data       Storage.    Disponível      em:<http://developer.a...
Próximos SlideShares
Carregando em…5
×

Banco de Dados - Android

4.407 visualizações

Publicada em

Meu primeiro documento sobre a tecnologia. É um pequeno relatório tratando de modo geral as formas de armazenamento de informações no desenvolvimento para o Android.

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
4.407
No SlideShare
0
A partir de incorporações
0
Número de incorporações
22
Ações
Compartilhamentos
0
Downloads
111
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Banco de Dados - Android

  1. 1. Gabriel Augusto Gomesgabrielaugustodm@gmail.comArmazenamento de Dados Android SANTOS 1° Semestre de 2012
  2. 2. 1. ARMAZENAMENTO DE DADOS O Android oferece várias opções para você armazenar dados de umaaplicação. A melhor solução depende das suas necessidades específicas.Essas necessidades variam entre segurança de dados, isto é, se os dadosdevem ser privados ou acessíveis para outras aplicações ou também quantoespaço seus dados requerem. As opções de armazenamento são:Shared Preferences Armazena dados primitivos. É voltada para guardar dados deconfiguração.Internal Storage Armazena dados na memória interna do dispositivo, de forma privada.External Storage Armazena dados na memória externa do dispositivo (Cartão SD), deforma pública.SQLite Databases Armazena dados estruturados, em um banco de dados próprio, ondepodem ser criadas estruturas mais complexas que os outros métodos, commaior quantidade de dados.Network Connection É usada para guardar dados em um servido de rede.1. 1. Shared Preferences Tem como objetivo armazenar dados mais simples, salvando informaçõescomo variáveis (booleans, floats, ints, longs e strings). A aplicação é bem simples, devemos restaurar os dados gravados quandoiniciar a aplicação e gravar os dados quando finalizarmos a aplicação. Segueuma implementação: public class Calc extends Activity { public static final String PREFS_NAME = "MyPrefsFile"; @Override protected void onCreate(Bundle state){ super.onCreate(state); . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false); setSilent(silent); } @Override protected void onStop(){ super.onStop();
  3. 3. // We need an Editor object to make preference changes. // All objects are from android.context.Context SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", mSilentMode); // Commit the edits! editor.commit(); } }1. 2. Internal Storage Dessa forma, os dados são privados e não permite que sejam acessadosde qualquer maneira. Segue uma implementação simples: String FILENAME = "hello_file"; String string = "hello world!"; FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); fos.write(string.getBytes()); fos.close(); 1. 2. 1. Cache Se você gostaria de gravar alguns dados em cache, ao invés dearmazená-lo persistentemente, você deve usar o método getCacheDir()para abrir um arquivo que representa o diretório interno onde a sua aplicaçãodeve salvar os arquivos de cache temporário. Quando o dispositivo está com pouco espaço de armazenamentointerno, o Android pode excluir esses arquivos de cache para recuperarespaço. No entanto, você não deve confiar no sistema para limpar essesarquivos para você. Você deve sempre manter os arquivos de cache e manter dentro de umlimite razoável de espaço consumido, como 1MB. Quando o usuário desinstalao aplicativo, esses arquivos são removidos. Outros métodos uteis: getFilesDir() Pega o caminho absolute do diretório onde os arquivos estão salvos. getDir() Cria (ou abre, se existir) um diretório dentro de seu espaço dearmazenamento interno. deleteFile() Deleta um arquivo salvo na memória interna. fileList() Retorna um array de arquivos salvos pela sua aplicação.
  4. 4. 1. 3. External Storage Cada dispositivo suporta um "armazenamento externo" compartilhado quevocê pode usar para salvar arquivos. Pode ser uma mídia de armazenamentoremovível (como um cartão SD) ou a memória interna (não removível). Os arquivos salvos no armazenamento externo são de leitura e podem sermodificados pelo usuário quando é ativado o armazenamento em massa USBpara transferir arquivos de um computador. Verificando disponibilidade de mídia Antes de fazer qualquer trabalho, você deve verificar se o meio estádisponível. Segue um código para fazer essa verificação: boolean mExternalStorageAvailable = false; boolean mExternalStorageWriteable = false; String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { // We can read and write the media mExternalStorageAvailable = mExternalStorageWriteable = true; } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { // We can only read the media mExternalStorageAvailable = true; mExternalStorageWriteable = false; } else { // Something else is wrong. It may be one of many other states, but all we need // to know is we can neither read nor write mExternalStorageAvailable = mExternalStorageWriteable = false; }1. 4. SQLite Databases O método recomendado para criar um novo banco de dados SQLite é criaruma subclasse de SQLiteOpenHelper e substituir o método onCreate(), no qualvocê pode executar um comando SQLite para criar tabelas no banco de dados.Por exemplo: public class DictionaryOpenHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 2; private static final String DICTIONARY_TABLE_NAME = "dictionary"; private static final String DICTIONARY_TABLE_CREATE = "CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" + KEY_WORD + " TEXT, " + KEY_DEFINITION + " TEXT);"; DictionaryOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DICTIONARY_TABLE_CREATE); } }
  5. 5. Os principais comandos são: SQLiteDatabase db; openOrCreateDataBase(nome, modo, fabrica); db.insert(tabela, nullColumnHack, valores); db.update(tabela, valores, where, whereArgs[]); Cursor c = db.query(distinct, tabela, colunas[], selecao[], selecaoArgs[], groupBy, orderBy);1. 5. Network Connection A última forma é usando uma conexão de rede (quando disponível) paraarmazenar e recuperar dados sobre seus próprios serviços na web. Para isso,use as seguintes classes: import java.net.*; import android.net.*;
  6. 6. REFERENCIAS BIBLIOGRÁFICASAndroid Developers – Data Storage. Disponível em:<http://developer.android.com/guide/topics/data/data-storage.html#netw> Acessoem: 20 jun. 2012.Henrique Lacerda – Um blog sobre desenvolvimento para Android e paraoutras coisas também. Como gravar dados no Android – Parte I. Disponívelem:<http://www.henriquelacerda.com.br/2011/12/22/gravando-dados-parte-i/>Acesso em: 20 jun. 2012.Henrique Lacerda – Um blog sobre desenvolvimento para Android e paraoutras coisas também. Como gravar dados no Android – Parte II. Disponívelem:<http://www.henriquelacerda.com.br/2012/01/03/como-gravar-dados-no-android-parte-ii/> Acesso em: 20 jun. 2012.Henrique Lacerda – Um blog sobre desenvolvimento para Android e paraoutras coisas também. Como gravar dados no Android – Parte III – Banco deDados SQLite. Disponívelem:<http://www.henriquelacerda.com.br/2012/03/30/como-gravar-dados-no-android-parte-iii-banco-de-dados-sqlite/> Acesso em: 20 jun. 2012.LECHETA, Ricardo R. Google ANDROID: aprenda a criar aplicações paradispositivos moveis com o Android SDK / Ricardo R. Lecheta – 2. Ed. rev. Eampl. – São Paulo: Novatec Editora, 2010.

×