O documento apresenta um minicurso sobre desenvolvimento de aplicativos para Android. A agenda inclui introdução ao Android, mercado e dispositivos, ambiente de desenvolvimento, exemplos simples de programação e conceitos como Activity, Layout, View e Intents.
3. Objetivo
• Apresentar os conceitos básicos para o
desenvolvimento de aplicativos para
dispositivos móveis utilizando Sistema
Operacional Android bem como informações
de mercado e curiosidades.
3
4. Agenda
• Introdução;
• Mercado e dispositivos;
• Ambiente de desenvolvimento;
• HelloWorld;
• Instalando API Demos;
• Conceitos básicos para desenvolvimento:
– Activity, ListActivity, ciclo de vida da Activity, Layout,
View e ViewGroup, Manifest, Resources, Intent;
• Exemplo – Lista de Estados brasileiros;
• Onde buscar mais informações;
4
5. Introdução
• O que é Android
– Sistema operacional para dispositivos móveis*;
– Código aberto (open-source);
– Grátis para quem quiser utilizar;
– Baseado em Linux;
5
6. Mercado
• 77%(2,17mi.) Tablets vendidos no Brasil em
2012 utilizam Android;
• + Tablets do que computadores em 2013;
• + 1mi. de aparelhos ativos por dia;
• + 1,5bi de downloads de apps por mês;
• 850mil de apps e 40bi de downloads de apps
(Abril);
6
17. Activity
• Geralmente representa uma tela na aplicação;
• É a interface gráfica com o usuário;
• Controla eventos;
• Uma aplicação possui uma ou mais Activities;
• Subclasses: ListActivity, MapActivity, …
17
18. Ciclo de vida de uma Activity
OnCreate
OnStart
OnResume
Executando
OnPause
OnStop
OnDestroy
OnRestart
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate");
}
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
…
18
20. ViewGroup - LinearLayout
• Utilizado para organizar os componentes na
vertical ou horizontal;
• Diferenciais:
– orientation;
– weight;
20
21. ViewGroup - RelativeLayout
• Permite posicionar um componente relativo a
outro componente;
• Diferenciais:
– alignParent;
– toRightOf;
– toLeftOf;
– below;
– above;
21
22. ViewGroup - ListView
• Mostra uma lista de itens com rolagem
vertical. Os itens da lista são automaticamente
inseridos na lista usando um Adapter*;
22
23. ViewGroup - GridView
• Mostra os itens divididos entre colunas e
linhas e possui rolagem vertical. Os itens da
lista são automaticamente inseridos na lista
usando um Adapter*;
23
24. View
• Representa os componentes visuais;
• Podem ser textos, campos de texto, botões,
imagens, caixa de seleção, vídeo, barra de
progresso, página de internet,…;
24
28. Acesso aos elementos do layout
• Utilizado para acessar os elementos do layout
na Activity;
• Utiliza-se o método findViewById(id);
• Necessário definir um “id” no elemento no
arquivo de layout xml.
No Layout XML:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=”OK” />
Na Ativity:
Button button =
(Button)findViewById(R.id.button);
28
29. Tratamento de eventos
• Interação com o usuário;
• Ex: clique no botão, selecionar uma opção no
menu,…;
button.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
executarAcao();
}
});
button.setOnLongClickListener( new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
executarAcaoLongClick();
return false;
}
}); 29
30. Exemplo Preencher Texto
• Criar um Layout adicionando um TextView,
EditText e um Button;
• Acessar os elementos do Layout na Activity;
• Capturar o evento de clique no Button e
preencher o TextView com o texto capturado
no EditText;
30
31. Adicionando uma nova Activity
• Criar uma nova Classe;
Clique com
botão direito
31
32. Adicionando uma nova Activity
A Classe herda de
Activity
Sobrescreve o
método onCreate
32
34. Adicionando uma nova Activity
• Registra a Classe no AndroidManifest.xml
Abrir aba
Application Clicar em Add... Adicionar nome da
Activity
34
35. Intent
• Representa a “intenção” da aplicação de
realizar determinada tarefa;
• O Sistema Operacional interpreta a intenção e
toma alguma ação;
35
36. Intent
• Utilizado para:
– Enviar uma mensagem para o Sistema
Operacional;
– Abrir uma nova tela da aplicação;
– Solicitar uma ligação;
– Abrir um site;
– Exibir algum endereço no mapa;
– Abrir o Google Play;
– E muito, muito mais …
36
37. Intents - Exemplos
//Abrir site
//Permissão: android.permission.INTERNET
Uri uri = Uri.parse("http://google.com");
Intent intent = new Intent( Intent.ACTION_VIEW, uri );
startActivity(intent);
//Realizar ligação
//Permissão: android.permission.CALL_PHONE
Uri uri = Uri.parse(”tel:98765432");
Intent intent = new Intent( Intent.ACTION_CALL, uri );
startActivity(intent);
//Abrir contato com ID 1
//Permissão: android.permission.READ_CONTACTS
Uri uri = Uri.parse(”content://com.android.contacts/contacts/1");
Intent intent = new Intent( Intent.ACTION_VIEW, uri );
startActivity(intent);
37
38. Intents - Exemplos
//Abrir uma nova tela
Intent intent = new Intent( MainActivity.this, SecondActivity.class );
startActivity(intent);
//Abrir uma nova tela com retorno de resultado
Intent intent = new Intent( MainActivity.this, SecondActivity.class );
startActivityForResult( intent, 1 );
38
39. Exemplo – Lista de Estados brasileiros
• Criar a primeira Activity que lista os Estados
brasileiros;
• Ao clicar em um Estado da lista é iniciado uma
segunda Activity com os detalhes referentes
ao Estado, como:
– Bandeira, nome, capital, sigla, região, PIB,
população, renda per capita e site;
39