Persistencia de dados em aplicações Android

Post on 18-Dec-2014

5.598 views 2 download

description

A persistência de dados em qualquer tipo de aplicação sempre é um assunto muito importante, principalmente em aplicações móveis onde diversos fatores como desempenho e espaço disponível.Na plataforma Android temos várias formas de persistir essas informações, e cada uma dessas formas se encaixa melhor em cada tipo de dado que você deseja persistir.

Transcript of Persistencia de dados em aplicações Android

Persistência de dados em aplicações Android

@netomarin@Globalcode

sábado, 26 de novembro de 2011

Shared Preferences

Content Providers

SQLite

Vamos falar de...

BackupManagersábado, 26 de novembro de 2011

SharedPreferences

Framework para persistir pares de

chave-valor de dados primitivos.

sábado, 26 de novembro de 2011

Onde e para o que usar?

Preferências Valores padrãosábado, 26 de novembro de 2011

Lendo preferências...

//default da aplicaçãoContext c = getApplicationContext();SharedPreferences defaultPrefs = PreferenceManager.

getDefaultSharedPreferences(c);

//Obtendo um SharedPreferences específicoSharedPreferences prefs = getSharedPreferences(“SETTINGS”,

MODE_PRIVATE);

//Lendo valores primitivosString email = prefs.getString(“email”, “netomarin@gmail.com”);boolean logado = prefs.getBoolean(“logado”, false);float volume = prefs.getFloat(“volume”, 1.0f);int idUsuario = prefs.getInt(“idUsuario”, -1);long timestamp = prefs.getLong(“timestamp”, 0);

http://developer.android.com/reference/android/content/SharedPreferences.html

sábado, 26 de novembro de 2011

Gravando preferências...

//Obtendo o SharedPreferences.EditorSharedPreferences prefs = getSharedPreferences(“SETTINGS”,MODE_PRIVATE);SharedPreferences.Editor editor = prefs.edit();

//atribuindo valoreseditor.putString(“email”, “netomarin@globalcode.com.br”);editor.putBoolean(“logado”, true);editor.putFloat(“volume”, 4.0f);editor.putInt(“idUsuario”, 779988);editor.putLong(“timestamp”, System.currentTimeMillis());

//COMMITANDO !! ** OBRIGATÓRIO **editor.commit();

http://developer.android.com/reference/android/content/SharedPreferences.Editor.html

sábado, 26 de novembro de 2011

Tem banco de dados ?

sábado, 26 de novembro de 2011

SQLite

Persistência com

banco de dados relacional para

Android !

sábado, 26 de novembro de 2011

Saudades do SQL ?

Criar tabelasInserir dados

ConsultarApagar

e tudo mais que você sempre sentiu falta...

sábado, 26 de novembro de 2011

Criando e definindo abase de dados...

//criar classe que extende SQLiteOpenHelperpublic class MeuBancoDeDados extends SQLiteOpenHelper { /** * implementar métodos: * onCreate * onUpgrade * * E opcionalmente onOpen */}

sábado, 26 de novembro de 2011

Inserindo dados...

//Obtendo instância do banco de dadosDatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getWritableDatabase();

//Criando objeto para inserir no SQLiteContentValues v = new ContentValues(); v.put(“categoria”, categoria); v.put(“resumo”, resumo); v.put(“descricao”, descricao);litedb.insert(“todo”, null, v);

sábado, 26 de novembro de 2011

Obtendo dados....

//Obtendo instância do banco de dadosDatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getReadableDatabase();

//Efetuando select :-)String sql = “SELECT * FROM todo”; Cursor c = litedb.rawQuery(sql, null); c.moveToFirst();while(c.moveToNext()) { c.getString(0); //categoria c.getString(1); //resumo c.getString(2); //descricao}

sábado, 26 de novembro de 2011

Criar tabela?

Na mão ?

INSERT ?!

sábado, 26 de novembro de 2011

SQLite Database Browser

sábado, 26 de novembro de 2011

Dados embarcados...

Prós:Possível pré-carregar a aplicação com dados.Melhoria no desempenho de criação.Edição gráfica do banco de dados.

Contra:Aumenta o tamanho da aplicação.Dados podem ser extraídos do seu APK.

sábado, 26 de novembro de 2011

ContentProvider

Única forma de

compartilhar

dados entre diferentes

aplicações.

sábado, 26 de novembro de 2011

Como funciona ?

sábado, 26 de novembro de 2011

Providers do sistema

Contatos

Fotos

Calendário (disponível a partir do ICS)

sábado, 26 de novembro de 2011

Lendo os contatos

//Obtendo os contatosCursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

//Navegando pelos contatoswhile (contacts.moveToNext()) { // Id do contato String contactID = contacts.getString(contacts. getColumnIndex(ContactsContract.Contacts._ID));

// Nome do contato (FirstName + LastName) String contactName = contacts.getString(contacts. getColumnIndex(ContactsContract.Data.DISPLAY_NAME));}

http://developer.android.com/guide/topics/providers/content-providers.html

sábado, 26 de novembro de 2011

Crie o seu ContentProvider

sábado, 26 de novembro de 2011

E como eu acesso o meu

banco pra sincronizar?

sábado, 26 de novembro de 2011

BackupManager

Backup na cloud de dados

salvos em preferências ou

configurações.

Também de arquivos pequenos.

sábado, 26 de novembro de 2011

Obter uma API Key:http://code.google.com/android/backup/signup.html

sábado, 26 de novembro de 2011

Extender BackupAgentHelper

Deve ter pelo menos um backup helpers:

1. SharedPreferencesBackupHelperBackup de SharedPreferences!

2. FileBackupHelperBackup de arquivos do internal storage.

sábado, 26 de novembro de 2011

Fazer o backup...

Notificar o BackupManager com a chamada do método dataChanged()

sábado, 26 de novembro de 2011

AndroidManifest.xml

<application android:label="MyApplication"             android:backupAgent="MyBackupAgent" android:allowBackup="true" >    ...    <meta-data android:name="com.google.android.backup.api_key"        android:value="SUA_API_KEY" /></application>

sábado, 26 de novembro de 2011

WTF...

Já acabou?

sábado, 26 de novembro de 2011

Minicurso GratuitoPersistência de dados em

aplicações Android

15 / dezembro -19h às 22hPresencial e Online

bit.ly/tI8bbN sábado, 26 de novembro de 2011

sábado, 26 de novembro de 2011

Espere mais um pouco...

Temos mais 3 novidades para vocês!

sábado, 26 de novembro de 2011

TRÊS novos TREINAMENTOS

ANDROID no portifólio da

GLOBALCODE !

sábado, 26 de novembro de 2011

Introdução à plataforma Android.http://bit.ly/vP5pjO

sábado, 26 de novembro de 2011

Programando para Android.

http://bit.ly/gc-android

sábado, 26 de novembro de 2011

Criando Widgets e Notificações C2DMhttp://bit.ly/vxKhXz

sábado, 26 de novembro de 2011

Criando aplicações Android com GPS, mapas e sensores.http://bit.ly/ssexRv

sábado, 26 de novembro de 2011

@netomarinslideshare.net/netomarin

sábado, 26 de novembro de 2011