SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Persistência de dados em
     aplicações Android
                                 @netomarin
                                 @Globalcode




sábado, 26 de novembro de 2011
Vamos falar de...

                                 Shared Preferences

                                      SQLite

                                 Content Providers

sábado, 26 de novembro de 2011
                                  BackupManager
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ão
sábado, 26 de novembro de 2011
Lendo preferências...

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

      //Obtendo um SharedPreferences específico
      SharedPreferences prefs = getSharedPreferences(“SETTINGS”,
           MODE_PRIVATE);

      //Lendo valores primitivos
      String 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.Editor
      SharedPreferences prefs = getSharedPreferences(“SETTINGS”,
      MODE_PRIVATE);
      SharedPreferences.Editor editor = prefs.edit();

      //atribuindo valores
      editor.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 tabelas
                                     Inserir dados
                                       Consultar
                                        Apagar
                       e tudo mais que você sempre sentiu falta...




sábado, 26 de novembro de 2011
Criando e definindo a
                                    base de dados...

      //criar classe que extende SQLiteOpenHelper
      public 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 dados
      DatabaseHelper db = new DatabaseHelper(context);
      SQLiteDatabase litedb = db.getWritableDatabase();

      //Criando objeto para inserir no SQLite
      ContentValues 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 dados
      DatabaseHelper 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 contatos
      Cursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI,
          null, null, null, null);

      //Navegando pelos contatos
      while (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. SharedPreferencesBackupHelper
   Backup de SharedPreferences!

   2. FileBackupHelper
   Backup 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 Gratuito
                      Persistência de dados em
                         aplicações Android



                  15 / dezembro -19h às 22h
                      Presencial 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 C2DM
                                 http://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
Pra saber mais:
                                 http://blog.globalcode.com.br/
                                 2011/11/novidades-android-na-
                                         globalcode.html




sábado, 26 de novembro de 2011
@netomarin
                                  slideshare.net/netomarin
sábado, 26 de novembro de 2011

Contenu connexe

En vedette

GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)Carlos Gustavo Ruiz
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...Adriel Café
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidCaelum
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - PersistênciaArthur Emanuel
 
Google Android - WTJatai
Google Android - WTJataiGoogle Android - WTJatai
Google Android - WTJataiCaelum
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Fabio Spanhol
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniLuis Borges Gouveia
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidFernando Anselmo
 
Project 2013 basico e conceitos 2015 oficial
Project 2013 basico e conceitos 2015   oficialProject 2013 basico e conceitos 2015   oficial
Project 2013 basico e conceitos 2015 oficialAlana Ramalho
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Jose Berardo
 
Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01Gustavo Zimmermann
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceMarcio Palheta
 
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...Bruno Vasconcellos
 
Iniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidIniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidDiemesleno Souza Carvalho
 
Capítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiersCapítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiersMarcio Palheta
 

En vedette (20)

GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
 
2 Informix Introduction
2 Informix Introduction2 Informix Introduction
2 Informix Introduction
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google Android
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - Persistência
 
Google Android - WTJatai
Google Android - WTJataiGoogle Android - WTJatai
Google Android - WTJatai
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumni
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o Android
 
Project 2013 basico e conceitos 2015 oficial
Project 2013 basico e conceitos 2015   oficialProject 2013 basico e conceitos 2015   oficial
Project 2013 basico e conceitos 2015 oficial
 
Android
AndroidAndroid
Android
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
 
Iniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidIniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para android
 
Capítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiersCapítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiers
 

Similaire à Persistencia de dados em aplicações Android

REST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC GoiâniaREST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC GoiâniaAlexandre Gaigalas
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistenciaRoberson Alves
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01julianabdpaiva
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Fabrízio Mello
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Construindo sua primeira aplicação android
Construindo sua primeira aplicação androidConstruindo sua primeira aplicação android
Construindo sua primeira aplicação android666Insanity
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
programacao-c-banco-de-dados
programacao-c-banco-de-dadosprogramacao-c-banco-de-dados
programacao-c-banco-de-dadosRaul Dias
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 

