SESTINFO 2011
Universidade Metodista de São Paulo


       Desenvolvimento na Plataforma
             Google Android
        Rafael                          Rodrigo
        Sakurai                       Cascarrolho




                                                    1
Agenda
•   Introdução ao Android, arquitetura e ambiente de desenvolvimento.
•   Activity
•   Intent e Intent Filter
•   View
•   Service
•   Broadcast Receiver
•   Content Provider
•   GPS e Mapas
•   Android Market




                                                                        2
O que é Android?
• Sistema Operacional
• Middleware
• Aplicativos
• Interface
• Android SDK
• Apache License,Version 2.0
• Open Source

                               3
Arquitetura




              4
Quem apoia Android?
• Open Handset Alliance
• Google Inc.




                          5
Alguns números
       •   100 milhões de dispositivos com Android.
       •   ~ 400 mil novas ativações de dispositivos com
           Android por dia.
       •   200 mil aplicações no Android Market.
       •   Mais de 320 dispositivos que utilizam Android.
       •   4.5 bilhões de aplicações baixadas do Android
           Market.
Números divulgados no Google IO 2011 - http://www.google.com/events/io/2011/index-live.html


                                                                                              6
Versões Android




 http://developer.android.com/resources/dashboard/platform-versions.html




                                                                           7
Versões Android
•   Curiosidade - o codenome das versões são nomes de doces:
•   1.5 - Cupcake
•   1.6 - Donut
•   2.1 - Eclair
•   2.2 - Froyo
•   2.3 - Gingerbread
•   3.0 - Honeycomb
•   3.1 - Ice-cream sandwich



                                                               8
Ambiente de
Desenvolvimento
•   Java Developer Kit (JDK) - www.oracle.com/
    technetwork/java/javase/downloads/index.html
•   Eclipse IDE for Java Developers -
    www.eclipse.org
•   Android SDK - http://developer.android.com/
    sdk/index.html
•   ADT Plugin for Eclipse - http://
    developer.android.com/sdk/eclipse-adt.html


                                                   9
Android SDK e AVD
Manager
• Clique no menu   ou no menu Window →
  Android SDK e AVD Manager.




                                         10
Emulador
• Iniciar emulador.
• Opções do emulador no Eclipse
• Enviar SMS




                                  11
Componentes de uma
aplicação no Android
• Activity
• Intent e Intent Filters
• Services
• Broadcast Receivers
• Content Provider

                            12
Activity
• Classe define qual a tela (View) irá
  representar e controla os eventos dela.
• Precisa ser uma classe filha de
  android.app.Activity.
• Deve implementar o método public
  void onCreate(Bundle
  savedInstanceState) {...} que
  inicializa os elementos da tela.


                                            13
Hello World++
•   Criando um projeto Android no Eclipse:
    •   No menu Arquivo selecione Novo → Outro → Android → Android
        Project.
    •   Defina os seguintes campos:
    •   Project Name: Sestinfo-HelloWorldPlus
    •   Informe onde deve ser salvo o projeto.
    •   Build Target: Google APIs - 2.1-update Level 7 ou Android 2.1-
        update1
    •   Application Name: SESTINFO 2011 - HelloWorldPlus
    •   Package name: br.metodista.sestinfo.helloworld
    •   Create Activity: HelloWorld
    •   Clique em Finalizar




                                                                         14
Hello World++
•   Estrutura do Projeto
    •   src - Código fonte do projeto.
    •   gen - R.java - constantes que permitem acessar
        os elementos da tela.
    •   res - Recursos
        •   drawable... - imagens de acordo com o
            tamanho da tela.
        •   layout - arquivos xml com o layout da tela.
        •   values - arquivo xml com todos os textos.
    •   AndroidManifest.xml - configuração do
        projeto.




                                                          15
Hello World++


• Layout gráfico
  do main.xml




                  16
Hello World++
       • Conteúdo inicial do arquivo main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView android:layout_width="fill_parent" android:id="@+id/textView1"
