SlideShare una empresa de Scribd logo
1 de 67
{
Agenda

O que é Android ?

História do Android

Outros Sistemas

O limite é a imaginação
O que é Android ?




Android é um sistema operacional baseado em linux para dispositivos móveis.

     É desenvolvido pela Open Handset Alliance, liderado pelo Google
História

                                                          6%                  5%
    Surge o consórciotorna Handset Alliance, formado por
      Android se Open o
    Google acredita emprimeiros tablets com Android.
                         47 uma pequena empresa
          São lançados os empresas.
      líder em vendas pelo
   Notícias da BBC e WallStreet dizem que Google
   chamada é definir padrões para um sistema aberto, sem
   O objetivo Android mercado restrito de celulares.
                        Inc., que tinha um projeto de
   está entrando no lançam modelos com android. Isto faz
     Outros fabricantes 59%.
      mundo, com o primeiro pagar licensas.
    criar um alcança a operacionalcelular celulares dia e
    AAndroid sistema marca de 700.000 ativações por o
      empresa fabricantes tenham quepara com Android:
        que os HTC lança                 30%
      alcançar a marca de 43% dos celulares vendidos nos
         projeta uma marca de Dream de 250% ao ano.
                          HTC aumento
     Google é o líder deste consórcio e oferece o Android 59%
                   baseado em linux.
         Estados Unidos, com 362.000 ativações por dia.
      Começaram boatos de operacional. estava
                  como sistema que Google
                fabricando um celular.
              Google comprou a empresa
                            Android         IOS        Symbian           Windows phone
                     Fonte: http://en.wikipedia.org/wiki/Mobile_operating_system#Mobile_OS_comparison




       2005          2007                       2010                        2012


              2006                2008                        2011
Novidades android
O que é possível fazer com um smartphone ?




 Guardar arquivos via USB                    Acessar sites na internet

 Ouvir rádio                                 Jogar video-game

 Tirar fotos usando flash                    Ler PDF e Documentos

 Gravar e reproduzir vídeos                  Receber e enviar mensagens SMS

 Calcular com calculadora científica Dirigir com GPS e mapas

 Reproduzir MP3                              Fazer e receber ligações

 Gravar sons
O Futuro é agora




                   1982   2012
Os equipamentos são substituídos por
           aplicativos
Para criar uma aplicação é                            Java
                    necessário conhecer uma                              C
                                                                         C♯
                  linguagem de programação                               C++
                                                                         Objective-C
                                                                         PHP
                                                                         Visual Basic
                                                                         Python
20 linguagens de programação mais populares                              Perl
                                                                         JavaScript
                                                                         Delphi
                                                                         Pascal
                                                                         Ruby
                                                                         Lisp
                                                                         Transact-SQL
                                                                         Pascal
                                                                         Visual Basic .NET
                                                                         PL/SQL
                                                                         Logo
                                                                         Ada
Fonte: http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o   R
Sistemas operacionais e
     linguagens de programação.




   Qualquer uma das linguagens de
programação requer estudo e dedicação.
Agenda

Ambiente de desevolvimento

princípios

Hello world

Componentes visuais
Ambiente de desevolvimento




                Todo o ambiente de desenvolvimento é open-source


 Eclipse: http://www.eclipse.org




                                    Android SDK: http://developer.android.com/sdk
Activity


           Android possui alguns conceitos
           interessantes em sua arquitetura

     Activity                         Intent
     Service
     Content Provider
     Broadcast Receiver
Activity




    Para testar os conceitos a seguir, vamos criar
                 uma nova aplicação
1º Conceito: Activity                                                                        XML
                         <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                           xmlns:tools="http://schemas.android.com/tools"
                           android:layout_width="match_parent"
                           android:layout_height="match_parent" >
                           <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:layout_centerHorizontal="true"
                             android:layout_centerVertical="true"
                             android:padding="@dimen/padding_medium"
                             android:text="@string/hello_world"
                             tools:context=".MainActivity" />
                         </RelativeLayout>

                                                                                        Classe JAVA
                         public class MainActivity extends Activity {
Cada tela individual é       @Override
uma Activity. Usuários       public void onCreate(Bundle savedInstanceState) {
                               super.onCreate(savedInstanceState);
 conseguem executar            setContentView(R.layout.activity_main);
                             }
   ações interagindo
      através de             @Override
                             public boolean onCreateOptionsMenu(Menu menu) {
 componentes visuais           getMenuInflater().inflate(R.menu.activity_main, menu);
                               return true;
    em uma activity.         }
                         }
princípios
                                                         Background
    Ciclo de vida da activity



               onRestart()




onCreate()       onStart()      onResume()   onPause()    onStop()




                                                         onDestroy()



                                                            Null
Activity

           Precisamos atribuir identificadores para os componentes da tela




                                          Dicas:

                                          • Use padrões para nomear componentes
                                          • Use nomes simples
                                          • Adicione ao nome do componente o tipo

                                          (ex: “btProcessar”, nome para o botão
                                          processar)
Activity

   Para facilitar a internacionalização da aplicação, é recomendado usar strings.xml




                                      Tela para ajudar a inserir uma nova string




                               <resources>                       res/values/strings.xml
                                 <string name="app_name">Ajuste9Digitos</string>
                                 <string name="hello_world">Hello world!</string>
                                 <string name="menu_settings">Settings</string>
                                 <string name="title_activity_tela1">Tela 1</string>
                                 <string name="botao">Processar</string>
                                 <string name="title_activity_tela2">Tela 2</string>
                                 <string name="clique">Clique no botao</string>
                                 <string name="ir_para_contatos">Ir para
                               contatos</string>

                               </resources>
Activity


           Para adicionar funções ao botão, precisamos programar
Activity


             Para adicionar funções ao botão, precisamos programar
 …
 ProgressDialog dialogo;
 Handler handler;
 …



 …
Button botao =(Button)findViewById(R.id.btProcessar);
 …
Activity


             Para adicionar funções ao botão, precisamos programar

Button botao =(Button)findViewById(R.id.btProcessar);
botao.setOnClickListener(this);

Faça a Activity implementar o Listener do Click (OnClickListener)

   … Activity implements OnClickListener{

 Você será obrigado a ter o método onClick


   @Override
   public void onClick(View arg0) {

       Toast.makeText(Tela1Activity.this, “Click”, 1000).show();

   }
Activity
 Forma errada de processar e executar métodos

                                 Simulando um processamento pesado
  private void processar(){
      int contador = 1;
      while(contador < 150000){
            Log.i("Tela1", "Estou no " + contador);
            contador++;
      }
  }




Chame o método processar()
   no método onClick()
                                            http://queninguemle.blogspot.com.br/
Activity
 Forma correta de processar e executar métodos
  private void processar(){
            int contador = 0;
            while(contador < 100000){
                       contador++;
                       Log.i("Tela1", "Estou no " + contador);
            }

  }

               Chame o método processar() em uma Thread
Runnable contar = new Runnable(){
     @Override
     public void run() {
           processar();
     }
};
Thread paralelo = new Thread(contar);
paralelo.start();
 dialogo = ProgressDialog.show(Tela1Activity.this, "Aguarde", "Processando");
2º Conceito: Intent


 Intent   Intenção



   Intent é uma descrição abstrata de uma
        operação que será executada
Intent

Para navegar entre activities, precisamos informar a nossa intenção




         Intent



                     AndroidManifest.xml
3º Content Provider
Provedor de conteúdo

 Android permite armazenar informações de diversas maneiras.


         Banco de dados
         Arquivos de texto
         Preferencias de sistema

                        Porém, geralmente as informações ficam
                        salvas dentro do pacote da aplicação.

                        Somente a aplicação pode acessar !
3º Content Provider
Provedor de conteúdo

       O Conceito de “Content Provider” permite que essas
                  informações sejam públicas

Para utilizar o content provider, é necessário utilizar URI para identificar a informação

                   Uniform Resource Identifier (Identificador Uniforme de Recursos)

 content://com.android.contacts/contacts/
              ContactsContract.Contacts.CONTENT_URI


 content://com.android.contacts/contacts/1
 content://media/external/images/media
3º Content Provider
    Provedor de conteúdo
private void listarContatos(){
   Uri contatos = ContactsContract.Contacts.CONTENT_URI;

    ContentResolver content = getContentResolver();

    Cursor cursor = content.query(contatos, null, null, null, null);

    while(cursor.moveToNext()){

         for(int i=0; i < cursor.getColumnCount(); i++){

             String info = cursor.getColumnName(i) + " = " + cursor.getString(i);
             Log.i("Tela1",info);

         }

    }

}
Sua aplicação vive sozinha ?


 Comunicação                   Senão …

 Interação

 Informações

 Live Streaming
Comunicação entre aplicações

    Webservices
                    REST + JSON
                                       JavaScript Object Notation

     Chave
                               Valor

{
    “pergunta”:{
     "numero_pergunta":"3",
     "pergunta":"Quantas vezes o Brasil foi campeao da copa ?",
     "3":"6 vezes (hexa)",
     "2":"5 vezes (penta)",
     "1":"4 vezes (tetra)"
    }
}
princípios



             Http


                    Webservice




             JSON
Conectando a apicação




  Para se conectar á redes sociais, é necessário conhecer a API


 Ex.:

 https://userstream.twitter.com/2/user.json

 https://api.foursquare.com/v2/users/1/friend
Conectando a apicação
Conectando a apicação
Conectando a apicação
Conectando a apicação
Conectando a apicação
Hora de programar
Google android add-ins




       Para facilitar o desenvolvimento e promover
     idéias inovadoras, Google oferece um conjunto
              especial de APIs para Android
Google android add-ins




                                       USB Open Accessory
   Google MAPs



                    Google Cloud Messaging




     Google Play                        Google Analytics
Google android add-ins




 Google Maps API fornece um poderoso ambiente
 para adicionar funcionalidades de mapas em sua
 aplicação



                            Possui uma variedade de classes para renderizar
                            mapas, além de diversas opções de visualizar e
                            controlar mapas




  A classe principal é chamada de MapView, responsável
  por renderizar, reconhecer gestos para fazer zoom, e
  fazer requisições adicionais ao servidor de mapas
Google android add-ins




 Para começar a usar, é necessário baixar o pacote Google
 APIs no SDK Manager do Android Plugin




    Google
    APIs
Passos para ter sucesso com mapas



 Crie um emulador com suporte á Google APIs e GPS

 Crie um novo projeto (Android Application Project)

 Adicione as permissões no AndroidManifest.xml

 Arranque o Hello World da tela, e coloque no lugar um MapView

 Altere a classe para herdar de MapActivity, e não mais Activity

 Gere a chave GoogleMaps (não é tão de graça assim)

 Altere o XML, insira a chave que recebeu do Google

 Rode a aplicação e parta para o abraço !
Passos para ter sucesso com mapas


  Criando o emulador




Vamos criar um novo emulador, informando que
utilizaremos a GoogleAPI.



Android AVD Manager -> New -> GoogleAPIs (Google Inc.)
Passos para ter sucesso com mapas


  Crie o novo projeto




                   Vamos criar um novo projeto



New -> Android Application Project
Passos para ter sucesso com mapas


  Adicione permissões no AndroidManifest.xml




         Precisamos alterar o AndroidManifest.xml
                 Tenha cuidado ao digitar em meio as tags.

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>




Dentro de application

<uses-library android:name="com.google.android.maps"/>
Passos para ter sucesso com mapas


Arranque o Hello World da tela (tela_mapa.xml) e insira o MapView

<RelativeLayout
xmlns:android=http://schemas.android.com/apk/res/android
xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

     <com.google.android.maps.MapView
          android:id="@+id/mapa"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:enabled="true"
          android:clickable="true"
          android:apiKey="CHAVE_GOOGLE_MAPS"
     />
Passos para ter sucesso com mapas


Faça a Activity herdar de MapActivity



  …     TelaMapaActivity extends MapActivity            {
                . . .

            @Override
            protected boolean isRouteDisplayed() {
                   // TODO Auto-generated method stub
                   return false;
            }



    }
Passos para ter sucesso com mapas


Rode a aplicação (para gerar o arquivo debug.keystore)



Rode a aplicação agora, e receba um erro grátis !




java.io.IOException: Server returned: 3
Passos para ter sucesso com mapas


Gere a chave GoogleMaps (não é tão de graça assim)

  Precisamos gerar a chave para utilizar o mapa



Windows Vista: C:Users<user>.androiddebug.keystore

Windows XP: C:Documents and Settings<user>.androiddebug.keystore

Linux: ˜/.android/debug.keystore



  Linux: no terminal
                 cd .android
Passos para ter sucesso com mapas


Gere a chave GoogleMaps (não é tão de graça assim)



No terminal, digite:


keytool –list –keystore debug.keystore

Insira a senha: android




  Your keystore contains 1 entry

  androiddebugkey, Jul 17, 2012, PrivateKeyEntry,
  Certificate fingerprint (MD5): 51:15:A4:15:DB:23:9E:C6:E2:77:04:3B:37:CA:53:70
Passos para ter sucesso com mapas


Gere a chave GoogleMaps (não é tão de graça assim)


   https://developers.google.com/android/maps-api-signup
oficinasescandroid

oficin@sesC
Passos para ter sucesso com mapas


Rode a aplicação novamente
Passos para ter sucesso com mapas



 Crie um emulador com suporte á Google APIs e GPS

 Crie um novo projeto (Android Application Project)

 Adicione as permissões no AndroidManifest.xml

 Arranque o Hello World da tela, e coloque no lugar um MapView

 Altere a classe para herdar de MapActivity, e não mais Activity

 Gere a chave GoogleMaps (não é tão de graça assim)

 Altere o XML, insira a chave que recebeu do Google

 Rode a aplicação e parta para o abraço !
Controlando o mapa

 É possível controlar o mapa através de programação


                             … extends MapActivity {
   MapView mapa;
   MapController controlador;
   GeoPoint ponto;

   … setContentView(R.layout.tela_mapa);

  mapa = (MapView) findViewById(R.id.mapa);
  mapa.setSatellite(true);
  mapa.setBuiltInZoomControls(true);
  controlador = mapa.getController();
  controlador.setZoom(17);
Controlando o mapa

   É possível controlar o mapa através de programação



controlador.setZoom(17);
final MyLocationOverlay meuponto         = new
MyLocationOverlay(this, mapa);
meuponto.enableCompass();
meuponto.enableMyLocation();
mapa.getOverlays().add(meuponto);
meuponto.runOnFirstFix(new Runnable(){
     @Override
     public void run() {
         ponto = meuponto.getMyLocation();
         controlador.animateTo(ponto);
     }
});
Testando a minha localização

Para enviar o sinal do GPS, utilize o Emulator Control




                                         Longitude   -46,547225
                                         Latitude    -23,6539964
Movimentando o mapa



 É necessário um Listener para que o mapa seja atualizado


 …extends MapActivity implements LocationListener{
                                          Você será a obrigado a ter alguns métodos
         GeoPoint ponto;
         LocationManager gerenciador;
         ...

      controlador.animateTo(ponto);
   }
});
gerenciador =
(LocationManager)getSystemService(LOCATION_SERVICE);

gerenciador.requestLocationUpdates(LocationManager.GPS_PROVIDER
, 1000, 1, this);
Movimentando o mapa


     Basta atualizar o ponto, e centralizar no ponto encontrado !



       GeoPoint mede latitude e longitude em micrograus, e o
       GPS retorna em graus. Por isso, tem que converter !


@Override
public void onLocationChanged(Location location) {

      Toast.makeText(this, “Ponto encontrado", Toast.LENGTH_LONG).show();

       ponto = new GeoPoint(
          (int) (location.getLatitude() * 1E6),
          (int) (location.getLongitude()* 1E6)
       );

      controlador.animateTo(ponto);
}
Adicionando pontos no mapa
     Precisamos customizar um ponto para adicionar no mapa.

    class MeuMarcador extends ItemizedOverlay{
    ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
        public MeuMarcador(Drawable defaultMarker){
             super(boundCenterBottom(defaultMarker));
             populate();
        }
        public void adicionarPonto(OverlayItem ponto){
              items.add(ponto);
              populate();
        }
        …
    }
}
Adicionando pontos no mapa
      Precisamos customizar um ponto para adicionar no mapa.

    . . .
     createItem        =>        return items.get(i);
     size              =>        return items.size();

@Override
protected boolean onTap(int index) {
  OverlayItem item = items.get(index);

     Toast.makeText(TelaMapaActivity.this, item.getSnippet(),
             Toast.LENGTH_LONG).show();

     return super.onTap(index);
}
Adicionando pontos no mapa
   Precisamos customizar um ponto para adicionar no mapa.

 LocationManager gerenciadorLocal;
 MeuMarcador marcadores;


onLocationChanged ( . . . ) {
      . . .
controlador.animateTo(ponto);

OverlayItem item = new OverlayItem(ponto,
   "Ponto", location.toString());

marcadores.adicionarPonto(item);

mapa.getOverlays().add(marcadores);
Aplausos para a nossa primeira aplicação !
Como são compiladas as apps. ?




                                           imagens
.java   .class                .dex
                                           arquivos



                                   .apk

                      Instalamos a aplicação .apk nos dispositivos
odair.bonin@gmail.com




       { Obrigado pela presença

Más contenido relacionado

La actualidad más candente

27072010221224.introdução a java aula 1
27072010221224.introdução a java   aula 127072010221224.introdução a java   aula 1
27072010221224.introdução a java aula 1bibliotecadobarao
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Tchelinux
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogVinícius Thiengo
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogVinícius Thiengo
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de AndroidTiago Barreto
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo OliveiraRonildo Oliveira
 
BottomNavigationView Android, Como e Quando Utilizar
BottomNavigationView Android, Como e Quando UtilizarBottomNavigationView Android, Como e Quando Utilizar
BottomNavigationView Android, Como e Quando UtilizarVinícius Thiengo
 
Lottie API Para Animações no Android
Lottie API Para Animações no AndroidLottie API Para Animações no Android
Lottie API Para Animações no AndroidVinícius Thiengo
 
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: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
PhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de ZoomPhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de ZoomVinícius Thiengo
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldMarcio Palheta
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeansSliedesharessbarbosa
 
Como Impulsionar o App Android - Compartilhamento Nativo
Como Impulsionar o App Android - Compartilhamento NativoComo Impulsionar o App Android - Compartilhamento Nativo
Como Impulsionar o App Android - Compartilhamento NativoVinícius Thiengo
 
Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv Ui
Arquitetura De Ap Is GráFicas Do Java Dtv   Lwuit E Dtv UiArquitetura De Ap Is GráFicas Do Java Dtv   Lwuit E Dtv Ui
Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv UiErisvaldo Junior
 

La actualidad más candente (20)

27072010221224.introdução a java aula 1
27072010221224.introdução a java   aula 127072010221224.introdução a java   aula 1
27072010221224.introdução a java aula 1
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do Blog
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do Blog
 
Android Aprendiz
Android AprendizAndroid Aprendiz
Android Aprendiz
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de Android
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo Oliveira
 
BottomNavigationView Android, Como e Quando Utilizar
BottomNavigationView Android, Como e Quando UtilizarBottomNavigationView Android, Como e Quando Utilizar
BottomNavigationView Android, Como e Quando Utilizar
 
Lottie API Para Animações no Android
Lottie API Para Animações no AndroidLottie API Para Animações no Android
Lottie API Para Animações no Android
 
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: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
PhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de ZoomPhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de Zoom
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
Como Impulsionar o App Android - Compartilhamento Nativo
Como Impulsionar o App Android - Compartilhamento NativoComo Impulsionar o App Android - Compartilhamento Nativo
Como Impulsionar o App Android - Compartilhamento Nativo
 
Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv Ui
Arquitetura De Ap Is GráFicas Do Java Dtv   Lwuit E Dtv UiArquitetura De Ap Is GráFicas Do Java Dtv   Lwuit E Dtv Ui
Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv Ui
 

Destacado

Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Ricardo Longa
 
K19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidK19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidAline Diniz
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)Ricardo Longa
 
Aula 10 04 (Gerenciadores de layouts)
Aula 10 04 (Gerenciadores de layouts)Aula 10 04 (Gerenciadores de layouts)
Aula 10 04 (Gerenciadores de layouts)Ricardo Longa
 
Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)Ricardo Longa
 
Aula 22/05 (Handler)
Aula 22/05 (Handler)Aula 22/05 (Handler)
Aula 22/05 (Handler)Ricardo Longa
 
Pomodoro agil
Pomodoro agilPomodoro agil
Pomodoro agilRenato
 
Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)Ricardo Longa
 