Similaire à Persistencia de dados em aplicações Android (20)

Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
REST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC GoiâniaREST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC Goiânia
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Aula1
Aula1Aula1
Aula1
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Construindo sua primeira aplicação android
Construindo sua primeira aplicação androidConstruindo sua primeira aplicação android
Construindo sua primeira aplicação android
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Banco de dados
Banco de dados   Banco de dados
Banco de dados
 
Mini curso de c#.net
Mini curso de c#.netMini curso de c#.net
Mini curso de c#.net
 
Android Libs - AndroidDevConf
Android Libs - AndroidDevConfAndroid Libs - AndroidDevConf
Android Libs - AndroidDevConf
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
programacao-c-banco-de-dados
programacao-c-banco-de-dadosprogramacao-c-banco-de-dados
programacao-c-banco-de-dados
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 

Plus de Antonio Marin Neto

Explorando novas telas com o Google TV
Explorando novas telas com o Google TVExplorando novas telas com o Google TV
Explorando novas telas com o Google TVAntonio Marin Neto
 
Cloud 2 Device Message Framework - AndroidRec
Cloud 2 Device Message Framework - AndroidRecCloud 2 Device Message Framework - AndroidRec
Cloud 2 Device Message Framework - AndroidRecAntonio Marin Neto
 
Android ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRecAndroid ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRecAntonio Marin Neto
 
Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Antonio Marin Neto
 
Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?Antonio Marin Neto
 
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.Antonio Marin Neto
 
Desenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCDesenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCAntonio Marin Neto
 
Educação e certificação na plataforma Java
Educação e certificação na plataforma JavaEducação e certificação na plataforma Java
Educação e certificação na plataforma JavaAntonio Marin Neto
 
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...Antonio Marin Neto
 
A nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e CelularesA nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e CelularesAntonio Marin Neto
 
Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.Antonio Marin Neto
 
Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009Antonio Marin Neto
 
Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009Antonio Marin Neto
 

Plus de Antonio Marin Neto (19)

Explorando novas telas com o Google TV
Explorando novas telas com o Google TVExplorando novas telas com o Google TV
Explorando novas telas com o Google TV
 
Cloud 2 Device Message Framework - AndroidRec
Cloud 2 Device Message Framework - AndroidRecCloud 2 Device Message Framework - AndroidRec
Cloud 2 Device Message Framework - AndroidRec
 
Android ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRecAndroid ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRec
 
Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!
 
Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?
 
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
 
Desenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCDesenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USC
 
Educação e certificação na plataforma Java
Educação e certificação na plataforma JavaEducação e certificação na plataforma Java
Educação e certificação na plataforma Java
 
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
 
A nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e CelularesA nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e Celulares
 
Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.
 
Conhecendo android
Conhecendo androidConhecendo android
Conhecendo android
 
Mc71 Desenvolvimento Movel
Mc71 Desenvolvimento MovelMc71 Desenvolvimento Movel
Mc71 Desenvolvimento Movel
 
Cosmo - Quick Devoxx09
Cosmo - Quick Devoxx09Cosmo - Quick Devoxx09
Cosmo - Quick Devoxx09
 
Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009
 
Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009
 
Jme Games
Jme GamesJme Games
Jme Games
 
WRT Widgets - M3DD LA
WRT Widgets - M3DD LAWRT Widgets - M3DD LA
WRT Widgets - M3DD LA
 
LWUIT - Just Java2008
LWUIT - Just Java2008LWUIT - Just Java2008
LWUIT - Just Java2008
 