android:text="@string/hello" android:layout_height="wrap_content"></TextView>
</LinearLayout>




                                                                                17
Hello World++
      • Adicionando mais componentes na tela:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:gravity="center" >

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:text="@string/hello" android:gravity="center" />

<LinearLayout android:layout_height="100dip" android:gravity="bottom"
    android:id="@+id/linearLayout1" android:layout_width="fill_parent" />

<Button android:id="@+id/btnVer" android:layout_width="fill_parent"
    android:layout_height="70dip" android:text="@string/mostrar" />

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:id="@+id/logoMeto" android:src="@drawable/logo_portal" />

</LinearLayout>


                                                                                      18
Hello World++
•   Edite o arquivo values/strings.xml com os
    seguintes valores:
    •   hello - Mini-cursonDesenvolvimento na
        plataforma Google Android
    •   appname - SestInfo 2011 - HelloWorldPlus
    •   mostrar - Mostrar mensagem...
    •   msg - Bem vindo à SESTINFO 2011
•   Adicione a imagem logo_portal.jpg na pasta
    drawable-mdpi.


                                                   19
Hello World++




                20
Hello World++
•    Adicionar a ação para o botão Mostrar mensagem...
package br.metodista.sestinfo.helloworld;

import   android.app.Activity;
import   android.os.Bundle;
import   android.view.View;
import   android.widget.Button;
import   android.widget.Toast;

public class HelloWorld extends Activity {
    private Button mostrar;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mostrar = (Button) findViewById(R.id.btnVer);
        mostrar.setOnClickListener(new View.OnClickListener() {
	    	    	    @Override
	    	    	    public void onClick(View v) {
	    	    	    	    Toast.makeText(getBaseContext(), R.string.msg, Toast.LENGTH_LONG).show();
	    	    	    }
	    	    });
    }
}
                                                                                                21
Hello World++
•   Para executar a aplicação, clique com o botão direito sobre
    o nome do projeto e escolha o item Run As →
    Android Application.




                                                                  22
Intent e Intent Filter
•   Intent é utilizando para enviar uma solicitação
    para o Android executar como por exemplo:
    •   Fazer uma ligação
    •   Enviar um SMS
    •   Abrir o browser
    •   Solicita a abertura de outra aplicação
•   Intent Filter é utilizado para mapear a ação de um
    Intent.


                                                         23
View
  • A View é a classe que representa os
       elementos da tela, onde cada elemento da
       tela é uma subclasse da classe View.
  • Todos os elementos da tela são escritos na
       forma de XML, exemplo:
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:minHeight="80dip"
    android:minWidth="80dip" android:clickable="true"
	   android:visibility="visible" android:background="#00000000"
	   android:paddingLeft="20dip" android:paddingTop="20dip"
	   android:paddingRight="20dip" android:paddingBottom="20dip">
</ImageView>




                                                                               24
Elementos de Tela




                    25
Exemplo View




               26
Service
•   A classe Service é utilizada para criar um serviço
    que é executado em background.
•   O processamento e gerenciamento de memória de
    uma Service é controlada pelo sistema operacional.
•   Processos com tempo e duração indeterminado.
•   Processos que irão demorar mais que 10 segundos.
•   Como por exemplo: download e player de audio e
    video.



                                                         27
Service




          28
Usando o SD Card
•   Após iniciar o emulador, entre na visualização
    Window → Show View → Android → File
    Explorer.

                    Pegar um arquivo   Adicionar um arquivo
                     no dispositivo.      no dispositivo.




                                                              29
Broadcast Receiver
• A classe BroadcastReceiver é utilizada para
  executar as solicitações feitas pelos Intent.
• Ela também é executada em background
  para não atrapalhar os usuário, podendo por
  exemplo acionar uma Service.
• Não é recomendado abrir uma Activity ou
  qualquer iteração com o usuário.