android_overview
android_overviewandroid_overview
android_overviewRenato
 
Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
Aula 10 04 (intents)
Aula 10 04 (intents)Aula 10 04 (intents)
Aula 10 04 (intents)Ricardo Longa
 
Android na prática - USCS
Android na prática - USCSAndroid na prática - USCS
Android na prática - USCSRenato
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RRenato
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)Ricardo Longa
 
Aula04 android intents
Aula04 android intentsAula04 android intents
Aula04 android intentsRoberson Alves
 
Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Ricardo Longa
 
Treze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidTreze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidRicardo Longa
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)Natanael Fonseca
 
Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)Ricardo Longa
 

Destacado (20)

Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)
 
K19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidK19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com Android
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)
 
Aula 10 04 (Gerenciadores de layouts)
Aula 10 04 (Gerenciadores de layouts)Aula 10 04 (Gerenciadores de layouts)
Aula 10 04 (Gerenciadores de layouts)
 
Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)
 
Aula 22/05 (Handler)
Aula 22/05 (Handler)Aula 22/05 (Handler)
Aula 22/05 (Handler)
 
Aula 12/06 (SQLite)
Aula 12/06 (SQLite)Aula 12/06 (SQLite)
Aula 12/06 (SQLite)
 
Pomodoro agil
Pomodoro agilPomodoro agil
Pomodoro agil
 
Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)
 
