SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Desenvolvimento de
Apps e Games para Android




Por Erisvaldo Júnior.   Parte 5 (20/09/2011)
RECAPITULANDO…
android.util.Log

Classe de Log do Android. Permite armazenar logs de até cinco
tipos:
LogCat
Permite a visualização do Log. Disponível na perspectiva Debug do
ADT no Eclipse.
Internacionalização

2. Organizar os recursos, mapeando as pastas values/ (strings.xml)
e res/ para cada região / linguagem suportada.
Internacionalização

3. Criar o strings.xml para cada linguagem.
Internacionalização

4. Testar a aplicação no emulador.
Como criar uma Splash Screen
Activity em Tela Cheia (Full Screen)
Classe Intent
     Um objeto Intent é uma mensagem composta por duas partes: action e data.


• ACTION – ação a ser realizada.
       Exemplos: ACTION_VIEW, ACTION_EDIT, ACTION_DIAL, ACTION_MAIN, etc;

• DATA – dados a serem operados, geralmente expressado por uma URI (Identificador
  Uniforme de Recursos).


       Um objeto Intent pode ser usado de duas formas: Explícita ou Implícita.

• EXPLÍCITA – especifica o componente que provê a classe que será executada.
  Frequentemente não possui informações extras. Usado geralmente para navegar entre
  activities dentro da aplicação.

• IMPLÍCITA – não especifica o componente, apenas fornece as informações e o sistema se
  encarrega de utilizar o melhor componente para executar esse Intent.
Exemplo Activity Implícita
(acessar uma URL no Browser)
Computação Móvel / Pervasiva / Ubíqua
Armazenamento de Dados
O Android provê diversas opções para armazenar dados da
aplicação. A escolha da melhor opção deve ser feita de acordo
com a necessidade: dados privados ou públicos, quantidade de
espaço necessário, etc.

 • Shared Preferences – Armazena dados primitivos em um
 conjunto de pares do tipo chave – valor;
 • Internal Storage – Armazena dados privados na memória do
 dispositivo;
 • External Storage – Armazena dados públicos na mídia externa
 de armazenamento;
 • SQLite Databases – Armazena dados estruturados em um banco
 de dados privado;
 • Network Connection – Armazena dados na web com o seu
 próprio servidor de rede.
Shared Preferences
Internal Storage
Para criar e escrever em um arquivo privado para a memória
interna, chama-se o método openFileOutput() com o nome do
arquivo e o tipo de operação, obtendo-se um
FileOutputStream. Em seguida, basta escrever com o write() e
finalizar com close().




Já para ler um arquivo da memória interna, chama-se o método
openFileInput() passando o nome do arquivo a ser lido como
parâmetro. Esse método retorna um FileInputStream. Assim, basta
ler com read() e finalizar com close().
External Storage
  Todo dispositivo Android suporta uma mídia externa de
  armazenamento. Pode ser um cartão removível (como SD Card)
  ou um espaço de armazenamento interno (não removível). Em
  ambos os casos, os arquivos podem ser lidos e modificados por
  outras aplicações ou pelo usuário quando se conecta o
  dispositivo via USB para transferência de dados.
Antes de se trabalhar com o armazenamento externo, deve-se chamar o método
       getExternalStorageState() para verificar se a mídia está disponível:
Roteiro da Aula



PERSISTÊNCIA E
COMUNICAÇÃO




                   Bem vindo ao mundo da mobilidade
PERSISTÊNCIA E
COMUNICAÇÃO
BackupManager

     Android desde a API Level 8 permite armazenar dados na Cloud
     sem necessidade de banco de dados externo (perfeito para
     armazenar       SharedPreferences     ou     arquivos     de
     configuração/informação simples).


               Como fazer isso com SharedPreferences?
                     Primeiro passo: criar uma chave de acesso em
                 http://code.google.com/android/backup/signup.html
• Depois deve-se criar uma classe que herda de BackupAgentHelper e, no onCreate(), criar
  uma instância de SharedPreferencesBackupHelper;
• No AndroidManifest.xml deve-se colocar os atributos android:allowBackups=“true” e
  android:backupAgent=“NomeDaSuaClasseQueHerdaDeBackupAgentHelper” em
  <application> e, por fim, adicionar a seguinte tag dentro de <application>:
BackupManager

Cada vez que você alterar um dado do grupo de
SharedPreferences, você deve invocar o método dataChanged() da
classe BackupManager.



                            E agora?
      Está feito! Suas SharedPreferences serão armazenadas na nuvem,
       fazendo com que o usuário não perca a informação mesmo após
                           reinstalar o seu aplicativo.