• Com o BroadcastReceiver podemos criar
  uma aplicação que ao receber um SMS já
  emite um aviso e apresenta ele na tela.
                                                  30
Exemplo Broadcast
Receiver




                    31
Enviar SMS via plugin
do Eclipse
•   Utilizando o plugin do Eclipse é fácil enviar um SMS
    ou fazer uma chamada telefônica para o emulador.

•   Entre na visualização Window → Show View →
    Android → Emulator Control, digite um
    número de telefone qualquer, a mensagem SMS e
    clique em Send.




                                                           32
Content Provider
• A classe ContentProvider permite
  compartilhar informações para que qualquer
  outra aplicação possa utilizá-las.
• Por exemplo a aplicação do Facebook coloca
  a foto dos seus contatos de acordo com a
  foto que está no perfil do contato no
  Facebook.
• Disponibilizar seus percursos com o GPS
  para outra aplicação.

                                               33
GPS e Mapas

• Global Positioning System (GPS) permite
  você localizar a posição atual do seu
  aparelho no Globo Terrestre.
• Google Maps permite você utilizar os mapas
  disponibilizados pela Google para criação de
  aplicações.



                                                 34
Exemplo Mapas




                35
Exemplo GPS e Mapas




                      36
Mais recursos do
Android
•   Banco de Dados (SQLite)
•   HTTP
•   Web Services
•   Acelerômetro
•   Multimídia video e câmera
•   Efeitos de transição
•   E muito mais


                                37
Android Market




                 38
Android Market - Minha
Conta




                         39
Publicando uma aplicação
no Android Market
•   No site http://developer.android.com
•   Acesse a opção Publish.
•   Crie seu perfil de desenvolvedor.
•   Pague a taxa de registro (US$25,00) com cartão
    de credito.
•   Aceite os termos de contrato da Google.
•   Aplicações paga 70% para o desenvolvedor e 30%
    para a Google.


                                                     40
Publicando uma aplicação
no Android Market




                           41
Publicando uma aplicação
no Android Market




                           42
Referencias
•   [LECHETA, Ricardo R.] Google Android: Aprenda
    a criar aplicações para dispositivos móveis com o
    Android SDK, 2 ed. - Editora Novatec - 2010
•   [Lúcio Camilo, Michel Lourenço] Android para
    Desenvolvedores, Editora Brasport - 2009
•   Android Developers - http://
    developer.android.com/index.html
•   Android Market - http://market.android.com


                                                        43
Rodrigo Cascarrolho
                              rgdcasca@gmail.com
                              @rodrigocasca
                              www.rdgc.com.br


               Obrigado!

Rafael Sakurai
rafasakurai@gmail.com
@rafaelsakurai
www.universidadejava.com.br
                                                44

