MINICURSO DE DESENVOLVIMENTO DE
        APLICAÇÕES PARA
      A PLATAFORMA Google
Apresentação
Ministrante: Ronildo Oliveira da Silva
• Cursando o sétimo semestre do curso Integrado
  Informática IFCE Campus Cedro.
• Monitor de Programação Estruturada no IFCE Campus
  Cedro.
• Programador de aplicações móveis.
Apresentação
Orientador: Derig Almeida Vidal
• Mestre em Computação Aplicada a Redes de
  Computadores, Engenheiro de Produção e Tecnólogo
  em Automática.
• Professor e coordenador do Curso Integrado em
  Informática do IFCE Campus Cedro.
O Que é Android?

• O Android possui: Aplicações, Bibliotecas,
  Frameworks, rica interface de Usuário (UI) e muito
  mais.
• O Android é um ambiente de desenvolvimento de
  software para dispositivos móveis.
• Utiliza-se a linguagem de
  programação Java para desenvolver
  aplicações para a plataforma.
O Que é Android?
     Andrew E. Rubin
• Vice-presidente de mobilidade
do Google.
• Diretor Executivo (CEO) da
Android e da Danger (Companhia
de design de hardware).
O Que é Android?
• Open Handset Alliance™(OHA) é um grupo
  formado por gigantes do mercado de telefonia de
  celulares liderados pelo Google que revelou a
  plataforma Open Source Android e uma versão da
  SDK em 12 de novembro de 2007.
T-Mobile G1
Open Handset Alliance™
Versões do Android
Versões do Android
As diferentes versões de Android têm desde a
versão 1.5, nomes de sobremesas ou bolos (em
inglês) e seguem uma lógica alfabética:
  1.5: Cupcake (Abril de 2009)
  1.6: Donut (Setembro de 2009)
  2.1: Eclair (Janeiro de 2010)
  2.2: FroYo (Frozen Yogourt - Maio de 2010)
  2.3-2.4: Gingerbread (Dezembro de 2010)
  3.0-3.2: Honeycomb (Janeiro de 2011)
  4.0: Ice Cream Sandwich (Outubro de 2011)
  4.1: Jelly Bean (Junho de 2012)
Estrutura da Aplicação Android
•   Arquitetura do Android
•   Linux Kernel
•   Bibliotecas
•   Aplicações
•   Android Runtime
•   Dalvik VM
Arquitetura da Plataforma Android
                                 APLICATIONS
    Home           Contacts         Phone         Browser                ...

                            APLICATION FRAMEWORK
  Activity         Window           Content                         Notification
                                               View System
  Manager          Manager         Providers                         Manager
  Package         Telephony         Resource     Location
                                                                   XMPP Service
  Manager          Manager          Manager      Manager

                  LIBRARIES                            ANDROID RUNTIME
  Surface           Media
                                    SQLite                  Core Libraries
  Manager         Framework
                                                            Dalvik Virtual
 Open GL/S         FreeType         WebKit
                                                              Machine
     SGL              SSL             libc

                                 LINUX KERNEL
                                   Bluetooth    Flash Memory         Binder (PC)
Display Driver   Camera Driver
                                     Driver         Driver             Driver
                                                                       Power
 Usb Driver      Keypad Driver    WiFi Driver   Audio Drivers
                                                                    Management
Linux Kernel
• O Android foi construído sobre uma versão do
  kernel do Linux.

• Isso permite que a plataforma
  Android tenha alta portabilidade.

• Por ser de código aberto, permite
  que talentos individuais e
  companhias melhorem-no ainda mais.
Bibliotecas
A próxima camada acima do kernel contém as
bibliotecas nativas do Android.

Essas bibliotecas são todas
escritos em C ou C++ e
compiladas para a arquitetura
de hardware específica
utilizada pelo telefone.
Bibliotecas
      Algumas das mais importantes bibliotecas
nativas incluem o seguinte:

•   Surface Manager;
•   Gráficos 2D e 3D (SGL);
•   Codecs de mídia (Media Framework);
•   Banco de dados SQL (SQLite);
•   Browser engine (Webkit);
•   FreeType.
Android Runtime



• Core libraries;
• Dalvik Virtual Machine.
Dalvik VM
• Ao invés de usar uma versão da máquina virtual
  Java, tal como Java ME, ele usa a sua própria
  máquina virtual.

• A máquina virtual Dalvik possui as
  seguintes características:
  – Poder existir múltiplas instâncias da
     máquina virtual simultaneamente;
  – Baixo consumo de memória;
  – Mais eficiente do que uma máquina virtual Java.
Dalvik VM
 Código JAVA
 Compilador
   JAVA

JAVA Byte Code
 Compilador
    DEX

  Dalvik Byte
     Code


    Dalvik
                 APK
  Executable
