terça-feira, 28 de agosto de 2012

Entendendo os conceitos de Activity e Intent no Android


O que são Activities?

Uma activity é uma classe que implementa os métodos necessários para se construir uma tela em Android. Para os desenvolvedores Delphi, C#, seria equivalente a um Form. Para os desenvolvedores Java, seria algo parecido com um JFrame.

Toda aplicação Android possui necessariamente uma activity e esta pode chamar outras activities.

O ciclo de vida de uma Activity é representada na figura a seguir:

Existe um evento que pode ser utilizado para cada fase da vida de uma activity.

onCreate: é executada quando a activity é criada. Normalmente utilizado para inicializar os objetos, variaveis que serão utilizadas pela sua aplicação nesta Activity;

onStart: é executada antes da activity ficar visivel na tela do dispositivo;

onResume: é chamada logo após o evento onStart e neste momento a activity esta rodando e pronta para interagir com o usuario;

onPause: é chamada quando uma outra activity (da sua aplicação ou não) entrou no evento onResume.
A activity em onPause perde o foco e, logo mais ela será "congelada", para que consuma menos bateria e processamento;

onStop: chamada quando a activity ja não esta mais visivel ou quando a activity é encerrada;

onDestroy: é o momento onde a activity da seu "ultimo suspiro". Pode ser utilizada para finalizar a conexão com bancos de dados, fechar arquivos, liberar os recursos como camera, outros aplicativos, etc.
Após este evento a activity sera destruida e liberada da memoria.
O que são as Intents?

Como o próprio nome diz, Intent é a intenção que o programa tem. São os "nomes" ao qual cada aplicação do sistema responde.
Se a intenção da aplicação é abrir a tela de contatos, o sistema operacional responderá abrindo os contatos.
Segue um exemplo:

Uri contatos = Uri.parse("content://com.android.contacts/contacts");
Intent intentContatos = new Intent(Intent.ACTION_PICK, contatos);
startActivityForResult(intentContatos, 1);


Se sua aplicação chamar uma intent e, para esta houver mais de uma aplicação ligada a ela, como dois navegadores (Firefox e Chrome por exemplo), o sistema operacional mostrará ao usuário uma caixa de seleção, para que o proprio usuário escolha qual das aplicações tratará a execução da intent.


Em futuros posts, colocaremos na prática estes conceitos.

Até a próxima!

terça-feira, 21 de agosto de 2012

Iniciando no MotoDev

Iniciando esta trajetória de apresentar o novo (nem tão novo assim) mundo do Android, vamos desbravar um dos ambientes de desenvolvimento. Não é esperado aqui tomar lugar de tutoriais sobre o ambiente que será apresentado, estamos mais para passar a experiência de quem está simplesmente iniciando o desenvolvimento assim como qualquer outra pessoa.

Como um início será apenas apresentada a instalação até a execução do primeiro aplicativo para Android, aplicativo esse que já vem pronto ao iniciar um novo projeto.

O ambiente é o MotoDev Studio for Android. Ambiente este disponível gratuitamente em várias versões pelo site da própria Motorola.

Link: http://developer.motorola.com/tools/motodevstudio/download/
OBS.: Só um comentário, é necessário Login e Senha para baixar, mas também fácil de ser feito no próprio link acima.

Baixei a minha versão (tenho um PC x64) e vamos a primeira tela:

Nada que não nos lembre de outras telas básicas de instalação.
Bem, só para constar a versão que baixei era a última disponível no site. "MOTODEV Studio for Android 4.1.0".

Pelo pouco conhecimento que tenho é considerada uma versão estável, mas como uma pessoa em sua primeira viagem neste mundo, não posso colocar minha opinião própria nisso.

Seguindo a instalação nos deparamos com a tela de Termos de Licença. Também nada de novo em termos de instalação.
Por enquanto nada a ser explicado, a tela por si só já tem a explicação.

Agora começamos a mudar um pouco. Normalmente estamos acostumados a configurações de instalação padrão no diretório "X:\Program Files\" (considerando como sistema operacional Windows) mas no caso do MotoDev, sendo um ambiente de desenvolvimento para Linux (lembrando que o Android tem a plataforma Linux) estas configurações padrões não são as mesmas.
Claro, pode-se mudar o diretório para aquele que convenha a cada um, mas já pode ser considerado uma diferença para quem não é familiar a este ambiente.

A Instalação agora entra na parte de escolhas.