Exemplo de BackupManager & SharedPreferences
Exemplo de BackupManager (BackupManagerTestActivity)
Exemplo de BackupManager (MyBackupAgent)
Exemplo de BackupManager (AndroidManifest.xml)
Banco de Dados SQLite

Android provê suporte completo a bancos de dados SQLite. Os
bancos criados serão acessíveis pelo nome para qualquer classe da
aplicação, mas não poderão ser acessados externamente.

 Para se criar um banco de dados, pode-se usar o método
 openOrCreateDatabase() do contexto. Contudo, a forma
 recomendada é criar uma subclasse de SQLiteOpenHelper e
 sobrescrever o método onCreate() para a criação das tabelas.
SQLiteOpenHelper

O construtor de SQLiteOpenHelper recebe quatro        parâmetros,
conforme especificado abaixo. A versão do banco       de dados é
muito útil para o caso de o banco já existir e        precisar ser
atualizado (através da adição de novas tabelas e/ou   colunas, por
exemplo).
SQLiteOpenHelper

Pode-se, então, obter uma instância dessa subclasse através do
construtor criado. Com a instância, tem-se acesso a dois métodos
que retornam um SQLiteDatabase: getWritableDatabase(), para
inserção, edição e remoção de dados, e getReadableDatabase(),
para consulta de dados.

 Pode-se executar consultas no SQLite usando o método query() de
 SQLiteDatabase, que permite a passagem de diversos parâmetros,
 tais como: tabela a ser consultada, projeção, seleção, colunas,
 agrupamento e outros. Para consultas complexas, pode-se usar uma
 instância de SQLiteQueryBuilder. Cada consulta retorna um objeto
 Cursor que aponta para todos os registros encontrados pela query. É
 através do objeto Cursor que se navega entre os resultados.

 Por fim, usam-se os métodos insert() e delete() de SQLiteDatabase
 para inserção e remoção de registros, respectivamente.
SQLiteDatabase - query()

As consultas com query() retornam um Cursor para navegação e
recebem diversos parâmetros, cada qual com sua utilidade para a
consulta, conforme explicitado abaixo.
Exemplo de Banco de Dados SQLite
ExemploBD (BancoActivity)
ExemploBD (DadosController)
ExemploBD (BancoHelper)
Network Connection

Há, ainda, uma quinta forma de persistência em Android: o
armazenamento remoto. Pode-se usar uma rede (quando
disponível) para armazenar e recuperar dados de seus serviços
baseados na Web.




 Para realizar operações na rede, usam-se classes dos seguintes
 pacotes:

 • java.net;
 • android.net.
Android Networking Capabilities
org.apache.http.client.methods.HttpGet



                                 Para          adicionar
                                 parâmetros   na     sua
                                 requisição GET, basta
                                 inserí-los  na     URI.
                                 Exemplo:

                                 HttpGet request = new
                                 HttpGet(“http://erisvald
                                 ojunior.com/exemploget
                                 .php?tipo=2”);

                                 client.execute(request);
org.apache.http.client.methods.HttpPost
URLConnection
java.net.URL url = new java.net.URL(“http://developer.android.com");

java.net.URLConnection uc = url.openConnection();

BufferedReader br = new BufferedReader( new InputStreamReader (
uc.getInputStream() ) );



    Faça uma aplicação
    que exiba o código-
    fonte de uma página
    qualquer        cujo
    endereço é digitado
    em um EditText.
obrigado
• e-mail: erisvaldo@yupistudios.com.br
• web: http://erisvaldojunior.com
• twitter: @erisvaldojunior

Mais conteúdo relacionado

Mais procurados

Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)Natanael Fonseca
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Elvis Rocha
 
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Felipe Silveira
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotaçõesdieguinhomcz
 
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...Edisio Nascimento
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Apostila hibernate
Apostila hibernateApostila hibernate
Apostila hibernateAgenor Neto
 
xDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdocletxDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdocletDenis L Presciliano
 

Mais procurados (20)

Banco de Dados - Android
Banco de Dados - AndroidBanco de Dados - Android
Banco de Dados - Android
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
Android: Intent, Broadcast Receiver e Notifications
Android: Intent, Broadcast Receiver e NotificationsAndroid: Intent, Broadcast Receiver e Notifications
Android: Intent, Broadcast Receiver e Notifications
 
Java 14
Java 14Java 14
Java 14
 
PowerShell e Active Directory
PowerShell e Active DirectoryPowerShell e Active Directory
PowerShell e Active Directory
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
 
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotações
 
Hibernate conceitos
Hibernate conceitosHibernate conceitos
Hibernate conceitos
 
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
J530 14 xdoclet
J530 14 xdocletJ530 14 xdoclet
J530 14 xdoclet
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Apostila hibernate
Apostila hibernateApostila hibernate
Apostila hibernate
 
xDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdocletxDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdoclet
 

Destaque

Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Plataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesPlataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesAndré Otero
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Baixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkBaixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkReuel Lopes
 

Destaque (6)

A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Plataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesPlataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em Celulares
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Baixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkBaixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdk
 

Semelhante a Desenvolvimento de Apps e Games para Android - Parte 5

PDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETPDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETslides_teltools
 
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 ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Elton Minetto
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniterAnderson Gonçalves
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Thyago Maia
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Strutseduan
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdoJorge Luís Gregório
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoMarcos Bezerra
 

Semelhante a Desenvolvimento de Apps e Games para Android - Parte 5 (20)

Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
PDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETPDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NET
 
Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
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
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Java13
Java13Java13
Java13
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
 
Aula1
Aula1Aula1
Aula1
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Acessando banco de dados remoto com android
Acessando banco de dados remoto com android Acessando banco de dados remoto com android
Acessando banco de dados remoto com android
 

Mais de Erisvaldo Junior

Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java meErisvaldo Junior
 
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...Erisvaldo Junior
 
Desenvolvendo para iOS em linux
Desenvolvendo para iOS em linuxDesenvolvendo para iOS em linux
Desenvolvendo para iOS em linuxErisvaldo Junior
 
Arquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-uiArquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-uiErisvaldo Junior
 

Mais de Erisvaldo Junior (20)

Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java me
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Android Aula 1
Android Aula 1Android Aula 1
Android Aula 1
 
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
 
Desenvolvendo para iOS em linux
Desenvolvendo para iOS em linuxDesenvolvendo para iOS em linux
Desenvolvendo para iOS em linux
 
WebProtocolo 2.0
WebProtocolo 2.0WebProtocolo 2.0
WebProtocolo 2.0
 
Arquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-uiArquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-ui
 