Aplicações
O Android nos fornece um conjunto de
aplicações fundamentais, são elas:
•   um cliente de e-mail;
•   programa de SMS;
•   agenda;
•   mapas;
•   navegador;
•   contatos entre outros.
Instalação e Configuração do Eclipse
            e do Android
Conceitos básicos
•   Activity
•   R.java
•   Método findViewById
•   Manifest
•   Layout
Activity
• A classe android.app.Activity representa
  basicamente uma tela da aplicação.

• Uma tela (Activity) é
  composta de vários
  elementos visuais, os
  quais no Android são
  representados pela
  classe android.view.View
Activity
package ifce.android.minicurso;

import android.app.Activity;
import android.os.Bundle;

public class MinicursoActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
Activity




                                                                                                                   Ciclo de vida de uma Activity
                                                  onCreate()


A Activity é reaberta através do usuário
                                                   onStart()                                     onRestart()


        O processo é destruído
                                                 onResume()

                                                                       A Activity perde o foco
     O programa precisa de mais
                                               Activity Iniciada
             memória


                                           Outra Activity é Iniciada                     A Activity perde o foco


                                                  onPause()


                                   A Activity principal não é mais visível



                                                   onStop()



                                                 onDestroy()


                                      A Activity principal é destruída
Classe R
• É uma classe que possui métodos estáticos com as
  referências de todos os recursos do projeto.

• A classe R é gerada automaticamente pelo plugin
  ADT do eclipse e NUNCA deve ser alterada
  manualmente.
Classe R
package ifce.android.minicurso;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    } }
Método findViewById
    Activity Principal (Activity.java)      View Principal (main.xml)
Button meuBotao01 = (Button)              <LinearLayout>
findViewById(R.id.button1);               <Button
                                          android:id="@+id/button1"
@Override                                 android:layout_width="100dp"
public void onCreate(Bundle               android:layout_height="wrap_co
savedInstanceState)                       ntent"
                                          android:text="@string/telaInic
{
                                          ialBotao" /> </LinearLayout>
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
                                                 Arquivo R.java
}                                        public static final class id {
                                         public static final int
                                         button1 =0x7f050002; }
Android Manifest
• O arquivo AndroidManifest.xml é o alicerce de uma aplicação
  Android.
• Este arquivo deve estar na raiz da aplicação.
• Este arquivo serve para:
   – Descrever o contexto da aplicação;
   – Activities, Services, Content Providers e
      Broadcast Receivers suportados pela aplicação;
   – Permissões necessárias para a aplicação utilizar
      os recursos de hardware e software;
   – Entre outras funções.
Android Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ifce.android.minicurso"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk android:minSdkVersion="7" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".MinicursoActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application> </manifest>
Layout
Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

</LinearLayout>
Mãos à obra!
Hello World!!
Widgets
Projeto Final
Referências Bibliográficas

