Persistencia de dados em aplicações Android
Upcoming SlideShare
Loading in...5
×
 

Persistencia de dados em aplicações Android

on

  • 6,127 views

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.

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.

Statistics

Views

Total Views
6,127
Views on SlideShare
6,101
Embed Views
26

Actions

Likes
4
Downloads
126
Comments
0

7 Embeds 26

http://paper.li 11
http://us-w1.rockmelt.com 5
http://a0.twimg.com 5
http://www.linkedin.com 2
http://tweetedtimes.com 1
http://127.0.0.1 1
https://twitter.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Persistencia de dados em aplicações Android Persistencia de dados em aplicações Android Presentation Transcript

  • Persistência de dados em aplicações Android @netomarin @Globalcodesábado, 26 de novembro de 2011
  • Vamos falar de... Shared Preferences SQLite Content Providerssá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ãosá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.htmlsá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.htmlsábado, 26 de novembro de 2011
  • Tem banco de dados ?sábado, 26 de novembro de 2011
  • SQLitePersistência combanco 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 Browsersá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.htmlsábado, 26 de novembro de 2011
  • Crie o seu ContentProvidersá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.htmlsá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/tI8bbNsá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/vP5pjOsábado, 26 de novembro de 2011
  • Programando para Android. http://bit.ly/gc-androidsábado, 26 de novembro de 2011
  • Criando Widgets e Notificações C2DM http://bit.ly/vxKhXzsábado, 26 de novembro de 2011
  • Criando aplicações Android com GPS, mapas e sensores. http://bit.ly/ssexRvsábado, 26 de novembro de 2011
  • Pra saber mais: http://blog.globalcode.com.br/ 2011/11/novidades-android-na- globalcode.htmlsábado, 26 de novembro de 2011
  • @netomarin slideshare.net/netomarinsábado, 26 de novembro de 2011