Persistencia de dados em aplicações Android

  • 1. Persistência de dados em aplicações Android @netomarin @Globalcode sábado, 26 de novembro de 2011
  • 2. Vamos falar de... Shared Preferences SQLite Content Providers sábado, 26 de novembro de 2011 BackupManager
  • 3. SharedPreferences Framework para persistir pares de chave-valor de dados primitivos. sábado, 26 de novembro de 2011
  • 4. Onde e para o que usar? Preferências Valores padrão sábado, 26 de novembro de 2011
  • 5. Lendo preferências... //default da aplicação Context c = getApplicationContext(); SharedPreferences defaultPrefs = PreferenceManager. getDefaultSharedPreferences(c); //Obtendo um SharedPreferences específico SharedPreferences prefs = getSharedPreferences(“SETTINGS”, MODE_PRIVATE); //Lendo valores primitivos String 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
  • 6. Gravando preferências... //Obtendo o SharedPreferences.Editor SharedPreferences prefs = getSharedPreferences(“SETTINGS”, MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); //atribuindo valores editor.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
  • 7. Tem banco de dados ? sábado, 26 de novembro de 2011
  • 8. SQLite Persistência com banco de dados relacional para Android ! sábado, 26 de novembro de 2011
  • 9. Saudades do SQL ? Criar tabelas Inserir dados Consultar Apagar e tudo mais que você sempre sentiu falta... sábado, 26 de novembro de 2011
  • 10. Criando e definindo a base de dados... //criar classe que extende SQLiteOpenHelper public class MeuBancoDeDados extends SQLiteOpenHelper { /** * implementar métodos: * onCreate * onUpgrade * * E opcionalmente onOpen */ } sábado, 26 de novembro de 2011
  • 11. Inserindo dados... //Obtendo instância do banco de dados DatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getWritableDatabase(); //Criando objeto para inserir no SQLite ContentValues 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
  • 12. Obtendo dados.... //Obtendo instância do banco de dados DatabaseHelper 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
  • 13. Criar tabela? Na mão ? INSERT ?! sábado, 26 de novembro de 2011
  • 14. SQLite Database Browser sábado, 26 de novembro de 2011
  • 15. 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
  • 16. ContentProvider Única forma de compartilhar dados entre diferentes aplicações. sábado, 26 de novembro de 2011
  • 17. Como funciona ? sábado, 26 de novembro de 2011
  • 18. Providers do sistema Contatos Fotos Calendário (disponível a partir do ICS) sábado, 26 de novembro de 2011
  • 19. Lendo os contatos //Obtendo os contatos Cursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); //Navegando pelos contatos while (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
  • 20. Crie o seu ContentProvider sábado, 26 de novembro de 2011
  • 21. E como eu acesso o meu banco pra sincronizar? sábado, 26 de novembro de 2011
  • 22. 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
  • 23. Obter uma API Key: http://code.google.com/android/backup/signup.html sábado, 26 de novembro de 2011
  • 24. Extender BackupAgentHelper Deve ter pelo menos um backup helpers: 1. SharedPreferencesBackupHelper Backup de SharedPreferences! 2. FileBackupHelper Backup de arquivos do internal storage. sábado, 26 de novembro de 2011
  • 25. Fazer o backup... Notificar o BackupManager com a chamada do método dataChanged() sábado, 26 de novembro de 2011
  • 26. 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
  • 27. WTF... Já acabou? sábado, 26 de novembro de 2011
  • 28. Minicurso Gratuito Persistência de dados em aplicações Android 15 / dezembro -19h às 22h Presencial e Online bit.ly/tI8bbN sábado, 26 de novembro de 2011
  • 29. sábado, 26 de novembro de 2011
  • 30. Espere mais um pouco... Temos mais 3 novidades para vocês! sábado, 26 de novembro de 2011
  • 31. TRÊS novos TREINAMENTOS ANDROID no portifólio da GLOBALCODE ! sábado, 26 de novembro de 2011
  • 32. Introdução à plataforma Android. http://bit.ly/vP5pjO sábado, 26 de novembro de 2011
  • 33. Programando para Android. http://bit.ly/gc-android sábado, 26 de novembro de 2011
  • 34. Criando Widgets e Notificações C2DM http://bit.ly/vxKhXz sábado, 26 de novembro de 2011
  • 35. Criando aplicações Android com GPS, mapas e sensores. http://bit.ly/ssexRv sábado, 26 de novembro de 2011
  • 36. Pra saber mais: http://blog.globalcode.com.br/ 2011/11/novidades-android-na- globalcode.html sábado, 26 de novembro de 2011
  • 37. @netomarin slideshare.net/netomarin sábado, 26 de novembro de 2011