Your SlideShare is downloading. ×
Banco de Dados - Android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Banco de Dados - Android

3,970

Published on

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.

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.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,970
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
104
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Gabriel Augusto Gomesgabrielaugustodm@gmail.comArmazenamento de Dados Android SANTOS 1° Semestre de 2012
  • 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. // 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. 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. 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. 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.

×