SlideShare a Scribd company logo
1 of 87
Minicurso Básico de Android
Thales Levi Azevedo Valente
Apresentação
• Thales Levi Azevedo Valente
– selaht7@gmail.com
– Bacharel em Ciência da Computação – UFMA
– Pesquisador em:
• Processamento de Imagens
• Android
– Lattes:
• http://lattes.cnpq.br/1509490497932923
(28/05 – 03/07)/2015 2Minicurso Básico de Android – Thales Levi / UFMA
O trabalho Minicurso de Android Básico I (este trabalho), bem como suas outras partes
(referente também aos dias 2, 3 e 4), de Thales Levi Azevedo Valente está licenciado com
uma Licença Creative Commons - Atribuição-NãoComercial-SemDerivações 4.0
Internacional. Para ver uma cópia desta licença, visite
http://creativecommons.org/licenses/by-nc-nd/4.0/.
• Você é livre para:
– Copiar, distribuir o material
• Sobre as seguintes condições:
– Atribuição de créditos: você deve fazer referência ao autor
– Não-comercial: você não deve usar este material para propósitos comerciais
– Não-Derivados: Se você criar trabalhos derivados deste, você não deve distribuí-lo.
Termos de uso deste material
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 3
Cronograma do Curso
• Introdução
• Mostra de Aplicativos
• Foco no Android
• API do Android
• Execução das Aplicações
• Primeiros Contatos:
 Preparando o ambiente de desenvolvimento Android com Eclipse – Passo a Passo
 Ciclo de vida de uma Activity
 Criando o primeiro projeto Android
 Estrutura básica de um projeto Android
 Criando Máquina Virtual usando o AVD Manager
 Executando o primeiro “Hello World”
 Apresentando a IDE e Interagindo com a Máquina Virtual
4Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015
Cronograma do Curso
• Gerenciadores de
Layout
• AbsoluteLayout
• LinearLayout
• RelativeLayout
• FrameLayout
• TableLayout
• ScrollView
5Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015
• Roteiro Android(Dia 2):
• Widgets – Componentes de
Interface
• Views
• TextView
• EditText
• ImageView
• ScaleTypes
• Button
• CheckBox
• Spinner
• RadioGroup
Cronograma do Curso
• Roteiro Android(Dia 3):
• Listas e adaptadores
• Menu
• ActionBar
• Arquivo Manifest.xml
• Arquivos em Android
• Adicionando bibliotecas Externas
6Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015
Cronograma do Curso
• Roteiro Android(Dia 4):
• Notificações
• Intents
• Passagem e recebimento de objetos entre
Activities
• Introdução à SQLite
• Introdução aos Provedores de Conteúdo
7Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015
Minicurso Básico de Android – 1º Dia
Thales Levi Azevedo Valente
INTRODUÇÃO
Plataformas Mobile Populares
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 10
• Plataforma Mobile Open Source
• Código aberto e distribuído sob licença Apache 2.0, ou
seja, códigos-fonte acessíveis. http://source.android.com
• Mantido pela Open Handeset Alliance (OHA)
– Aliança entre diversas empresas para criar padrões
abertos para telefonia móvel.
• Android domina 84,6% do mercado global de
smartphones. (Pesquisa realizada no segundo trimestre 2014
pela Strategy Analytics)
Foco no Android
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 11
• Baseado em Linux, com desenvolvimento iniciado em 2003 pela
empresa Android Inc.
• 2005 - foi adquirida pela Google
• 2007 - surgiu a Open Handset Alliance – associação de empresas com
a missão de desenvolver uma plataforma móvel:
– Completa
– Aberta
– gratuita
• 2007 - lançamento da versão beta do Android SDK
Foco no Android
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 12
API do Android
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 13
D
o
w
n
-
T
o
p
• Camada onde se encontram os drivers de hardware.
• Provê serviços essenciais (segurança, rede, gerenciamentoo de
memória e processos, abstração do hardware para outras camadas)
• Versão modificada do core do Linux 2.6. Exemplos de modificações:
– Binder: permite que um processo possa chamar uma rotina em outro
processo
– OOM (Out-of-Memory Handler): termina processos quando há falta de
memória
– Ashmem e pmem: gerenciadores de memória compartilhada com
melhor suporte à dispositivos com pouca capacidade de memória
Camada Vermelha - Linux Kernel
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 14
• Bibliotecas responsáveis por:
– Intermediar acesso ao display.
– Suporte aos diferentes formatos mídia (aúdio, vídeo, imagens).
– Gráficos 2D e 3D.
– Banco de Dados.
Camada Verde - Bibliotecas
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 15
• Bibliotecas do núcleo Java (Core Libraries) e MVD (Máquina Virtual
Dalvik), otimizada para consumir pouca memória.
• Aplicações são executadas em sua própria instância de MV.
• Utiliza arquivos .dex gerados a partir das classes Javas compiladas
• Os .dex e todos os recursos da aplicação são então “empacotados”
em um arquivo .apk. Podem ser encontrados na pasta bin do projeto
Camada Amarela – Tempo de execução
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 16
.class
.class.class .dx tool .dex
.apk
.
recursos
• Cada aplicação possui sua própria
instância de máquina Dalvik, ou seja,
são executadas de forma segura e
isoladas das demais.
• Mas o que isso quer dizer?
– Nenhuma aplicação pode acessar
recursos de outra aplicação
– Nenhuma aplicação pode acessar
diretamente recursos do sistema
(contatos, sensores, rede) sem que o
usuário explicitamente autorize
Execução das Aplicações
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 17
Sistema
MVD n-2
Aplicação n-2
MVD n
Aplicação n
MVD n-1
Aplicação n-1
MVD n-3
Aplicação n-3
• Conjunto de componentes que oferecem serviços para aplicações.
Exemplos:
– Gerenciador de Pacotes: mantém registro das aplicações instaladas.
– Gerenciador de Activities: gerencia o ciclo de vida das Activities e
organiza-as em pilhas.
– Provedor de Conteúdos: Compartilhamento de dados entre aplicações.
– Gerenciador de Recursos: provê acesso a tudo que faz parte do
aplicativo que não seja código (XML, mídias, arquivos)
– Gerenciador de Notificações: permite que uma aplicação notifique o
usuário sobre algum evento através de vibração, piscar de leds, tocar
algum som ou mostrar um ícone na barra de status
Camada Azul 1 – Framework de Aplicações
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 18
• Camada de interação entre o usuário e o dispositivo. Nela se
encontram os aplicativos. Exemplos:
– Cliente de e-mail
– Aplicativos de mensagens
– Gerenciadores de contatos
– Calendário
– Mapas
– Navegador
Camada Azul 2 –Aplicações
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 19
• Android encoraja o desenvolvimento em
alto nível;
• Android usa Java como a principal
linguagem de programação;
• Herda classes básicas do Java padrão:
– String, Container, Math, IO e Network
• Adiciona novas classes especificas para
dispositivos móveis:
– Camera, Telephony, Map, Speech
Considerações
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 20
Preparando o ambiente de desenvolvimento Android –
Passo a Passo
• Java Runtime Environment (JRE) para a versão do seu sistema (32/64
bits).
• Java Development Kit (JDK) para a versão do seu sistema (32/64
bits).
• Baixar e descompactar a IDE Eclipse ADT Bundle com o Android SDK
para a versão de seu sistema(32/64 bits).
• http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html
• http://downloads.puresoftware.org/files/android/adt-bundle/
Baixe e instale os seguintes itens (os mais atuais preferencialmente):
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 22
Página de download do JRE.
Baixe o JRE no site da Oracle e instale em sua máquina.
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 23
Página de download do JDK.
Baixe o JDK no site da Oracle e instale em sua máquina
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 24
Página de download do Eclipse ADT
Baixe a IDE Eclipse ADT no site da Google.
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 25
Descompacte a IDE Elipse ADT e o Android SDK
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 26
Tela de escolha do workspace
Abra o Eclipse e escolha o seu workspace
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 27
Figura X. Página de download do Eclipse ADT
Tela inicial da IDE Elipse ADT
Logo após, o Eclipse carregará e abrirá sua tela de interface.
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 28
Verificaremos se o diretório do SDK está correto.
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 29
Tela inicial da IDE Elipse ADT
Clique em “Browse” para selecionar o diretório, caso queira mudar
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 30
Tela da opção preferências do Eclipse ADT
Navegue até o diretório do sdk e clique em “OK”
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 31
Tela da opção preferências do Eclipse ADT
Clique no botão “Apply” para aplicar a mudança de diretório.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 32
Tela da opção preferências do Eclipse ADT
Serão listadas todas as APIs instaladas em seu SDK. Finalize clicando no botão “OK”
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 33
Tela da opção preferências do Eclipse ADT
Fechando o Eclipse ADT
Caso apareçam estes erros, apenas reinicie o eclipse e serão resolvidos.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 34
Figura X. Página de download do Eclipse ADT
Tela inicial do Elipse ADT
Abriremos o SDK Manager apertando este botão
Logo após, o Eclipse carregará e abrirá sua tela de interface.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 35
• É um gerenciador de pacotes do SDK com um UI para iteração com
usuário.
• O SDK nada mais é que o kit de desenvolvimento para Android,
contendo bibliotecas e ferramentas de desenvolvimento necessários
para construção, teste e debug de aplicativos para Android.
O que é o SDK Manager ?
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 36
Inicialização do Android SDK
Inicialização do Android SDK
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 37
Instalar os Tools, de preferência os mais atualizados por questões de
compatibilidade com as APIs
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 38
• SDK Tools:
– Dalvik Debug Monitor Server (ddms): rede, memória utilizada, logcat,
explorador de arquivos, captura de tela, informações sobre o disp.
– Hierarchy Viewer: mostra a hierarquia dos layouts.
– Mksdcard: cria imagem de disco para usar com sdcard no emulador
• SDK Platform Tools:
– Adb: comunicação em linha de comando entre o user e dispositivos
– Sqlite3: dá acesso a arquivos Sqlite criados e usados no Android
• SDK Build Tools: requerido para geração de código
O que são estes 3 itens? (exemplos)
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 39
Exemplo de uso do ADB – instalação de APKs externos no AVD
• Abra o CMD
• Mude para o diretório do Android sdkplatform – tools
• Execute o comando adb install “...diretório
opencvapkapk conforme seu emulador”
• Espere instalar e feche o CMD
• Aparecerá um novo Aplicativo no emulador: OpenCV
Manager
• OBS: deve haver apenas um AVD inicializado e
quaisquer dispositivos Android não deve está
conectado no computador em modo de debug. Caso
falhe por falta de conexão com o ADB, reinicie o
emulador e o Eclipse, para reiniciar o processo do
ADB.
(28/05 –
03/07)/2015
40Minicurso Básico de Android – Thales Levi / UFMA
A mais recente API é necessária para se utilizar as bibliotecas de compatibilidade.
Instale mesmo que não a use
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 41
Depois, instale suas APIs preferenciais.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 42
Selecionaremos essa API por ainda ser muito utilizada por uma parte do
mercado
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 43
Extras necessários para utilização das bibliotecas de compatibilidade e usar um
smartphone para teste direto do aplicativo
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 44
• SDK Platform: kit de desenvolvimento para plataforma específica
• ...System Images: tipos de emulador com seus respectivos
processadores. Emuladores são utilizados para executar aplicativos
• Android Support Repository e Android Support Libraries: necessários
para utilização de bibliotecas de compatibilidade.
• Google USB driver: necessário para utilização de aparelhos físicos ao
invés de emuladores.
O que marcamos?
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 45
Ao clicar no botão instalar, aceite os termos de compromisso e clique em
instalar
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 46
As bibliotecas serão baixadas e o SDK Manager será reiniciado.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 47
Ciclo de vida de uma Activity
• Representa uma simples tela com interface com o usuário
• Um programa Android inicia com uma Activity assim como
programas Java/C iniciam com uma Main()
• Tem um ciclo de vida bem definido
• Se uma Activity não estiver em primeiro plano, ela pode ser
destruída pelo sistema caso haja falta de memória.
O que é uma Activity ?
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 49
• Gerenciadas em pilha -> Activity Manager
• Quando uma Activity é iniciada, esta vai para o
topo da pilha.
Gerência de Activities
New ActivityRunning Activity
Activity 1
Activity 2
Activity n-1
Last Running
Activity
Activity n-3
Free
ActivityStack
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 50
• OnCreate():
– o sistema o chama ao criar a Activity (Componente “mãe” de GUI)
– Nele deve ser chamado setContentView()para definir o layout.
– É executada somente uma vez durante a “vida” do aplicativo
• OnStart():
– Chamado quando a Activity é visível para o usuário.
• OnResume():
– Chamado quando o aplicativo irá interagir com o usuário
Principais métodos:
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 51
• OnPause():
– É o primeiro método a ser chamado quando a Activity perde o foco (uma
outra Activity vem à frente, mas a primeira não deixa de ser visível).
– Mudanças feitas pelo usuário devem ser salvas neste ponto (ex:
mudanças no provedor de conteúdo, como contatos, mídias, etc),
animações devem ser paradas, sensores, etc..
– Deve ser executada rapidamente, pois a próxima Activity só será só
“ganhará a tela” quando este método for finalizado.
Principais métodos:
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 52
• onStop():
– Quando chamado, o aplicativo não é mais visível para o usuário.
– Por algum motivo, um outro aplicativo foi colocado no topo da pilha
• onDestroy():
– Destruição da Activity
– Pode tanto ser chamada em código, quanto o sistema pode fazê-lo caso
precise de memória
• onRestart():
– Chamado quando o aplicativo volta ao primeiro plano.
Principais métodos:
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 53
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 54
• Tempo de vida inteiro:
– Ocorre entre onCreat() e onDestroy()
• Tempo de vida visível:
– Ocorre entre onStart() e onStop()
– A Activity está visível, mas não está em primeiro plano.
• Tempo de vida em primeiro plano:
– Ocorre ente onResume() e onPause()
– A Activity está a frente de todas as outras e interagindo com o usuário.
Loops chaves do ciclo de vida
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 55
Criando o primeiro projeto Android
Selecione a opção de criação de novo projeto.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 57
Escolha o nome do projeto, pacote, aplicação e APIs mínima, máxima e de
compilação do projeto
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 58
Deixe como está, apenas “dê next”
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 59
Tela de customização do ícone.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 60
Tela de escolha do esqueleto inicial da primeira tela de seu
aplicativo. Selecionaremos a tela vazia.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 61
Definiremos os nomes da classe principal e do arquivo de layout
dela
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 62
Projeto criado. Ignore estes erros, se ocorrerem. São bugs da IDE.
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 63
Porque foram criados 2 projetos?
• O primeiro projeto é uma biblioteca de compatibilidade. Ela está
localizada no Android SDK e selecionamos ela no SDK.
• Esta biblioteca necessita da API mais atual (no momento, a API 22 -
Android 5.1). Tanto ela quanto o seu projeto devem ter esta API
como API de compilação ou haverá erros tanto na linkagem, quanto
a biblioteca acusará erros de falta de recursos (classes java ou
arquivos xml de layouts)
Porque foram criados dois projetos?
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA
65
Estrutura básica de um projeto Android
Estrutura básica de um projeto Android
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 67
Pasta, pacotes e
classes
Adicionais
(arquivos)
Linka Xmls e classes java
(gerado automaticamente
Bibliotecas .jars
Informações sobre o aplicativo
Códigos gerados
Versão de Compilação
Estrutura básica de um projeto Android
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 68
240 dpi
Definições de
layout de menus
Definições de
layout de telas
Recursos para versões
especíificas
120 dpi
160 dpi
480 dpi
320dpi
Definições de dimensões
Definições de strings
Definições de estilos de
views
Estrutura básica de um projeto Android
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 69
Classe principal
Sempre chamado na
criação de uma Activity
Setando o layout
Estrutura básica de um projeto Android
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 70
“organizador”
View usada para
texto
Espaço ocupado
Espaçamento de
margem
String que aparecerá
para o usuário
Criando Máquina Virtual usando o AVD Manager
Abriremos o AVD Manager apertando este botão
Abrindo o AVD Manager
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 72
Aba 1- Android Virtual Devices
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 73
Tela inicial do AVD Manager
Dispositivos Virtuais Android disponíveis. Também
podem ser criados outros
Aba 2- Devices Definitions
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 74
Tela de criação de definição de um dispositivo
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 75
Tela de criação de dispositivos virtuais. Especificam-se
características de tela, sensores, câmeras, etc.
Tela de criação de Máquina Virtual
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 76
Tela de criação de máquina virtual.
Máquina virtual criada pronta para ser inicializada
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 77
Máquina virtual criada pronta para ser inicializada
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 78
Desmarcar essa
opção para que
fique maior a
tela
Máquina virtual inicializada
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 79
Executando o primeiro “Hello World”
Executando o primeiro projeto
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 81
Aplicativo HelloWorld
(28/05 –
03/07)/2015
Minicurso Básico de Android – Thales Levi / UFMA 82
• Quando for lançado um nível de API mais recente, você terá de atualizar
também os tools no SDK Manager, eventualmente, além das bibliotecas de
compatibilidade.
• Após as etapas anteriores, reinicie o Eclipse. Talvez você também,
eventualmente, poderá ter que atualizar o Plugin ADT presente no Eclipse.
• Você não é obrigado a fazer atualizações. Tudo funcionará normal caso não
faça.
• Nunca faça atualizações sem ter um backup de seus recursos !!!! ( IDEs, SDK,
etc)
Considerações (adicionado dia 04-06-15)
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 83
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 84
Dúvidas ?
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 85
Até a próxima !
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 86
• As imagens utilizadas foram adquiridas, em maior parte, através de
screenshots da tela do computador do próprio autor deste material.
• As imagens especificadas abaixo foram adquiridas através da ferramenta de
pesquisa de imagens da google https://images.google.com/. Todos os créditos
referente a elas são dados aos locais selecionados através de tal ferramenta. Se
você é autor e deseja que as imagens sejam removidas, entre em contato e
será feito.
http://www.appschopper.com/blog/wp-content/uploads/2013/03/Be-the-Pro-with-Best-Books-for-Android-Application-Development-
Banner.jpg
http://radixsmartclass.in/radixtemp/wp-content/uploads/2013/03/android_on_android_classroom_control.jpg
http://vamsystems.com/Images/ContentImages/2015/1/android-banner.jpg
http://3.bp.blogspot.com/-sRZob5WYyes/UzU7MkCOR0I/AAAAAAAACx4/sAlM8OIRrnQ/s1600/android-app-banner.png
http://hd.wallpaperswide.com/thumbs/android_green_background-t2.jpg
http://4.bp.blogspot.com/-OOXne6FICPk/VSGOCJtMm2I/AAAAAAAAABQ/ScOC2wFsnJU/s1600/android.png
http://www.androidcentral.com/sites/androidcentral.com/files/postimages/108579/bugdroid-salute-cropped.png
Referências
(28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 87
• LECHETA, R. R. (2010). Google Android. 2a edição, São Paulo, Novatec
• BRAHLER, S. Analysis of the android architecture. Karlsruher Intitute of Technology, Germany,
2010.
• KHAN, S., KHALID, S. H., NAUMAN, M., KHAN, S., and ALAM, M. Analysis report on android
application framework and existing security architecture. Technical report, Security
Engineering Research Group, Pakistan, 2010.
• ANDROID DEVELOPERS. Disponível em:
<http://developer.android.com/develop/index.html.>. Acesso em: abril de 2015.
• ELINUX. Disponível em: <http://elinux.org/Android_Portal>. Acesso em: março de 2015.
• IDC. Smartphone OS Market Share, Q3 2014. Disponível em
<http://www.idc.com/prodserv/smartphone-os-market-share.jsp>. Acesso em: dezembro de
2014.
Referências

More Related Content

Viewers also liked

Reis concrete
Reis concreteReis concrete
Reis concreteerdogan61
 
Thuoc Rheumapain F
Thuoc Rheumapain FThuoc Rheumapain F
Thuoc Rheumapain Flang206
 
Tecnología, educación y comunicación
Tecnología, educación y comunicaciónTecnología, educación y comunicación
Tecnología, educación y comunicaciónWINELLY ESPINAL UREÑA
 
Usulan program kreativitas mahasiswa
Usulan program kreativitas mahasiswaUsulan program kreativitas mahasiswa
Usulan program kreativitas mahasiswaAzizah Attabha
 
Engagement Factory History Infographic
Engagement Factory History InfographicEngagement Factory History Infographic
Engagement Factory History InfographicEngagement Factory
 
Fasciculo dispositivos-moveis-slides
Fasciculo dispositivos-moveis-slidesFasciculo dispositivos-moveis-slides
Fasciculo dispositivos-moveis-slidesRoberto Junior
 
Presentación Jornada Reflexión COSAM noviembre 2015
Presentación Jornada Reflexión COSAM noviembre 2015Presentación Jornada Reflexión COSAM noviembre 2015
Presentación Jornada Reflexión COSAM noviembre 2015Patricia Espinoza
 
Programa de tratamiento de Alcohol y Drogas COSAM Quinta Normal
Programa de tratamiento de Alcohol y Drogas COSAM Quinta NormalPrograma de tratamiento de Alcohol y Drogas COSAM Quinta Normal
Programa de tratamiento de Alcohol y Drogas COSAM Quinta NormalPatricia Espinoza
 
Libro Rojo de la Fauna Silvestre de Vertebrados de Bolivia
Libro Rojo de la Fauna Silvestre de Vertebrados de BoliviaLibro Rojo de la Fauna Silvestre de Vertebrados de Bolivia
Libro Rojo de la Fauna Silvestre de Vertebrados de BoliviaVladimir Revollo Gonzáles
 
Programação Orientada a Objetos (POO) com PHP - Parte 2
Programação Orientada a Objetos (POO) com PHP - Parte 2Programação Orientada a Objetos (POO) com PHP - Parte 2
Programação Orientada a Objetos (POO) com PHP - Parte 2Israel Messias
 
Apresentação slides sobre os peixes
Apresentação slides sobre os peixes Apresentação slides sobre os peixes
Apresentação slides sobre os peixes Michelle2789
 

Viewers also liked (17)

Reis concrete
Reis concreteReis concrete
Reis concrete
 
Thuoc Rheumapain F
Thuoc Rheumapain FThuoc Rheumapain F
Thuoc Rheumapain F
 
Mapas de economia
Mapas de economiaMapas de economia
Mapas de economia
 
Trabajo final canelofavf
Trabajo final canelofavfTrabajo final canelofavf
Trabajo final canelofavf
 
Estudio Clínico de Rowachol
Estudio Clínico de RowacholEstudio Clínico de Rowachol
Estudio Clínico de Rowachol
 
Tecnología, educación y comunicación
Tecnología, educación y comunicaciónTecnología, educación y comunicación
Tecnología, educación y comunicación
 
Usulan program kreativitas mahasiswa
Usulan program kreativitas mahasiswaUsulan program kreativitas mahasiswa
Usulan program kreativitas mahasiswa
 
Engagement Factory History Infographic
Engagement Factory History InfographicEngagement Factory History Infographic
Engagement Factory History Infographic
 
Fasciculo dispositivos-moveis-slides
Fasciculo dispositivos-moveis-slidesFasciculo dispositivos-moveis-slides
Fasciculo dispositivos-moveis-slides
 
Presentación Jornada Reflexión COSAM noviembre 2015
Presentación Jornada Reflexión COSAM noviembre 2015Presentación Jornada Reflexión COSAM noviembre 2015
Presentación Jornada Reflexión COSAM noviembre 2015
 
Aparato excretor
Aparato excretorAparato excretor
Aparato excretor
 
Programa de tratamiento de Alcohol y Drogas COSAM Quinta Normal
Programa de tratamiento de Alcohol y Drogas COSAM Quinta NormalPrograma de tratamiento de Alcohol y Drogas COSAM Quinta Normal
Programa de tratamiento de Alcohol y Drogas COSAM Quinta Normal
 
Libro Rojo de la Fauna Silvestre de Vertebrados de Bolivia
Libro Rojo de la Fauna Silvestre de Vertebrados de BoliviaLibro Rojo de la Fauna Silvestre de Vertebrados de Bolivia
Libro Rojo de la Fauna Silvestre de Vertebrados de Bolivia
 
Morfologia celular
Morfologia celularMorfologia celular
Morfologia celular
 
Programação Orientada a Objetos (POO) com PHP - Parte 2
Programação Orientada a Objetos (POO) com PHP - Parte 2Programação Orientada a Objetos (POO) com PHP - Parte 2
Programação Orientada a Objetos (POO) com PHP - Parte 2
 
Apresentação slides sobre os peixes
Apresentação slides sobre os peixes Apresentação slides sobre os peixes
Apresentação slides sobre os peixes
 
Uretrocistografia Miccional e Retrógrada
Uretrocistografia Miccional e RetrógradaUretrocistografia Miccional e Retrógrada
Uretrocistografia Miccional e Retrógrada
 

Similar to Minicurso de Android Básico I - Dia 1

Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
Windows Azure na Prática
Windows Azure na PráticaWindows Azure na Prática
Windows Azure na PráticaElvis Fusco
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rqKMILT
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
Apresentação Estágio UDESC
Apresentação Estágio UDESCApresentação Estágio UDESC
Apresentação Estágio UDESCMarcos Ferreira
 
Programação em Android - Aula 1 - Introdução
Programação em Android - Aula 1 - IntroduçãoProgramação em Android - Aula 1 - Introdução
Programação em Android - Aula 1 - IntroduçãoTecnoinf
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao AndroidJanynne Gomes
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveisigorpimentel
 
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem FioDesenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem FioLeandro Rezende
 
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...Walter Coan
 
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD....NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...Renato Groffe
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livreelliando dias
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 

Similar to Minicurso de Android Básico I - Dia 1 (20)

Android juliana-mono
Android juliana-monoAndroid juliana-mono
Android juliana-mono
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Android
AndroidAndroid
Android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Windows Azure na Prática
Windows Azure na PráticaWindows Azure na Prática
Windows Azure na Prática
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
Apresentação Estágio UDESC
Apresentação Estágio UDESCApresentação Estágio UDESC
Apresentação Estágio UDESC
 
Programação em Android - Aula 1 - Introdução
Programação em Android - Aula 1 - IntroduçãoProgramação em Android - Aula 1 - Introdução
Programação em Android - Aula 1 - Introdução
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveis
 
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem FioDesenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
 
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
 
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD....NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livre
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
Android
AndroidAndroid
Android
 

Minicurso de Android Básico I - Dia 1

  • 1. Minicurso Básico de Android Thales Levi Azevedo Valente
  • 2. Apresentação • Thales Levi Azevedo Valente – selaht7@gmail.com – Bacharel em Ciência da Computação – UFMA – Pesquisador em: • Processamento de Imagens • Android – Lattes: • http://lattes.cnpq.br/1509490497932923 (28/05 – 03/07)/2015 2Minicurso Básico de Android – Thales Levi / UFMA
  • 3. O trabalho Minicurso de Android Básico I (este trabalho), bem como suas outras partes (referente também aos dias 2, 3 e 4), de Thales Levi Azevedo Valente está licenciado com uma Licença Creative Commons - Atribuição-NãoComercial-SemDerivações 4.0 Internacional. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/4.0/. • Você é livre para: – Copiar, distribuir o material • Sobre as seguintes condições: – Atribuição de créditos: você deve fazer referência ao autor – Não-comercial: você não deve usar este material para propósitos comerciais – Não-Derivados: Se você criar trabalhos derivados deste, você não deve distribuí-lo. Termos de uso deste material (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 3
  • 4. Cronograma do Curso • Introdução • Mostra de Aplicativos • Foco no Android • API do Android • Execução das Aplicações • Primeiros Contatos:  Preparando o ambiente de desenvolvimento Android com Eclipse – Passo a Passo  Ciclo de vida de uma Activity  Criando o primeiro projeto Android  Estrutura básica de um projeto Android  Criando Máquina Virtual usando o AVD Manager  Executando o primeiro “Hello World”  Apresentando a IDE e Interagindo com a Máquina Virtual 4Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015
  • 5. Cronograma do Curso • Gerenciadores de Layout • AbsoluteLayout • LinearLayout • RelativeLayout • FrameLayout • TableLayout • ScrollView 5Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015 • Roteiro Android(Dia 2): • Widgets – Componentes de Interface • Views • TextView • EditText • ImageView • ScaleTypes • Button • CheckBox • Spinner • RadioGroup
  • 6. Cronograma do Curso • Roteiro Android(Dia 3): • Listas e adaptadores • Menu • ActionBar • Arquivo Manifest.xml • Arquivos em Android • Adicionando bibliotecas Externas 6Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015
  • 7. Cronograma do Curso • Roteiro Android(Dia 4): • Notificações • Intents • Passagem e recebimento de objetos entre Activities • Introdução à SQLite • Introdução aos Provedores de Conteúdo 7Minicurso Básico de Android – Thales Levi / UFMA(28/05 – 03/07)/2015
  • 8. Minicurso Básico de Android – 1º Dia Thales Levi Azevedo Valente
  • 10. Plataformas Mobile Populares (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 10
  • 11. • Plataforma Mobile Open Source • Código aberto e distribuído sob licença Apache 2.0, ou seja, códigos-fonte acessíveis. http://source.android.com • Mantido pela Open Handeset Alliance (OHA) – Aliança entre diversas empresas para criar padrões abertos para telefonia móvel. • Android domina 84,6% do mercado global de smartphones. (Pesquisa realizada no segundo trimestre 2014 pela Strategy Analytics) Foco no Android (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 11
  • 12. • Baseado em Linux, com desenvolvimento iniciado em 2003 pela empresa Android Inc. • 2005 - foi adquirida pela Google • 2007 - surgiu a Open Handset Alliance – associação de empresas com a missão de desenvolver uma plataforma móvel: – Completa – Aberta – gratuita • 2007 - lançamento da versão beta do Android SDK Foco no Android (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 12
  • 13. API do Android (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 13 D o w n - T o p
  • 14. • Camada onde se encontram os drivers de hardware. • Provê serviços essenciais (segurança, rede, gerenciamentoo de memória e processos, abstração do hardware para outras camadas) • Versão modificada do core do Linux 2.6. Exemplos de modificações: – Binder: permite que um processo possa chamar uma rotina em outro processo – OOM (Out-of-Memory Handler): termina processos quando há falta de memória – Ashmem e pmem: gerenciadores de memória compartilhada com melhor suporte à dispositivos com pouca capacidade de memória Camada Vermelha - Linux Kernel (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 14
  • 15. • Bibliotecas responsáveis por: – Intermediar acesso ao display. – Suporte aos diferentes formatos mídia (aúdio, vídeo, imagens). – Gráficos 2D e 3D. – Banco de Dados. Camada Verde - Bibliotecas (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 15
  • 16. • Bibliotecas do núcleo Java (Core Libraries) e MVD (Máquina Virtual Dalvik), otimizada para consumir pouca memória. • Aplicações são executadas em sua própria instância de MV. • Utiliza arquivos .dex gerados a partir das classes Javas compiladas • Os .dex e todos os recursos da aplicação são então “empacotados” em um arquivo .apk. Podem ser encontrados na pasta bin do projeto Camada Amarela – Tempo de execução (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 16 .class .class.class .dx tool .dex .apk . recursos
  • 17. • Cada aplicação possui sua própria instância de máquina Dalvik, ou seja, são executadas de forma segura e isoladas das demais. • Mas o que isso quer dizer? – Nenhuma aplicação pode acessar recursos de outra aplicação – Nenhuma aplicação pode acessar diretamente recursos do sistema (contatos, sensores, rede) sem que o usuário explicitamente autorize Execução das Aplicações (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 17 Sistema MVD n-2 Aplicação n-2 MVD n Aplicação n MVD n-1 Aplicação n-1 MVD n-3 Aplicação n-3
  • 18. • Conjunto de componentes que oferecem serviços para aplicações. Exemplos: – Gerenciador de Pacotes: mantém registro das aplicações instaladas. – Gerenciador de Activities: gerencia o ciclo de vida das Activities e organiza-as em pilhas. – Provedor de Conteúdos: Compartilhamento de dados entre aplicações. – Gerenciador de Recursos: provê acesso a tudo que faz parte do aplicativo que não seja código (XML, mídias, arquivos) – Gerenciador de Notificações: permite que uma aplicação notifique o usuário sobre algum evento através de vibração, piscar de leds, tocar algum som ou mostrar um ícone na barra de status Camada Azul 1 – Framework de Aplicações (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 18
  • 19. • Camada de interação entre o usuário e o dispositivo. Nela se encontram os aplicativos. Exemplos: – Cliente de e-mail – Aplicativos de mensagens – Gerenciadores de contatos – Calendário – Mapas – Navegador Camada Azul 2 –Aplicações (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 19
  • 20. • Android encoraja o desenvolvimento em alto nível; • Android usa Java como a principal linguagem de programação; • Herda classes básicas do Java padrão: – String, Container, Math, IO e Network • Adiciona novas classes especificas para dispositivos móveis: – Camera, Telephony, Map, Speech Considerações (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 20
  • 21. Preparando o ambiente de desenvolvimento Android – Passo a Passo
  • 22. • Java Runtime Environment (JRE) para a versão do seu sistema (32/64 bits). • Java Development Kit (JDK) para a versão do seu sistema (32/64 bits). • Baixar e descompactar a IDE Eclipse ADT Bundle com o Android SDK para a versão de seu sistema(32/64 bits). • http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html • http://downloads.puresoftware.org/files/android/adt-bundle/ Baixe e instale os seguintes itens (os mais atuais preferencialmente): (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 22
  • 23. Página de download do JRE. Baixe o JRE no site da Oracle e instale em sua máquina. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 23
  • 24. Página de download do JDK. Baixe o JDK no site da Oracle e instale em sua máquina (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 24
  • 25. Página de download do Eclipse ADT Baixe a IDE Eclipse ADT no site da Google. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 25
  • 26. Descompacte a IDE Elipse ADT e o Android SDK (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 26
  • 27. Tela de escolha do workspace Abra o Eclipse e escolha o seu workspace (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 27
  • 28. Figura X. Página de download do Eclipse ADT Tela inicial da IDE Elipse ADT Logo após, o Eclipse carregará e abrirá sua tela de interface. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 28
  • 29. Verificaremos se o diretório do SDK está correto. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 29 Tela inicial da IDE Elipse ADT
  • 30. Clique em “Browse” para selecionar o diretório, caso queira mudar (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 30 Tela da opção preferências do Eclipse ADT
  • 31. Navegue até o diretório do sdk e clique em “OK” (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 31 Tela da opção preferências do Eclipse ADT
  • 32. Clique no botão “Apply” para aplicar a mudança de diretório. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 32 Tela da opção preferências do Eclipse ADT
  • 33. Serão listadas todas as APIs instaladas em seu SDK. Finalize clicando no botão “OK” (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 33 Tela da opção preferências do Eclipse ADT
  • 34. Fechando o Eclipse ADT Caso apareçam estes erros, apenas reinicie o eclipse e serão resolvidos. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 34
  • 35. Figura X. Página de download do Eclipse ADT Tela inicial do Elipse ADT Abriremos o SDK Manager apertando este botão Logo após, o Eclipse carregará e abrirá sua tela de interface. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 35
  • 36. • É um gerenciador de pacotes do SDK com um UI para iteração com usuário. • O SDK nada mais é que o kit de desenvolvimento para Android, contendo bibliotecas e ferramentas de desenvolvimento necessários para construção, teste e debug de aplicativos para Android. O que é o SDK Manager ? (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 36
  • 37. Inicialização do Android SDK Inicialização do Android SDK (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 37
  • 38. Instalar os Tools, de preferência os mais atualizados por questões de compatibilidade com as APIs (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 38
  • 39. • SDK Tools: – Dalvik Debug Monitor Server (ddms): rede, memória utilizada, logcat, explorador de arquivos, captura de tela, informações sobre o disp. – Hierarchy Viewer: mostra a hierarquia dos layouts. – Mksdcard: cria imagem de disco para usar com sdcard no emulador • SDK Platform Tools: – Adb: comunicação em linha de comando entre o user e dispositivos – Sqlite3: dá acesso a arquivos Sqlite criados e usados no Android • SDK Build Tools: requerido para geração de código O que são estes 3 itens? (exemplos) (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 39
  • 40. Exemplo de uso do ADB – instalação de APKs externos no AVD • Abra o CMD • Mude para o diretório do Android sdkplatform – tools • Execute o comando adb install “...diretório opencvapkapk conforme seu emulador” • Espere instalar e feche o CMD • Aparecerá um novo Aplicativo no emulador: OpenCV Manager • OBS: deve haver apenas um AVD inicializado e quaisquer dispositivos Android não deve está conectado no computador em modo de debug. Caso falhe por falta de conexão com o ADB, reinicie o emulador e o Eclipse, para reiniciar o processo do ADB. (28/05 – 03/07)/2015 40Minicurso Básico de Android – Thales Levi / UFMA
  • 41. A mais recente API é necessária para se utilizar as bibliotecas de compatibilidade. Instale mesmo que não a use (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 41
  • 42. Depois, instale suas APIs preferenciais. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 42
  • 43. Selecionaremos essa API por ainda ser muito utilizada por uma parte do mercado (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 43
  • 44. Extras necessários para utilização das bibliotecas de compatibilidade e usar um smartphone para teste direto do aplicativo (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 44
  • 45. • SDK Platform: kit de desenvolvimento para plataforma específica • ...System Images: tipos de emulador com seus respectivos processadores. Emuladores são utilizados para executar aplicativos • Android Support Repository e Android Support Libraries: necessários para utilização de bibliotecas de compatibilidade. • Google USB driver: necessário para utilização de aparelhos físicos ao invés de emuladores. O que marcamos? (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 45
  • 46. Ao clicar no botão instalar, aceite os termos de compromisso e clique em instalar (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 46
  • 47. As bibliotecas serão baixadas e o SDK Manager será reiniciado. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 47
  • 48. Ciclo de vida de uma Activity
  • 49. • Representa uma simples tela com interface com o usuário • Um programa Android inicia com uma Activity assim como programas Java/C iniciam com uma Main() • Tem um ciclo de vida bem definido • Se uma Activity não estiver em primeiro plano, ela pode ser destruída pelo sistema caso haja falta de memória. O que é uma Activity ? (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 49
  • 50. • Gerenciadas em pilha -> Activity Manager • Quando uma Activity é iniciada, esta vai para o topo da pilha. Gerência de Activities New ActivityRunning Activity Activity 1 Activity 2 Activity n-1 Last Running Activity Activity n-3 Free ActivityStack (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 50
  • 51. • OnCreate(): – o sistema o chama ao criar a Activity (Componente “mãe” de GUI) – Nele deve ser chamado setContentView()para definir o layout. – É executada somente uma vez durante a “vida” do aplicativo • OnStart(): – Chamado quando a Activity é visível para o usuário. • OnResume(): – Chamado quando o aplicativo irá interagir com o usuário Principais métodos: (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 51
  • 52. • OnPause(): – É o primeiro método a ser chamado quando a Activity perde o foco (uma outra Activity vem à frente, mas a primeira não deixa de ser visível). – Mudanças feitas pelo usuário devem ser salvas neste ponto (ex: mudanças no provedor de conteúdo, como contatos, mídias, etc), animações devem ser paradas, sensores, etc.. – Deve ser executada rapidamente, pois a próxima Activity só será só “ganhará a tela” quando este método for finalizado. Principais métodos: (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 52
  • 53. • onStop(): – Quando chamado, o aplicativo não é mais visível para o usuário. – Por algum motivo, um outro aplicativo foi colocado no topo da pilha • onDestroy(): – Destruição da Activity – Pode tanto ser chamada em código, quanto o sistema pode fazê-lo caso precise de memória • onRestart(): – Chamado quando o aplicativo volta ao primeiro plano. Principais métodos: (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 53
  • 54. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 54
  • 55. • Tempo de vida inteiro: – Ocorre entre onCreat() e onDestroy() • Tempo de vida visível: – Ocorre entre onStart() e onStop() – A Activity está visível, mas não está em primeiro plano. • Tempo de vida em primeiro plano: – Ocorre ente onResume() e onPause() – A Activity está a frente de todas as outras e interagindo com o usuário. Loops chaves do ciclo de vida (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 55
  • 56. Criando o primeiro projeto Android
  • 57. Selecione a opção de criação de novo projeto. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 57
  • 58. Escolha o nome do projeto, pacote, aplicação e APIs mínima, máxima e de compilação do projeto (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 58
  • 59. Deixe como está, apenas “dê next” (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 59
  • 60. Tela de customização do ícone. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 60
  • 61. Tela de escolha do esqueleto inicial da primeira tela de seu aplicativo. Selecionaremos a tela vazia. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 61
  • 62. Definiremos os nomes da classe principal e do arquivo de layout dela (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 62
  • 63. Projeto criado. Ignore estes erros, se ocorrerem. São bugs da IDE. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 63
  • 64. Porque foram criados 2 projetos?
  • 65. • O primeiro projeto é uma biblioteca de compatibilidade. Ela está localizada no Android SDK e selecionamos ela no SDK. • Esta biblioteca necessita da API mais atual (no momento, a API 22 - Android 5.1). Tanto ela quanto o seu projeto devem ter esta API como API de compilação ou haverá erros tanto na linkagem, quanto a biblioteca acusará erros de falta de recursos (classes java ou arquivos xml de layouts) Porque foram criados dois projetos? (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 65
  • 66. Estrutura básica de um projeto Android
  • 67. Estrutura básica de um projeto Android (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 67 Pasta, pacotes e classes Adicionais (arquivos) Linka Xmls e classes java (gerado automaticamente Bibliotecas .jars Informações sobre o aplicativo Códigos gerados Versão de Compilação
  • 68. Estrutura básica de um projeto Android (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 68 240 dpi Definições de layout de menus Definições de layout de telas Recursos para versões especíificas 120 dpi 160 dpi 480 dpi 320dpi Definições de dimensões Definições de strings Definições de estilos de views
  • 69. Estrutura básica de um projeto Android (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 69 Classe principal Sempre chamado na criação de uma Activity Setando o layout
  • 70. Estrutura básica de um projeto Android (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 70 “organizador” View usada para texto Espaço ocupado Espaçamento de margem String que aparecerá para o usuário
  • 71. Criando Máquina Virtual usando o AVD Manager
  • 72. Abriremos o AVD Manager apertando este botão Abrindo o AVD Manager (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 72
  • 73. Aba 1- Android Virtual Devices (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 73 Tela inicial do AVD Manager
  • 74. Dispositivos Virtuais Android disponíveis. Também podem ser criados outros Aba 2- Devices Definitions (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 74
  • 75. Tela de criação de definição de um dispositivo (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 75 Tela de criação de dispositivos virtuais. Especificam-se características de tela, sensores, câmeras, etc.
  • 76. Tela de criação de Máquina Virtual (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 76 Tela de criação de máquina virtual.
  • 77. Máquina virtual criada pronta para ser inicializada (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 77
  • 78. Máquina virtual criada pronta para ser inicializada (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 78 Desmarcar essa opção para que fique maior a tela
  • 79. Máquina virtual inicializada (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 79
  • 80. Executando o primeiro “Hello World”
  • 81. Executando o primeiro projeto (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 81
  • 82. Aplicativo HelloWorld (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 82
  • 83. • Quando for lançado um nível de API mais recente, você terá de atualizar também os tools no SDK Manager, eventualmente, além das bibliotecas de compatibilidade. • Após as etapas anteriores, reinicie o Eclipse. Talvez você também, eventualmente, poderá ter que atualizar o Plugin ADT presente no Eclipse. • Você não é obrigado a fazer atualizações. Tudo funcionará normal caso não faça. • Nunca faça atualizações sem ter um backup de seus recursos !!!! ( IDEs, SDK, etc) Considerações (adicionado dia 04-06-15) (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 83
  • 84. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 84 Dúvidas ?
  • 85. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 85 Até a próxima !
  • 86. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 86 • As imagens utilizadas foram adquiridas, em maior parte, através de screenshots da tela do computador do próprio autor deste material. • As imagens especificadas abaixo foram adquiridas através da ferramenta de pesquisa de imagens da google https://images.google.com/. Todos os créditos referente a elas são dados aos locais selecionados através de tal ferramenta. Se você é autor e deseja que as imagens sejam removidas, entre em contato e será feito. http://www.appschopper.com/blog/wp-content/uploads/2013/03/Be-the-Pro-with-Best-Books-for-Android-Application-Development- Banner.jpg http://radixsmartclass.in/radixtemp/wp-content/uploads/2013/03/android_on_android_classroom_control.jpg http://vamsystems.com/Images/ContentImages/2015/1/android-banner.jpg http://3.bp.blogspot.com/-sRZob5WYyes/UzU7MkCOR0I/AAAAAAAACx4/sAlM8OIRrnQ/s1600/android-app-banner.png http://hd.wallpaperswide.com/thumbs/android_green_background-t2.jpg http://4.bp.blogspot.com/-OOXne6FICPk/VSGOCJtMm2I/AAAAAAAAABQ/ScOC2wFsnJU/s1600/android.png http://www.androidcentral.com/sites/androidcentral.com/files/postimages/108579/bugdroid-salute-cropped.png Referências
  • 87. (28/05 – 03/07)/2015 Minicurso Básico de Android – Thales Levi / UFMA 87 • LECHETA, R. R. (2010). Google Android. 2a edição, São Paulo, Novatec • BRAHLER, S. Analysis of the android architecture. Karlsruher Intitute of Technology, Germany, 2010. • KHAN, S., KHALID, S. H., NAUMAN, M., KHAN, S., and ALAM, M. Analysis report on android application framework and existing security architecture. Technical report, Security Engineering Research Group, Pakistan, 2010. • ANDROID DEVELOPERS. Disponível em: <http://developer.android.com/develop/index.html.>. Acesso em: abril de 2015. • ELINUX. Disponível em: <http://elinux.org/Android_Portal>. Acesso em: março de 2015. • IDC. Smartphone OS Market Share, Q3 2014. Disponível em <http://www.idc.com/prodserv/smartphone-os-market-share.jsp>. Acesso em: dezembro de 2014. Referências