Escolher ambiente, o que instalar e outros detalhes. Na verdade não existe muito o que escolher, como foi baixado o MOTODEV Studio for Android então já vem selecionado e é apresentado espaço necessário para instalação.

Neste momento é apresentada a última tela de escolha na instalação. Como a instalação é para Windows então temos o menu que será criado para o ambiente MotoDev. Já existe um padrão que poderá ser alterado conforme necessidade ou conveniência.
Após esta tela vem a instalação em si, outras telas são apresentadas, mas como não existe escolhas, nem muito o que fazer (apenas a opção de Cancelar a instalação) não apresentamos por aqui.
Instalação finalizada. Não é um processo demorado, pelo contrário, em uma máquina de médio porte (Core i5, 4Gb Ram e com espaço de sobra no HD) a instalação levou menos tempo que o esperado.

Processo de instalação finalizado, agora basta iniciar o ambiente gerar um novo projeto, compilar e rodar? Errado é claro, qual o motivo de um tutorial se fosse algo direto. Passemos agora ao que levou realmente tempo.

Agora vamos nos deparar com uma tela diferente para quem não é deste tipo de ambiente. Instalação do SDK (Software Development Kit). Este SDK simplesmente compreende as bibliotecas necessárias para o desenvolvimento dos aplicativos para determinadas versões de Android, lembrando que conforme uma nova versão de Android é lançada bugs são retirados e funcionalidades são incorporadas (e outras podem "desaparecer").

Escolhi a última versão, mas além disso existirá um passo a frente que poderemos escolher outras versões de SDK.

Esta parte leva um pouquinho de tempo, ou seja, tenha uma boa conexão de banda larga que tudo será resolvido com facilidade.


Após isso está finalizado... Com certeza não... Esta foi a parte que apareceu o primeiro problema. O ambiente solicita automaticamente a criação de um Android Virtual Device (AVD). Basicamente é o emulador em que serão feitos os testes de aplicativos sem a necessidade de um equipamento real (celular, Tablet ou outro). Como era automático tentei criar, mas faltava algo, ele não permitia a criação, faltava uma ".img". Na realidade o que faltava era um CPU/ABI, que é a plataforma (hardware) em que o Android irá ser executado. Vamos baixar mais algun itens. Vá ao menu "Windows" e escolha a opção "Android SDK Manager".

Agora sim, perto da descoberta da nova terra. Novamente, tenha uma boa conexão de banda larga, baixe os SDK que necessita e siga em frente.
OBS.: Caso tenha um equipamento com Android que irá utilizar para testes baixe o SDK da versão de Android deste equipamento também.

Não esqueça, CPU/ABI, baixei o "ARM EABI v7a System Image" para testes funcionou bem, mas quem sabe se nesta terra desconhecida será o suficiente ou a melhor escolha? Ainda sem resposta para esta questão.



Criar o AVD é a parte simples. Escolha a versão de Android que deseja fazer os testes (AVD Target), depois escolha o formato de emulador e o hardware do emulador (ABI Type). Pronto, basta um Finish para ter tudo pronto. Como é para testes não adianta inventar muitas configurações.

Criei no MotoDev o meu primeiro Projeto com o nome Teste (File/New/Android Project Using Studio for Android). Sem olhar, botão direito sobre o nome "Teste" na janela "Package Explorer", "Run As..." e "Android Application". Após um longo tempo de espera eis que o Emulador é iniciado e mais uma espera e a aplicação surge.


Sim, é um "Hello World" é criado automaticamente pelo ambiente. Levei algumas horas para fazer isso, claro que com uma ajudinha do companheiro de blog, mas por enquanto valeu descobrir este novo mundo.

Obrigado a todos.

segunda-feira, 13 de agosto de 2012

Todos a bordo, a nau vai partir!!!



A plataforma Android representa hoje, não mais o futuro, mas sim uma realidade, sendo o ambiente que mais cresce no mercado, seja em usuários, seja em desenvolvedores.

Este blog tem como objetivo divulgar e informar, de maneira simples e objetiva a plataforma de desenvolvimento Android, apresentando seus recursos, características e possibilidades.

Navegando por mares nunca antes navegados, nossa meta é evoluir no ambiente e esperamos que vocês nos acompanhem nesse aprendizado.

Sejam bem vindos a bordo e desfrutem da viagem!



"Audaciosamente indo onde nenhum homem jamais esteve" - James T. Kirk