Introdução de programação ao
               Android


●   Apresentação por : Pedro Veloso
●   Email(s) : pedro.n.veloso@gmail.com
●            pedronveloso@androidpt.com
●   G+: http://goo.gl/yS2sE
Temas abordados
●   Fundamentos do sistema operativo Android
●   Componentes de uma aplicação
●   O AndroidManifest.xml
●   Mecanismo de recursos da aplicação
Fundamentos do sistema
              operativo
               Android
●   VM e Kernel
●   Separação lógica entre processos
VM e Kernel
●   Corre em cima de um Kernel de GNU/Linux
    modificado
●   Dalvik é a máquina virtual de Java usada para
    correr aplicações Android
Separação lógica entre processos
●   Android implementa o princípio de menor
    privilégio
●   Para obter uma permissão, esta tem de estar
    explicita no Manifest da aplicação, ou é
    produzido um Force Close em tempo de
    execução
●   É possível implementar o conceito de espaço
    de memória partilhado, mas para tal é
    necessário usar o mesmo certificado ao
    assinar um APK*
    * APK: Android Package
Componentes de uma aplicação
●   Application
●   Activity
●   Service
●   Content Provider
●   Broadcast Receiver
Application
●   Application é estendida por apenas uma
    sub-classe na aplicação
●   Serve para abstrair funcionalidades que
    necessitam de um contexto sempre ativo,
    mesmo quando o utilizador navega entre
    diferentes ecrãs
●   Trata de lógica da aplicação, não deve ser
    usado para elementos visuais
●   De uso específico a determinadas situações, e
    de uso opcional
Activity
●   Uma Activity é um ecrã onde o utilizador pode
    interagir de alguma forma, o análogo a uma
    Janela num computador (também chamado de
    Form noutras linguagens/sistemas)
Activity Lifecycle
Activity - Exemplo
public class MinhaActivity extends Activity {

 private static final String MSG_TOPO = "msgTopo";

  @Override
  void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.minha_activity);
    ...
                                                         @Override
  }
                                                         public void onSaveInstanceState(Bundle savedInstanceState) {
                                                           // Guardar algumas configurações antes de sair
  @Override                                                savedInstanceState.putString(MSG_TOPO, "Bem vindo de
  protected void onPause() {                                  volta.");
    musica.pausar();                                       super.onSaveInstanceState(savedInstanceState);
  }                                                      }

                                                         @Override
                                                         public void onRestoreInstanceState(Bundle savedInstanceState) {
                                                         //resgatar as configs ao reiniciar a app
                                                           super.onRestoreInstanceState(savedInstanceState);
                                                           String minhaString = savedInstanceState.getString(MSG_TOPO);
                                                         }

                                                     }
Service
●   Corre em plano de fundo (background).
    Utilizado frequentemente em conjunção com
    Activity
●   Não possui interface de utilizador
●   Tal como a Activity possui métodos úteis de
    callback tais como onStart, onBind, onStop,
    etc..
●
Content Provider
●   Usado para partilhar informação com outras
    aplicações
●   Abstrai a forma de como a informação é
    processada, guardada e obtida
Broadcast Receiver
●   Uma componente que reage a um evento de
    sistema
●   Não requer que a aplicação esteja a ser
    executada
●   Cada broadcast de sistema é um Intent de
    Android
O AndroidManifest.xml
●   Peça fundamental de uma aplicação Android
       –   Define que dispositivos são compatíveis com a
            aplicação
       –   Define quais as componentes de uma aplicação
       –   Define as permissões da aplicação
AndroidManifest - Exemplo
   <?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.pedronveloso.projtest"
      android:versionCode="1"
      android:versionName="1.0">
     <uses-sdk android:minSdkVersion="4" />


     <application android:icon="@drawable/icon"
     android:label="@string/app_name">
       <activity android:name=".MainActivity"
             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>


Mais informação em : http://developer.android.com/guide/topics/manifest/manifest-intro.html

Introdução a programação em Android

  • 1.
    Introdução de programaçãoao Android ● Apresentação por : Pedro Veloso ● Email(s) : pedro.n.veloso@gmail.com ● pedronveloso@androidpt.com ● G+: http://goo.gl/yS2sE
  • 2.
    Temas abordados ● Fundamentos do sistema operativo Android ● Componentes de uma aplicação ● O AndroidManifest.xml ● Mecanismo de recursos da aplicação
  • 3.
    Fundamentos do sistema operativo Android ● VM e Kernel ● Separação lógica entre processos
  • 4.
    VM e Kernel ● Corre em cima de um Kernel de GNU/Linux modificado ● Dalvik é a máquina virtual de Java usada para correr aplicações Android
  • 5.
    Separação lógica entreprocessos ● Android implementa o princípio de menor privilégio ● Para obter uma permissão, esta tem de estar explicita no Manifest da aplicação, ou é produzido um Force Close em tempo de execução ● É possível implementar o conceito de espaço de memória partilhado, mas para tal é necessário usar o mesmo certificado ao assinar um APK* * APK: Android Package
  • 6.
    Componentes de umaaplicação ● Application ● Activity ● Service ● Content Provider ● Broadcast Receiver
  • 7.
    Application ● Application é estendida por apenas uma sub-classe na aplicação ● Serve para abstrair funcionalidades que necessitam de um contexto sempre ativo, mesmo quando o utilizador navega entre diferentes ecrãs ● Trata de lógica da aplicação, não deve ser usado para elementos visuais ● De uso específico a determinadas situações, e de uso opcional
  • 8.
    Activity ● Uma Activity é um ecrã onde o utilizador pode interagir de alguma forma, o análogo a uma Janela num computador (também chamado de Form noutras linguagens/sistemas)
  • 9.
  • 10.
    Activity - Exemplo publicclass MinhaActivity extends Activity { private static final String MSG_TOPO = "msgTopo"; @Override void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.minha_activity); ... @Override } public void onSaveInstanceState(Bundle savedInstanceState) { // Guardar algumas configurações antes de sair @Override savedInstanceState.putString(MSG_TOPO, "Bem vindo de protected void onPause() { volta."); musica.pausar(); super.onSaveInstanceState(savedInstanceState); } } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { //resgatar as configs ao reiniciar a app super.onRestoreInstanceState(savedInstanceState); String minhaString = savedInstanceState.getString(MSG_TOPO); } }
  • 11.
    Service ● Corre em plano de fundo (background). Utilizado frequentemente em conjunção com Activity ● Não possui interface de utilizador ● Tal como a Activity possui métodos úteis de callback tais como onStart, onBind, onStop, etc.. ●
  • 12.
    Content Provider ● Usado para partilhar informação com outras aplicações ● Abstrai a forma de como a informação é processada, guardada e obtida
  • 13.
    Broadcast Receiver ● Uma componente que reage a um evento de sistema ● Não requer que a aplicação esteja a ser executada ● Cada broadcast de sistema é um Intent de Android
  • 14.
    O AndroidManifest.xml ● Peça fundamental de uma aplicação Android – Define que dispositivos são compatíveis com a aplicação – Define quais as componentes de uma aplicação – Define as permissões da aplicação
  • 15.
    AndroidManifest - Exemplo <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pedronveloso.projtest" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="4" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" 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> Mais informação em : http://developer.android.com/guide/topics/manifest/manifest-intro.html