IT Mídia
Notícias em destaque

Aprenda os cinco elementos do desenvolvimento Android

9 de novembro de 2011 17:58

Duas plataformas de desenvolvimento mobile dominaram completamente o mercado. Android e iPhone simplesmente derrubaram empresas tradicionais que mantinham liderança durante anos em seus segmentos. Estou falando da Nokia e da RIM (Research in Motion). Sendo que, o Android está um pouco a frente do iPhone em market share.

Neste pequeno artigo vou propor um desafio: ensinar o básico de Android em cinco conceitos que acredito serem os pilares do desenvolvimento para esta plataforma. São eles: Activity, Intent, Broadcast Receiver, Content Provider e Service.

Uma Activity pode ser entendida basicamente como uma tela da aplicação. Por exemplo, se tivermos que implementar um software com uma tela de login, uma tela de home que lista os últimos tweets e uma tela de sobre, teremos três Activity´s.

Uma Activity deve ser declarada no AndroidManifest.xml. Neste ponto temos uma consideração importante. Quando uma tela será a mesma onde o aplicativo será iniciado, a Acitivy deverá ser marcada com uma action android.intent.action.MAIN. Geralmente, esta mesma tela será chamada pelo ícone que estará visível para o usuário na listagem de aplicativos instalados, sendo assim, também devemos informar a category LAUNCHER. Veja o exemplo abaixo:

 

<activity android:name=”.MapaGPS” android:label=”@string/app_name”>

    <intent-filter>

         <action android:name=”android.intent.action.MAIN” />

         <category android:name=”android.intent.category.LAUNCHER” />

    </intent-filter>

</activity>


Existem várias classes que são filhas de Activity na API do Android. Como por exemplo a MapActivity que é especialista na tarefa de mostrar instâncias de MapView. Temos ainda a ListActvitiy, um componente gráfico já preparado para uma extensa lista de itens, contendo um scroll e todos os métodos necessário para recuperação dos elementos inseridos na lista.

 Já uma Intent pode ser resumida como a intenção de fazer algo comunicada ao próprio sistema operacional do Android. Ele próprio interpreta o que o aplicativo deseja fazer e toma as providências necessárias para atender ao pedido. Por exemplo, digamos que o objetivo seja criar um aplicativo que captura uma imagem da câmera e armazena a mesma em um álbum próprio de fotos. Bem, o primeiro passo certamente seria abrir a visualização da câmera ao usuário. Este passo é feito com uma intenção:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivity(intent);

Mais alguns exemplos de intenções e suas codificações no Android:

 

* Chamar browser:

Uri uri = new Uri(“http://www.mobilidadetudo.com”);

Intent intent = new Intent(Intent.ACTION_VIEW, uri); 

 

 * Efetuar uma ligação:

Uri uri = new Uri.parse(“tel:99999999”);

Intent intent = new Intent(Intent.ACTION_CALL, uri);

 

* Mostrar todos os contatos da agenda:

Uri uri = new Uri.parse(“content://com.android.contacts/contacts/”);

Intent intent = new Intent(Intent.ACTION_PICK, uri); 

 

Um BroadcastReceiver atua como um interceptador de mensagens enviadas pelo sistemas operacional na forma de broadcast. Nada como um bom exemplo para elucidar uma frase um pouco complicada: Seu aplicativo deverá iniciar assim que qualquer ligação seja finalizada, ou ainda, quando um SMS chegar oriundo de um número específico. As duas situações se tornem possíveis com o uso do BroadcastReceiver.


public class SMSReceiver extends BroadcastReceiver {

    public void onReceive(final Context context, Intent intent) {

        Bundle bundle = intent.getExtras();        

        SmsMessage[] msgs = null;

        String str = “”;            

        if (bundle != null)

        {

            Object[] pdus = (Object[]) bundle.get(“pdus”);

            msgs = new SmsMessage[pdus.length];            

            for (int i=0; i<msgs.length; i++){

                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                

               

if (msgs[i].getOriginatingAddress().toString.equals(“99999999”){

    //SMS de um número específico chegou, inicie sua aplicação.

}

            }

        } 

   }

}


A classe Service nos permite criar um serviço que rodará em background. Por exemplo, ao criar um aplicativo de player de música, ou streaming de rádio, o usuário quer iniciar a mídia e sair do aplicativo, fazendo outras tarefas no smartphone enquanto acompanha sua música/rádio favorita. Neste caso, não podemos prendê-lo a uma Activity, mas sim, fazer com que o serviço esteja sendo executado mas sem tomar a atenção visual do usuário.

E por fim, mas não menos importante, temos o ContentProvider. O fornecedor de conteúdo (tradução literal) serve para compartilhar dados da nossa aplicação para o universo do sistema operacional Android. Para recuperar os dados de contatos, por exemplo, acessamos o ContentProvider que a agenda do smartphone possui.

Bem, acredito fielmente que ao aprender o conceito destes cinco pontos descritos aqui, o desenvolver já estará com os dois pés no mundo Android. Para se tornar um profissional completo, basta aprofundar cada um dos temas.

Boa sorte e bem vindo ao mundo Android.

  • http://www.cowpowpit.wordpress.com Mr.GamerDev

    Artigo interessante.

    Por acaso você vai publicar artigos explicando mais a fundo cada um destes elementos?
    Inclusive com exemplos práticos?

    Estamos no aguardo.

    Abs^^

  • http://www.cowpowpit.wordpress.com Mr.GamerDev

    Artigo interessante.

    Por acaso você vai publicar artigos explicando mais a fundo cada um destes elementos?
    Inclusive com exemplos práticos?

    Estamos no aguardo.

    Abs^^

    • Ricardo Ogliari

      Se tiver tempo vou publicar sim.

      Valeww

Sobre Ricardo Ogliari

Graduado em Ciência da Computação, pós-graduando em Web e analista de sistemas mobile na MobMidia | Grupo Pontomobi, Ricardo Ogliari é autor de dezenas de artigos que foram publicados em anais de congressos nacionais e internacionais, sites especializados e revistas. Palestrante em eventos nacionais e internacionais, como JustJava, Java Day, GeoLivre, ExpoGPS, FISL e FITE, sempre aborda temas relacionados a computação móvel. Neste espaço, discutirá sobre tecnologias, plataformas, mercado, ideias e linguagens presentes no mundo da mobilidade.

Entre em contato com Ricardo Ogliari

Parceiros

Portais: IT Mídia | IT Web | Saúde Web

Publicações: InformationWeek Brasil | CRN Brasil | FH

Fóruns: IT Forum | IT Forum + | IT Business Forum | Saúde Business Forum