Apresentação utilizada no curso introdutório de Android realizado na Semana de Ciências Exatas e Tecnologia da PUC-SP nos dias 04 e 05 de novembro de 2013
• Último semestre do curso de Ciência da Computação na PUC-SP • Contato: – [email protected] | fb.com/diego.pinho.31 – [email protected] | fb.com/luizrmiranda7
sua história • Conceitos básicos do Android – A arquitetura do Android – Os elementos essenciais • Configuração do ambiente • Desenvolvendo a minha primeira aplicação – Hello World – Atividade 01 - LogCat e Ciclo de Vida – Atividade 02 – Telas – Atividade 03 - Telas e Intent
Google) • Faz parte da Open Handset Alliance* • O primeiro aparelho comercial com Android foi o HTC Dream ou G1. • Em 2007, Android Beta SDK é liberado. • Hoje, o Android é o sistema mais utilizado em smartphones *A OHA é um conjunto de várias empresas, que têm como objetivo desenvolver padrões abertos para dispositivos móveis HTC Dream
segmento de smartphones durante o segundo trimestre deste ano (187,4 milhões de unidades), aponta a consultoria IDC. No mesmo período do ano passado, o índice era de 69,1%.
diferenciam o Android de outros sistemas: – Flexibilidade – Aplicações – Demanda – Segurança – Custo Você consegue citar mais alguma característica que diferencia o sistema Android?
os utilizadores de IPhone, IPod, Android, etc., relativamente à sua interação e envolvência com as aplicações. Homens Mulheres Apenas 21% compram uma aplicação paga por mês 24% dos utilizadores tem menos de 24 anos *AdMob é uma empresa americana de publicidade móvel comprada pela Google
• Código fonte é open source* • API em Java (Android SDK) • Não está preso a nenhum hardware • Grande quantidade de aplicativos (Google Play) • Diversas opções de personalização • Existe SGBD nativo, o SQlite • Possui suporte a gráficos 3D baseado na especificação 1.0 da OpenGL ES *O código fonte pode ser baixado no site source.android.com
sistema operacional Android como uma pilha de softwares. Cada camada da pilha agrupa vários programas que suportam funções específicas do sistema operacional. A organização em camadas permite uma melhor organização (e uso) do sistema!
todos os aplicativos que são executados sobre o sistema operacional, tais como, cliente de SMS e MMS, cliente de e-mail, navegador, mapas, calculadora, dentre outros • Camada de Suporte: A camada de framework nativo disponibiliza aos desenvolvedores as mesmas Applications Programming Interface (APIs) – Interface de Programação de Aplicativos utilizadas para a criação de aplicações originais do sistema operacional Android
as bibliotecas C/C++ que são utilizadas pelo sistema, e também bibliotecas de multimídia, visualização de camadas 2D e 3D, funções para navegadores web, funções de aceleradores de hardware, renderização 3D, funções para gráficos, fontes bitmap e vetorizadas e funções de acesso a banco de dados SQLite.
a máquina virtual Dalvik, criada para cada aplicação executada no Android. Essa maquina virtual é a melhor referente a desempenho, maior integração com a nova geração de hardware e projetada como executar vários processos paralelamente. • Camada de Kernel Linux: o núcleo do sistema operacional Android é derivado do kernel 2.6 do Linux, herdando diversas características dessa plataforma. Parte importante que se utiliza do Linux na concepção do Google Android é o de controle de processos, gerenciarem memória, threads, protocolos de rede, modelo de drives e a segurança dos arquivos.
VM não é uma JVM! Os arquivos .class são convertidos por meio de um compilador java para arquivos .dex) • Não existe função main(), existem pontos de entrada • O principal componente é a Activity, que corresponde a uma tela.
na aplicação. Possui interface de usuário composta por Views, componentes gráficos, eventos e etc. • Define que existe uma tela, controla seu estado e a passagem de parâmetros de uma tela para a outra, define os métodos que serão chamados quando o usuário apertar algum botão da tela, etc.
a Activity é iniciada • onStart(): Método chamado quando a Activity fica visível para o usuário. • onResume(): Método chamado quando a Activity irá interagir com o usuário. • onPause(): Método chamado quando o sistema está prestes retomar uma outra Activity. • onStop(): Método chamado quando a Activity não estiver mais sendo executada. • onDestroy(): Método chamado quando a Activity terminou. • onRestart(): Método chamado quando a Activity estiver prestes a ser chamada novamente.
simples componente gráfico (botão, checkbox,imagem) ou uma view complexa, que atua como um gerenciador de layout, a qual pode conter várias views- filhas e tem a função de organizar as mesmas na tela. • A view é definida por meio de um arquivo XML.
que a aplicação deseja executar (mensagem da aplicação para o sistema operacional). • Uma Intent pode ser usada para: – Enviar mensagem ao sistema operacional. – Abrir uma nova tela da aplicação. – Solicitar ao sistema operacional que ligue para certo número. – Solicitar ao sistema operacional que abra o navegador em certa url. – Abrir o Google Play para fazer certa instalação de app – Etc.
essencial sobre a aplicação para o sistema Android. O sistema necessita dessa informação para que depois consiga rodar a aplicação • O manifest.xml define, por exemplo: – O nome do pacote Java para a aplicação – Os componentes da aplicação – Activitites, serviços, listeners – Permissões que a aplicação necessita para rodar – Versão mínima da API usada na aplicação – Etc...
uma classe auto-gerada pelo build da aplicação no Eclipse. Ela serve como vínculo entre as Activities e as Views , ou seja, para cada componente da sua view, teremos uma variável na classe R que a referencia (de um jeito estranho!). • Não precisamos nos preocupar muito com essa classe pelo fato de não termos que mexer nela, o build do Eclipse já nos poupa desse fardo.
novo projeto – Criar nova máquina virtual (emulador) – Executar o projeto Não esqueça de identificar e entender todos os elementos explicados dentro do código!
atividade vamos aprender um pouco mais sobre o ciclo de vida de uma Activity e como usar o sistema de logs da máquina virtual Dalvik, o LogCat • Objetivo: Criar uma aplicação que exibe uma mensagem no LogCat a cada uma das etapas do ciclo de vida da Activity • Veja arquivo: TarefaLogCat – Exemplo.txt Não esqueça de filtrar os logs para não se perder!
pouco mais sobre Activity e View. • Objetivo: Criar um aplicação – que se integre com a atividade 01 – que tenha 2 telas. Ao clicar em uma delas, é redirecionada para a outra. • Veja arquivo: Telas.txt Faça as telas estender a tela de log feita na atividade anterior!
aprender um pouco mais sobre como usar as Intent e Bundle para passar parâmetros entre telas • Objetivo: Iterar o código da atividade 02, de modo que seja possível passar parâmetros entre telas (a mensagem exibida na segunda tela deve ser passada por parâmetro na primeira). • Veja arquivo: Passando-parametros.txt Aqui só vamos alterar um pouco os métodos onCreate() das nossas telas! Vai ser moleza! ;D
5. http://informatica.hsw.uol.com.br/google-phone2.htm 6. http://www.alexandreporfirio.com/mini-curso-android/ 7. http://www.mundointerativo.com.br/2012/07/25/a-evolucao-do-android/ Nome: Google Android: Aprenda a criar aplicações para Dispositivos móveis com o Android SDK Autor: Ricardo R. Lecheta Editora: Novatec – Segunda Edição
o Android facilita o nosso trabalho com lista de itens. Vamos aprender a criar uma lista de itens e exibi-la na tela. • Objetivo: Ver o funcionamento da classe ListActivity • Veja arquivo: TelaLista-exemplo.txt Nesta atividade vamos somente entender como funciona essa classe! Será importante para a próxima atividade! * Não esqueça de alterar o seu Manifest.xml
aprender como usar a ListActivity para criar um menu para a nossa aplicação. • Objetivo: Criar um menu para as telas da aplicação. Ao apertar no item que corresponde a tela, ela deverá abrir. • Utilize a classe da atividade 04 como base! Você se lembra como chamar uma tela? Não? Olhe no código das outras atividades! A chave é a Intent. * Não esqueça de alterar o seu Manifest.xml
tela ao gosto de cada um, utilizando o sistema de drag n’ drop que gera o xml da nossa tela. Depois, vamos aprender a como pegar os elementos da nossa tela no código da nossa Activity para interagir com eles.
aprendido nessa oficina de Android! Tentamos passar os principais conceitos envolvidos na programação de qualquer aplicativo para o sistema Android. • Se possível, gostaríamos que vocês respondessem a enquete a seguir para que possamos ter um pequeno feedback de vocês em relação ao que foi passado Enquete - Oficina Android 2013
5. http://informatica.hsw.uol.com.br/google-phone2.htm 6. http://www.alexandreporfirio.com/mini-curso-android/ 7. http://www.mundointerativo.com.br/2012/07/25/a-evolucao-do-android/ Nome: Google Android: Aprenda a criar aplicações para Dispositivos móveis com o Android SDK Autor: Ricardo R. Lecheta Editora: Novatec – Segunda Edição