Desenvolvimento de Apps e Games para Android - Parte 5

  • 1. Desenvolvimento de Apps e Games para Android Por Erisvaldo Júnior. Parte 5 (20/09/2011)
  • 3. android.util.Log Classe de Log do Android. Permite armazenar logs de até cinco tipos:
  • 4. LogCat Permite a visualização do Log. Disponível na perspectiva Debug do ADT no Eclipse.
  • 5. Internacionalização 2. Organizar os recursos, mapeando as pastas values/ (strings.xml) e res/ para cada região / linguagem suportada.
  • 6. Internacionalização 3. Criar o strings.xml para cada linguagem.
  • 7. Internacionalização 4. Testar a aplicação no emulador.
  • 8. Como criar uma Splash Screen
  • 9. Activity em Tela Cheia (Full Screen)
  • 10. Classe Intent Um objeto Intent é uma mensagem composta por duas partes: action e data. • ACTION – ação a ser realizada. Exemplos: ACTION_VIEW, ACTION_EDIT, ACTION_DIAL, ACTION_MAIN, etc; • DATA – dados a serem operados, geralmente expressado por uma URI (Identificador Uniforme de Recursos). Um objeto Intent pode ser usado de duas formas: Explícita ou Implícita. • EXPLÍCITA – especifica o componente que provê a classe que será executada. Frequentemente não possui informações extras. Usado geralmente para navegar entre activities dentro da aplicação. • IMPLÍCITA – não especifica o componente, apenas fornece as informações e o sistema se encarrega de utilizar o melhor componente para executar esse Intent.
  • 12. Computação Móvel / Pervasiva / Ubíqua
  • 13. Armazenamento de Dados O Android provê diversas opções para armazenar dados da aplicação. A escolha da melhor opção deve ser feita de acordo com a necessidade: dados privados ou públicos, quantidade de espaço necessário, etc. • Shared Preferences – Armazena dados primitivos em um conjunto de pares do tipo chave – valor; • Internal Storage – Armazena dados privados na memória do dispositivo; • External Storage – Armazena dados públicos na mídia externa de armazenamento; • SQLite Databases – Armazena dados estruturados em um banco de dados privado; • Network Connection – Armazena dados na web com o seu próprio servidor de rede.
  • 15. Internal Storage Para criar e escrever em um arquivo privado para a memória interna, chama-se o método openFileOutput() com o nome do arquivo e o tipo de operação, obtendo-se um FileOutputStream. Em seguida, basta escrever com o write() e finalizar com close(). Já para ler um arquivo da memória interna, chama-se o método openFileInput() passando o nome do arquivo a ser lido como parâmetro. Esse método retorna um FileInputStream. Assim, basta ler com read() e finalizar com close().
  • 16. External Storage Todo dispositivo Android suporta uma mídia externa de armazenamento. Pode ser um cartão removível (como SD Card) ou um espaço de armazenamento interno (não removível). Em ambos os casos, os arquivos podem ser lidos e modificados por outras aplicações ou pelo usuário quando se conecta o dispositivo via USB para transferência de dados. Antes de se trabalhar com o armazenamento externo, deve-se chamar o método getExternalStorageState() para verificar se a mídia está disponível:
  • 17. Roteiro da Aula PERSISTÊNCIA E COMUNICAÇÃO Bem vindo ao mundo da mobilidade
  • 19. BackupManager Android desde a API Level 8 permite armazenar dados na Cloud sem necessidade de banco de dados externo (perfeito para armazenar SharedPreferences ou arquivos de configuração/informação simples). Como fazer isso com SharedPreferences? Primeiro passo: criar uma chave de acesso em http://code.google.com/android/backup/signup.html • Depois deve-se criar uma classe que herda de BackupAgentHelper e, no onCreate(), criar uma instância de SharedPreferencesBackupHelper; • No AndroidManifest.xml deve-se colocar os atributos android:allowBackups=“true” e android:backupAgent=“NomeDaSuaClasseQueHerdaDeBackupAgentHelper” em <application> e, por fim, adicionar a seguinte tag dentro de <application>:
  • 20. BackupManager Cada vez que você alterar um dado do grupo de SharedPreferences, você deve invocar o método dataChanged() da classe BackupManager. E agora? Está feito! Suas SharedPreferences serão armazenadas na nuvem, fazendo com que o usuário não perca a informação mesmo após reinstalar o seu aplicativo.
  • 21. Exemplo de BackupManager & SharedPreferences
  • 22. Exemplo de BackupManager (BackupManagerTestActivity)
  • 23. Exemplo de BackupManager (MyBackupAgent)
  • 24. Exemplo de BackupManager (AndroidManifest.xml)
  • 25. Banco de Dados SQLite Android provê suporte completo a bancos de dados SQLite. Os bancos criados serão acessíveis pelo nome para qualquer classe da aplicação, mas não poderão ser acessados externamente. Para se criar um banco de dados, pode-se usar o método openOrCreateDatabase() do contexto. Contudo, a forma recomendada é criar uma subclasse de SQLiteOpenHelper e sobrescrever o método onCreate() para a criação das tabelas.
  • 26. SQLiteOpenHelper O construtor de SQLiteOpenHelper recebe quatro parâmetros, conforme especificado abaixo. A versão do banco de dados é muito útil para o caso de o banco já existir e precisar ser atualizado (através da adição de novas tabelas e/ou colunas, por exemplo).
  • 27. SQLiteOpenHelper Pode-se, então, obter uma instância dessa subclasse através do construtor criado. Com a instância, tem-se acesso a dois métodos que retornam um SQLiteDatabase: getWritableDatabase(), para inserção, edição e remoção de dados, e getReadableDatabase(), para consulta de dados. Pode-se executar consultas no SQLite usando o método query() de SQLiteDatabase, que permite a passagem de diversos parâmetros, tais como: tabela a ser consultada, projeção, seleção, colunas, agrupamento e outros. Para consultas complexas, pode-se usar uma instância de SQLiteQueryBuilder. Cada consulta retorna um objeto Cursor que aponta para todos os registros encontrados pela query. É através do objeto Cursor que se navega entre os resultados. Por fim, usam-se os métodos insert() e delete() de SQLiteDatabase para inserção e remoção de registros, respectivamente.
  • 28. SQLiteDatabase - query() As consultas com query() retornam um Cursor para navegação e recebem diversos parâmetros, cada qual com sua utilidade para a consulta, conforme explicitado abaixo.
  • 29. Exemplo de Banco de Dados SQLite
  • 33. Network Connection Há, ainda, uma quinta forma de persistência em Android: o armazenamento remoto. Pode-se usar uma rede (quando disponível) para armazenar e recuperar dados de seus serviços baseados na Web. Para realizar operações na rede, usam-se classes dos seguintes pacotes: • java.net; • android.net.
  • 35. org.apache.http.client.methods.HttpGet Para adicionar parâmetros na sua requisição GET, basta inserí-los na URI. Exemplo: HttpGet request = new HttpGet(“http://erisvald ojunior.com/exemploget .php?tipo=2”); client.execute(request);
  • 37. URLConnection java.net.URL url = new java.net.URL(“http://developer.android.com"); java.net.URLConnection uc = url.openConnection(); BufferedReader br = new BufferedReader( new InputStreamReader ( uc.getInputStream() ) ); Faça uma aplicação que exiba o código- fonte de uma página qualquer cujo endereço é digitado em um EditText.
  • 38. obrigado • e-mail: erisvaldo@yupistudios.com.br • web: http://erisvaldojunior.com • twitter: @erisvaldojunior