android_overview
android_overviewandroid_overview
android_overview
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Aula 10 04 (intents)
Aula 10 04 (intents)Aula 10 04 (intents)
Aula 10 04 (intents)
 
Android na prática - USCS
Android na prática - USCSAndroid na prática - USCS
Android na prática - USCS
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.R
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
Aula04 android intents
Aula04 android intentsAula04 android intents
Aula04 android intents
 
Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)
 
Treze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidTreze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento android
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
 
Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)
 

Similar a Oficina Sesc Android - V1

2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesWilliam S. Rodriguez
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TVAécio Costa
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetosPaulo Carvalho
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...William S. Rodriguez
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelCampus Party Brasil
 
Minicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CEMinicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CERonildo Oliveira
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidBruno Oliveira
 
Criando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APICriando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APIJessica Zanelato Soares
 

Similar a Oficina Sesc Android - V1 (20)

2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TV
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Workshop frontend
Workshop   frontendWorkshop   frontend
Workshop frontend
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
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
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
 
Minicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CEMinicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CE
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em Android
 
Java -aula_01
Java  -aula_01Java  -aula_01
Java -aula_01
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Criando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APICriando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma API
 

Más de Odair Bonin Borges

TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuOdair Bonin Borges
 
DroneLab : a oficina de Drones
DroneLab : a oficina de DronesDroneLab : a oficina de Drones
DroneLab : a oficina de DronesOdair Bonin Borges
 
Realidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCRealidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCOdair Bonin Borges
 
Oficina Android - Games com AndEngine - Dia 3
Oficina Android - Games com AndEngine - Dia 3Oficina Android - Games com AndEngine - Dia 3
Oficina Android - Games com AndEngine - Dia 3Odair Bonin Borges
 
Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Odair Bonin Borges
 
Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1Odair Bonin Borges
 

Más de Odair Bonin Borges (7)

TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seu
 
DroneLab : a oficina de Drones
DroneLab : a oficina de DronesDroneLab : a oficina de Drones
DroneLab : a oficina de Drones
 
Oficina kinect
Oficina kinectOficina kinect
Oficina kinect
 
Realidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCRealidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESC
 
Oficina Android - Games com AndEngine - Dia 3
Oficina Android - Games com AndEngine - Dia 3Oficina Android - Games com AndEngine - Dia 3
Oficina Android - Games com AndEngine - Dia 3
 
Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2
 
Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1
 

Oficina Sesc Android - V1

  • 1. {
  • 2. Agenda O que é Android ? História do Android Outros Sistemas O limite é a imaginação
  • 3. O que é Android ? Android é um sistema operacional baseado em linux para dispositivos móveis. É desenvolvido pela Open Handset Alliance, liderado pelo Google
  • 4. História 6% 5% Surge o consórciotorna Handset Alliance, formado por Android se Open o Google acredita emprimeiros tablets com Android. 47 uma pequena empresa São lançados os empresas. líder em vendas pelo Notícias da BBC e WallStreet dizem que Google chamada é definir padrões para um sistema aberto, sem O objetivo Android mercado restrito de celulares. Inc., que tinha um projeto de está entrando no lançam modelos com android. Isto faz Outros fabricantes 59%. mundo, com o primeiro pagar licensas. criar um alcança a operacionalcelular celulares dia e AAndroid sistema marca de 700.000 ativações por o empresa fabricantes tenham quepara com Android: que os HTC lança 30% alcançar a marca de 43% dos celulares vendidos nos projeta uma marca de Dream de 250% ao ano. HTC aumento Google é o líder deste consórcio e oferece o Android 59% baseado em linux. Estados Unidos, com 362.000 ativações por dia. Começaram boatos de operacional. estava como sistema que Google fabricando um celular. Google comprou a empresa Android IOS Symbian Windows phone Fonte: http://en.wikipedia.org/wiki/Mobile_operating_system#Mobile_OS_comparison 2005 2007 2010 2012 2006 2008 2011
  • 6. O que é possível fazer com um smartphone ? Guardar arquivos via USB Acessar sites na internet Ouvir rádio Jogar video-game Tirar fotos usando flash Ler PDF e Documentos Gravar e reproduzir vídeos Receber e enviar mensagens SMS Calcular com calculadora científica Dirigir com GPS e mapas Reproduzir MP3 Fazer e receber ligações Gravar sons
  • 7. O Futuro é agora 1982 2012
  • 8. Os equipamentos são substituídos por aplicativos
  • 9. Para criar uma aplicação é Java necessário conhecer uma C C♯ linguagem de programação C++ Objective-C PHP Visual Basic Python 20 linguagens de programação mais populares Perl JavaScript Delphi Pascal Ruby Lisp Transact-SQL Pascal Visual Basic .NET PL/SQL Logo Ada Fonte: http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o R
  • 10.
  • 11. Sistemas operacionais e linguagens de programação. Qualquer uma das linguagens de programação requer estudo e dedicação.
  • 13. Ambiente de desevolvimento Todo o ambiente de desenvolvimento é open-source Eclipse: http://www.eclipse.org Android SDK: http://developer.android.com/sdk
  • 14. Activity Android possui alguns conceitos interessantes em sua arquitetura Activity Intent Service Content Provider Broadcast Receiver
  • 15. Activity Para testar os conceitos a seguir, vamos criar uma nova aplicação
  • 16. 1º Conceito: Activity XML <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> </RelativeLayout> Classe JAVA public class MainActivity extends Activity { Cada tela individual é @Override uma Activity. Usuários public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); conseguem executar setContentView(R.layout.activity_main); } ações interagindo através de @Override public boolean onCreateOptionsMenu(Menu menu) { componentes visuais getMenuInflater().inflate(R.menu.activity_main, menu); return true; em uma activity. } }
  • 17. princípios Background Ciclo de vida da activity onRestart() onCreate() onStart() onResume() onPause() onStop() onDestroy() Null
  • 18. Activity Precisamos atribuir identificadores para os componentes da tela Dicas: • Use padrões para nomear componentes • Use nomes simples • Adicione ao nome do componente o tipo (ex: “btProcessar”, nome para o botão processar)
  • 19. Activity Para facilitar a internacionalização da aplicação, é recomendado usar strings.xml Tela para ajudar a inserir uma nova string <resources> res/values/strings.xml <string name="app_name">Ajuste9Digitos</string> <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string> <string name="title_activity_tela1">Tela 1</string> <string name="botao">Processar</string> <string name="title_activity_tela2">Tela 2</string> <string name="clique">Clique no botao</string> <string name="ir_para_contatos">Ir para contatos</string> </resources>
  • 20. Activity Para adicionar funções ao botão, precisamos programar
  • 21. Activity Para adicionar funções ao botão, precisamos programar … ProgressDialog dialogo; Handler handler; … … Button botao =(Button)findViewById(R.id.btProcessar); …
  • 22. Activity Para adicionar funções ao botão, precisamos programar Button botao =(Button)findViewById(R.id.btProcessar); botao.setOnClickListener(this); Faça a Activity implementar o Listener do Click (OnClickListener) … Activity implements OnClickListener{ Você será obrigado a ter o método onClick @Override public void onClick(View arg0) { Toast.makeText(Tela1Activity.this, “Click”, 1000).show(); }
  • 23. Activity Forma errada de processar e executar métodos Simulando um processamento pesado private void processar(){ int contador = 1; while(contador < 150000){ Log.i("Tela1", "Estou no " + contador); contador++; } } Chame o método processar() no método onClick() http://queninguemle.blogspot.com.br/
  • 24. Activity Forma correta de processar e executar métodos private void processar(){ int contador = 0; while(contador < 100000){ contador++; Log.i("Tela1", "Estou no " + contador); } } Chame o método processar() em uma Thread Runnable contar = new Runnable(){ @Override public void run() { processar(); } }; Thread paralelo = new Thread(contar); paralelo.start(); dialogo = ProgressDialog.show(Tela1Activity.this, "Aguarde", "Processando");
  • 25. 2º Conceito: Intent Intent Intenção Intent é uma descrição abstrata de uma operação que será executada
  • 26. Intent Para navegar entre activities, precisamos informar a nossa intenção Intent AndroidManifest.xml
  • 27. 3º Content Provider Provedor de conteúdo Android permite armazenar informações de diversas maneiras. Banco de dados Arquivos de texto Preferencias de sistema Porém, geralmente as informações ficam salvas dentro do pacote da aplicação. Somente a aplicação pode acessar !
  • 28. 3º Content Provider Provedor de conteúdo O Conceito de “Content Provider” permite que essas informações sejam públicas Para utilizar o content provider, é necessário utilizar URI para identificar a informação Uniform Resource Identifier (Identificador Uniforme de Recursos) content://com.android.contacts/contacts/ ContactsContract.Contacts.CONTENT_URI content://com.android.contacts/contacts/1 content://media/external/images/media
  • 29. 3º Content Provider Provedor de conteúdo private void listarContatos(){ Uri contatos = ContactsContract.Contacts.CONTENT_URI; ContentResolver content = getContentResolver(); Cursor cursor = content.query(contatos, null, null, null, null); while(cursor.moveToNext()){ for(int i=0; i < cursor.getColumnCount(); i++){ String info = cursor.getColumnName(i) + " = " + cursor.getString(i); Log.i("Tela1",info); } } }
  • 30. Sua aplicação vive sozinha ? Comunicação Senão … Interação Informações Live Streaming
  • 31. Comunicação entre aplicações Webservices REST + JSON JavaScript Object Notation Chave Valor { “pergunta”:{ "numero_pergunta":"3", "pergunta":"Quantas vezes o Brasil foi campeao da copa ?", "3":"6 vezes (hexa)", "2":"5 vezes (penta)", "1":"4 vezes (tetra)" } }
  • 32. princípios Http Webservice JSON
  • 33. Conectando a apicação Para se conectar á redes sociais, é necessário conhecer a API Ex.: https://userstream.twitter.com/2/user.json https://api.foursquare.com/v2/users/1/friend
  • 40. Google android add-ins Para facilitar o desenvolvimento e promover idéias inovadoras, Google oferece um conjunto especial de APIs para Android
  • 41. Google android add-ins USB Open Accessory Google MAPs Google Cloud Messaging Google Play Google Analytics
  • 42. Google android add-ins Google Maps API fornece um poderoso ambiente para adicionar funcionalidades de mapas em sua aplicação Possui uma variedade de classes para renderizar mapas, além de diversas opções de visualizar e controlar mapas A classe principal é chamada de MapView, responsável por renderizar, reconhecer gestos para fazer zoom, e fazer requisições adicionais ao servidor de mapas
  • 43. Google android add-ins Para começar a usar, é necessário baixar o pacote Google APIs no SDK Manager do Android Plugin Google APIs
  • 44. Passos para ter sucesso com mapas Crie um emulador com suporte á Google APIs e GPS Crie um novo projeto (Android Application Project) Adicione as permissões no AndroidManifest.xml Arranque o Hello World da tela, e coloque no lugar um MapView Altere a classe para herdar de MapActivity, e não mais Activity Gere a chave GoogleMaps (não é tão de graça assim) Altere o XML, insira a chave que recebeu do Google Rode a aplicação e parta para o abraço !
  • 45. Passos para ter sucesso com mapas Criando o emulador Vamos criar um novo emulador, informando que utilizaremos a GoogleAPI. Android AVD Manager -> New -> GoogleAPIs (Google Inc.)
  • 46. Passos para ter sucesso com mapas Crie o novo projeto Vamos criar um novo projeto New -> Android Application Project
  • 47. Passos para ter sucesso com mapas Adicione permissões no AndroidManifest.xml Precisamos alterar o AndroidManifest.xml Tenha cuidado ao digitar em meio as tags. <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> Dentro de application <uses-library android:name="com.google.android.maps"/>
  • 48. Passos para ter sucesso com mapas Arranque o Hello World da tela (tela_mapa.xml) e insira o MapView <RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.google.android.maps.MapView android:id="@+id/mapa" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey="CHAVE_GOOGLE_MAPS" />
  • 49. Passos para ter sucesso com mapas Faça a Activity herdar de MapActivity … TelaMapaActivity extends MapActivity { . . . @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } }
  • 50. Passos para ter sucesso com mapas Rode a aplicação (para gerar o arquivo debug.keystore) Rode a aplicação agora, e receba um erro grátis ! java.io.IOException: Server returned: 3
  • 51. Passos para ter sucesso com mapas Gere a chave GoogleMaps (não é tão de graça assim) Precisamos gerar a chave para utilizar o mapa Windows Vista: C:Users<user>.androiddebug.keystore Windows XP: C:Documents and Settings<user>.androiddebug.keystore Linux: ˜/.android/debug.keystore Linux: no terminal cd .android
  • 52. Passos para ter sucesso com mapas Gere a chave GoogleMaps (não é tão de graça assim) No terminal, digite: keytool –list –keystore debug.keystore Insira a senha: android Your keystore contains 1 entry androiddebugkey, Jul 17, 2012, PrivateKeyEntry, Certificate fingerprint (MD5): 51:15:A4:15:DB:23:9E:C6:E2:77:04:3B:37:CA:53:70
  • 53. Passos para ter sucesso com mapas Gere a chave GoogleMaps (não é tão de graça assim) https://developers.google.com/android/maps-api-signup
  • 55. Passos para ter sucesso com mapas Rode a aplicação novamente
  • 56. Passos para ter sucesso com mapas Crie um emulador com suporte á Google APIs e GPS Crie um novo projeto (Android Application Project) Adicione as permissões no AndroidManifest.xml Arranque o Hello World da tela, e coloque no lugar um MapView Altere a classe para herdar de MapActivity, e não mais Activity Gere a chave GoogleMaps (não é tão de graça assim) Altere o XML, insira a chave que recebeu do Google Rode a aplicação e parta para o abraço !
  • 57. Controlando o mapa É possível controlar o mapa através de programação … extends MapActivity { MapView mapa; MapController controlador; GeoPoint ponto; … setContentView(R.layout.tela_mapa); mapa = (MapView) findViewById(R.id.mapa); mapa.setSatellite(true); mapa.setBuiltInZoomControls(true); controlador = mapa.getController(); controlador.setZoom(17);
  • 58. Controlando o mapa É possível controlar o mapa através de programação controlador.setZoom(17); final MyLocationOverlay meuponto = new MyLocationOverlay(this, mapa); meuponto.enableCompass(); meuponto.enableMyLocation(); mapa.getOverlays().add(meuponto); meuponto.runOnFirstFix(new Runnable(){ @Override public void run() { ponto = meuponto.getMyLocation(); controlador.animateTo(ponto); } });
  • 59. Testando a minha localização Para enviar o sinal do GPS, utilize o Emulator Control Longitude -46,547225 Latitude -23,6539964
  • 60. Movimentando o mapa É necessário um Listener para que o mapa seja atualizado …extends MapActivity implements LocationListener{ Você será a obrigado a ter alguns métodos GeoPoint ponto; LocationManager gerenciador; ... controlador.animateTo(ponto); } }); gerenciador = (LocationManager)getSystemService(LOCATION_SERVICE); gerenciador.requestLocationUpdates(LocationManager.GPS_PROVIDER , 1000, 1, this);
  • 61. Movimentando o mapa Basta atualizar o ponto, e centralizar no ponto encontrado ! GeoPoint mede latitude e longitude em micrograus, e o GPS retorna em graus. Por isso, tem que converter ! @Override public void onLocationChanged(Location location) { Toast.makeText(this, “Ponto encontrado", Toast.LENGTH_LONG).show(); ponto = new GeoPoint( (int) (location.getLatitude() * 1E6), (int) (location.getLongitude()* 1E6) ); controlador.animateTo(ponto); }
  • 62. Adicionando pontos no mapa Precisamos customizar um ponto para adicionar no mapa. class MeuMarcador extends ItemizedOverlay{ ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); public MeuMarcador(Drawable defaultMarker){ super(boundCenterBottom(defaultMarker)); populate(); } public void adicionarPonto(OverlayItem ponto){ items.add(ponto); populate(); } … } }
  • 63. Adicionando pontos no mapa Precisamos customizar um ponto para adicionar no mapa. . . . createItem => return items.get(i); size => return items.size(); @Override protected boolean onTap(int index) { OverlayItem item = items.get(index); Toast.makeText(TelaMapaActivity.this, item.getSnippet(), Toast.LENGTH_LONG).show(); return super.onTap(index); }
  • 64. Adicionando pontos no mapa Precisamos customizar um ponto para adicionar no mapa. LocationManager gerenciadorLocal; MeuMarcador marcadores; onLocationChanged ( . . . ) { . . . controlador.animateTo(ponto); OverlayItem item = new OverlayItem(ponto, "Ponto", location.toString()); marcadores.adicionarPonto(item); mapa.getOverlays().add(marcadores);
  • 65. Aplausos para a nossa primeira aplicação !
  • 66. Como são compiladas as apps. ? imagens .java .class .dex arquivos .apk Instalamos a aplicação .apk nos dispositivos
  • 67. odair.bonin@gmail.com { Obrigado pela presença