Minicurso Android Ronildo Oliveira

  • 1.
    MINICURSO DE DESENVOLVIMENTODE APLICAÇÕES PARA A PLATAFORMA Google
  • 2.
    Apresentação Ministrante: Ronildo Oliveirada Silva • Cursando o sétimo semestre do curso Integrado Informática IFCE Campus Cedro. • Monitor de Programação Estruturada no IFCE Campus Cedro. • Programador de aplicações móveis.
  • 3.
    Apresentação Orientador: Derig AlmeidaVidal • Mestre em Computação Aplicada a Redes de Computadores, Engenheiro de Produção e Tecnólogo em Automática. • Professor e coordenador do Curso Integrado em Informática do IFCE Campus Cedro.
  • 4.
    O Que éAndroid? • O Android possui: Aplicações, Bibliotecas, Frameworks, rica interface de Usuário (UI) e muito mais. • O Android é um ambiente de desenvolvimento de software para dispositivos móveis. • Utiliza-se a linguagem de programação Java para desenvolver aplicações para a plataforma.
  • 5.
    O Que éAndroid? Andrew E. Rubin • Vice-presidente de mobilidade do Google. • Diretor Executivo (CEO) da Android e da Danger (Companhia de design de hardware).
  • 6.
    O Que éAndroid? • Open Handset Alliance™(OHA) é um grupo formado por gigantes do mercado de telefonia de celulares liderados pelo Google que revelou a plataforma Open Source Android e uma versão da SDK em 12 de novembro de 2007.
  • 7.
  • 8.
  • 9.
  • 10.
    Versões do Android Asdiferentes versões de Android têm desde a versão 1.5, nomes de sobremesas ou bolos (em inglês) e seguem uma lógica alfabética: 1.5: Cupcake (Abril de 2009) 1.6: Donut (Setembro de 2009) 2.1: Eclair (Janeiro de 2010) 2.2: FroYo (Frozen Yogourt - Maio de 2010) 2.3-2.4: Gingerbread (Dezembro de 2010) 3.0-3.2: Honeycomb (Janeiro de 2011) 4.0: Ice Cream Sandwich (Outubro de 2011) 4.1: Jelly Bean (Junho de 2012)
  • 11.
    Estrutura da AplicaçãoAndroid • Arquitetura do Android • Linux Kernel • Bibliotecas • Aplicações • Android Runtime • Dalvik VM
  • 12.
    Arquitetura da PlataformaAndroid APLICATIONS Home Contacts Phone Browser ... APLICATION FRAMEWORK Activity Window Content Notification View System Manager Manager Providers Manager Package Telephony Resource Location XMPP Service Manager Manager Manager Manager LIBRARIES ANDROID RUNTIME Surface Media SQLite Core Libraries Manager Framework Dalvik Virtual Open GL/S FreeType WebKit Machine SGL SSL libc LINUX KERNEL Bluetooth Flash Memory Binder (PC) Display Driver Camera Driver Driver Driver Driver Power Usb Driver Keypad Driver WiFi Driver Audio Drivers Management
  • 13.
    Linux Kernel • OAndroid foi construído sobre uma versão do kernel do Linux. • Isso permite que a plataforma Android tenha alta portabilidade. • Por ser de código aberto, permite que talentos individuais e companhias melhorem-no ainda mais.
  • 14.
    Bibliotecas A próxima camadaacima do kernel contém as bibliotecas nativas do Android. Essas bibliotecas são todas escritos em C ou C++ e compiladas para a arquitetura de hardware específica utilizada pelo telefone.
  • 15.
    Bibliotecas Algumas das mais importantes bibliotecas nativas incluem o seguinte: • Surface Manager; • Gráficos 2D e 3D (SGL); • Codecs de mídia (Media Framework); • Banco de dados SQL (SQLite); • Browser engine (Webkit); • FreeType.
  • 16.
    Android Runtime • Corelibraries; • Dalvik Virtual Machine.
  • 17.
    Dalvik VM • Aoinvés de usar uma versão da máquina virtual Java, tal como Java ME, ele usa a sua própria máquina virtual. • A máquina virtual Dalvik possui as seguintes características: – Poder existir múltiplas instâncias da máquina virtual simultaneamente; – Baixo consumo de memória; – Mais eficiente do que uma máquina virtual Java.
  • 18.
    Dalvik VM CódigoJAVA Compilador JAVA JAVA Byte Code Compilador DEX Dalvik Byte Code Dalvik APK Executable
  • 19.
    Aplicações O Android nosfornece um conjunto de aplicações fundamentais, são elas: • um cliente de e-mail; • programa de SMS; • agenda; • mapas; • navegador; • contatos entre outros.
  • 20.
    Instalação e Configuraçãodo Eclipse e do Android
  • 21.
    Conceitos básicos • Activity • R.java • Método findViewById • Manifest • Layout
  • 22.
    Activity • A classeandroid.app.Activity representa basicamente uma tela da aplicação. • Uma tela (Activity) é composta de vários elementos visuais, os quais no Android são representados pela classe android.view.View
  • 23.
    Activity package ifce.android.minicurso; import android.app.Activity; importandroid.os.Bundle; public class MinicursoActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
  • 24.
    Activity Ciclo de vida de uma Activity onCreate() A Activity é reaberta através do usuário onStart() onRestart() O processo é destruído onResume() A Activity perde o foco O programa precisa de mais Activity Iniciada memória Outra Activity é Iniciada A Activity perde o foco onPause() A Activity principal não é mais visível onStop() onDestroy() A Activity principal é destruída
  • 25.
    Classe R • Éuma classe que possui métodos estáticos com as referências de todos os recursos do projeto. • A classe R é gerada automaticamente pelo plugin ADT do eclipse e NUNCA deve ser alterada manualmente.
  • 26.
    Classe R package ifce.android.minicurso; publicfinal class R { public static final class attr { } public static final class drawable { public static final int ic_launcher=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; } }
  • 27.
    Método findViewById Activity Principal (Activity.java) View Principal (main.xml) Button meuBotao01 = (Button) <LinearLayout> findViewById(R.id.button1); <Button android:id="@+id/button1" @Override android:layout_width="100dp" public void onCreate(Bundle android:layout_height="wrap_co savedInstanceState) ntent" android:text="@string/telaInic { ialBotao" /> </LinearLayout> super.onCreate(savedInstanceState); setContentView(R.layout.main); Arquivo R.java } public static final class id { public static final int button1 =0x7f050002; }
  • 28.
    Android Manifest • Oarquivo AndroidManifest.xml é o alicerce de uma aplicação Android. • Este arquivo deve estar na raiz da aplicação. • Este arquivo serve para: – Descrever o contexto da aplicação; – Activities, Services, Content Providers e Broadcast Receivers suportados pela aplicação; – Permissões necessárias para a aplicação utilizar os recursos de hardware e software; – Entre outras funções.
  • 29.
    Android Manifest <?xml version="1.0"encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ifce.android.minicurso" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".MinicursoActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
  • 30.
  • 31.
    Layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.