SESTINFO 2011 Apresentacao Android

  • 1.
    SESTINFO 2011 Universidade Metodistade São Paulo Desenvolvimento na Plataforma Google Android Rafael Rodrigo Sakurai Cascarrolho 1
  • 2.
    Agenda • Introdução ao Android, arquitetura e ambiente de desenvolvimento. • Activity • Intent e Intent Filter • View • Service • Broadcast Receiver • Content Provider • GPS e Mapas • Android Market 2
  • 3.
    O que éAndroid? • Sistema Operacional • Middleware • Aplicativos • Interface • Android SDK • Apache License,Version 2.0 • Open Source 3
  • 4.
  • 5.
    Quem apoia Android? •Open Handset Alliance • Google Inc. 5
  • 6.
    Alguns números • 100 milhões de dispositivos com Android. • ~ 400 mil novas ativações de dispositivos com Android por dia. • 200 mil aplicações no Android Market. • Mais de 320 dispositivos que utilizam Android. • 4.5 bilhões de aplicações baixadas do Android Market. Números divulgados no Google IO 2011 - http://www.google.com/events/io/2011/index-live.html 6
  • 7.
  • 8.
    Versões Android • Curiosidade - o codenome das versões são nomes de doces: • 1.5 - Cupcake • 1.6 - Donut • 2.1 - Eclair • 2.2 - Froyo • 2.3 - Gingerbread • 3.0 - Honeycomb • 3.1 - Ice-cream sandwich 8
  • 9.
    Ambiente de Desenvolvimento • Java Developer Kit (JDK) - www.oracle.com/ technetwork/java/javase/downloads/index.html • Eclipse IDE for Java Developers - www.eclipse.org • Android SDK - http://developer.android.com/ sdk/index.html • ADT Plugin for Eclipse - http:// developer.android.com/sdk/eclipse-adt.html 9
  • 10.
    Android SDK eAVD Manager • Clique no menu ou no menu Window → Android SDK e AVD Manager. 10
  • 11.
    Emulador • Iniciar emulador. •Opções do emulador no Eclipse • Enviar SMS 11
  • 12.
    Componentes de uma aplicaçãono Android • Activity • Intent e Intent Filters • Services • Broadcast Receivers • Content Provider 12
  • 13.
    Activity • Classe definequal a tela (View) irá representar e controla os eventos dela. • Precisa ser uma classe filha de android.app.Activity. • Deve implementar o método public void onCreate(Bundle savedInstanceState) {...} que inicializa os elementos da tela. 13
  • 14.
    Hello World++ • Criando um projeto Android no Eclipse: • No menu Arquivo selecione Novo → Outro → Android → Android Project. • Defina os seguintes campos: • Project Name: Sestinfo-HelloWorldPlus • Informe onde deve ser salvo o projeto. • Build Target: Google APIs - 2.1-update Level 7 ou Android 2.1- update1 • Application Name: SESTINFO 2011 - HelloWorldPlus • Package name: br.metodista.sestinfo.helloworld • Create Activity: HelloWorld • Clique em Finalizar 14
  • 15.
    Hello World++ • Estrutura do Projeto • src - Código fonte do projeto. • gen - R.java - constantes que permitem acessar os elementos da tela. • res - Recursos • drawable... - imagens de acordo com o tamanho da tela. • layout - arquivos xml com o layout da tela. • values - arquivo xml com todos os textos. • AndroidManifest.xml - configuração do projeto. 15
  • 16.
    Hello World++ • Layoutgráfico do main.xml 16
  • 17.
    Hello World++ • Conteúdo inicial do arquivo main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:id="@+id/textView1" android:text="@string/hello" android:layout_height="wrap_content"></TextView> </LinearLayout> 17
  • 18.
    Hello World++ • Adicionando mais componentes na tela: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:gravity="center" /> <LinearLayout android:layout_height="100dip" android:gravity="bottom" android:id="@+id/linearLayout1" android:layout_width="fill_parent" /> <Button android:id="@+id/btnVer" android:layout_width="fill_parent" android:layout_height="70dip" android:text="@string/mostrar" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/logoMeto" android:src="@drawable/logo_portal" /> </LinearLayout> 18
  • 19.
    Hello World++ • Edite o arquivo values/strings.xml com os seguintes valores: • hello - Mini-cursonDesenvolvimento na plataforma Google Android • appname - SestInfo 2011 - HelloWorldPlus • mostrar - Mostrar mensagem... • msg - Bem vindo à SESTINFO 2011 • Adicione a imagem logo_portal.jpg na pasta drawable-mdpi. 19
  • 20.
  • 21.
    Hello World++ • Adicionar a ação para o botão Mostrar mensagem... package br.metodista.sestinfo.helloworld; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class HelloWorld extends Activity { private Button mostrar; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mostrar = (Button) findViewById(R.id.btnVer); mostrar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getBaseContext(), R.string.msg, Toast.LENGTH_LONG).show(); } }); } } 21
  • 22.
    Hello World++ • Para executar a aplicação, clique com o botão direito sobre o nome do projeto e escolha o item Run As → Android Application. 22
  • 23.
    Intent e IntentFilter • Intent é utilizando para enviar uma solicitação para o Android executar como por exemplo: • Fazer uma ligação • Enviar um SMS • Abrir o browser • Solicita a abertura de outra aplicação • Intent Filter é utilizado para mapear a ação de um Intent. 23
  • 24.
    View •A View é a classe que representa os elementos da tela, onde cada elemento da tela é uma subclasse da classe View. • Todos os elementos da tela são escritos na forma de XML, exemplo: <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="80dip" android:minWidth="80dip" android:clickable="true" android:visibility="visible" android:background="#00000000" android:paddingLeft="20dip" android:paddingTop="20dip" android:paddingRight="20dip" android:paddingBottom="20dip"> </ImageView> 24
  • 25.
  • 26.
  • 27.
    Service • A classe Service é utilizada para criar um serviço que é executado em background. • O processamento e gerenciamento de memória de uma Service é controlada pelo sistema operacional. • Processos com tempo e duração indeterminado. • Processos que irão demorar mais que 10 segundos. • Como por exemplo: download e player de audio e video. 27
  • 28.
  • 29.
    Usando o SDCard • Após iniciar o emulador, entre na visualização Window → Show View → Android → File Explorer. Pegar um arquivo Adicionar um arquivo no dispositivo. no dispositivo. 29
  • 30.
    Broadcast Receiver • Aclasse BroadcastReceiver é utilizada para executar as solicitações feitas pelos Intent. • Ela também é executada em background para não atrapalhar os usuário, podendo por exemplo acionar uma Service. • Não é recomendado abrir uma Activity ou qualquer iteração com o usuário. • Com o BroadcastReceiver podemos criar uma aplicação que ao receber um SMS já emite um aviso e apresenta ele na tela. 30
  • 31.
  • 32.
    Enviar SMS viaplugin do Eclipse • Utilizando o plugin do Eclipse é fácil enviar um SMS ou fazer uma chamada telefônica para o emulador. • Entre na visualização Window → Show View → Android → Emulator Control, digite um número de telefone qualquer, a mensagem SMS e clique em Send. 32
  • 33.
    Content Provider • Aclasse ContentProvider permite compartilhar informações para que qualquer outra aplicação possa utilizá-las. • Por exemplo a aplicação do Facebook coloca a foto dos seus contatos de acordo com a foto que está no perfil do contato no Facebook. • Disponibilizar seus percursos com o GPS para outra aplicação. 33
  • 34.
    GPS e Mapas •Global Positioning System (GPS) permite você localizar a posição atual do seu aparelho no Globo Terrestre. • Google Maps permite você utilizar os mapas disponibilizados pela Google para criação de aplicações. 34
  • 35.
  • 36.
    Exemplo GPS eMapas 36
  • 37.
    Mais recursos do Android • Banco de Dados (SQLite) • HTTP • Web Services • Acelerômetro • Multimídia video e câmera • Efeitos de transição • E muito mais 37
  • 38.
  • 39.
    Android Market -Minha Conta 39
  • 40.
    Publicando uma aplicação noAndroid Market • No site http://developer.android.com • Acesse a opção Publish. • Crie seu perfil de desenvolvedor. • Pague a taxa de registro (US$25,00) com cartão de credito. • Aceite os termos de contrato da Google. • Aplicações paga 70% para o desenvolvedor e 30% para a Google. 40
  • 41.
  • 42.
  • 43.
    Referencias • [LECHETA, Ricardo R.] Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK, 2 ed. - Editora Novatec - 2010 • [Lúcio Camilo, Michel Lourenço] Android para Desenvolvedores, Editora Brasport - 2009 • Android Developers - http:// developer.android.com/index.html • Android Market - http://market.android.com 43
  • 44.
    Rodrigo Cascarrolho rgdcasca@gmail.com @rodrigocasca www.rdgc.com.br Obrigado! Rafael Sakurai rafasakurai@gmail.com @rafaelsakurai www.universidadejava.com.br 44