Buscar

AULA 07 - ANDROID - PARTE I

Prévia do material em texto

1 
INTRODUÇÃO A PLATAFORMA 
ANDROID 
 
 
2 
O QUE É O ANDROID? 
 
 
3 
Plataforma de desenvolvimento para aplicativos móveis como 
smartphones e tablets e contêm um sistema operacional baseado em 
Linux e adotou-se a linguagem Java para desenvolver as aplicações e 
jogos, usufruindo de todos os recursos. Também possível usar C++ e 
novo suporte é para a linguagem Kotlin. 
 
O QUEM CRIOU O ANDROID? 
 
 
4 
O QUEM CRIOU O ANDROID? 
 
 
5 
Ele foi inicialmente desenvolvido pela Android Inc. E depois o Google 
comprou (2005) e posteriormente foi para Open Handset Alliance – 
OHA. 
OHA – É um grupo formado pelos os gigantes do mercado da telefonia 
de celulares liderados pelo Google. 
HTC – LG – MOTOROLA – SAMSUNG – SONY – ERICSON – TOSHIBA – 
INTEL – ASUS – DELL- ACER. 
 
 Hoje é a Alphabet! 
 
Configuração do Ambiente 
6 
Para iniciar o desenvolvimento de aplicações para Android, é 
necessário instalar o SDK, que contém o emulador e todas as 
ferramentas necessárias para o desenvolvimento. 
 
A IDE que será utilizada é o eclipse por isso para se ter o ambiente 
completo basta realizar o download do ADT Bundle que venho com o 
eclipse, SDK e o ADT (plugin eclipse) configurado. 
 
Link para download: 
http://moodleesvnemesio.info/version7D/node/20 
Plataforma – Versão Android 
7 
Como existem vários celulares Android no mercado, é possível que 
cada um deles tenha uma versão diferente do sistema operacional. 
 
No Android, uma versão do sistema operacional é conhecida como 
plataforma. Então podemos dizer que existem diversão plataformas 
diferentes do Android (1.0, 1.1, 1.5 e etc...) 
API LEVEL 
8 
Cada plataforma tem um código identificador, chamado de API Level a 
lista mostra a relação delas e cada plataforma: 
API Level 8: Corresponde a Plataforma do Android 2.2 Froyo 
API Level 9: Corresponde a Plataforma do Android 2.3 Gingerbread 
API Level 10: Corresponde a Plataforma do Android 2.3.3 
API Level 11: Corresponde a Plataforma do Android 3.0 Honeycomb 
API Level 12: Corresponde a Plataforma do Android 3.1 
API Level 13: Corresponde a Plataforma do Android 3.2 
API Level 14: Corresponde a Plataforma do Android 4.0 Ice Cream Sandwich 
API Level 15: Corresponde a Plataforma do Android 4.0.3 
API Level 16: Corresponde a Plataforma do Android 4.1 Jelly Bean 
API Level 17: Corresponde a Plataforma do Android 4.2 Jelly Bean 
API Level 18: Corresponde a Plataforma do Android 4.3 Jelly Bean 
API Level 19: Corresponde a Plataforma do Android 4.3 KitKat 
 
Instalando Plataforma 
9 
Recomenda-se que baixe a versão mais nova e mais antiga do Android. 
Por exemplo, há aparelhos com Android 2.2, isto é, API Level 8, logo se 
quiser deixar seu aplicativo compativel com a versão 2.2 voce deve 
baixar e referencia como versão mínima no seu projeto . 
Para realizar o download é necessário acessar o SDK Manager e marcar 
os checkboxes da versão que desejar instalar e na pasta extras marque 
SDK Platform-tools e fora marque o checkboxes dos seguintes itens: 
• Android Support Library – compatibilidade 3.x e 4.x - Fragments 
• Google Play Services – API de mapas 
• Google USB Driver – celular real no USB 
EMULADOR 
10 
Android Virtual Device (AVD) 
EMULADOR 
11 
Android Virtual Device (AVD) 
EMULADOR 
12 
Android Virtual Device (AVD) 
EMULADOR 
13 
Android Virtual Device (AVD) 
EMULADOR 
14 
Android Virtual Device (AVD) o que não dar para fazer com emulador: 
1. Acessar as redes das operadoras 
2. Encontrar Redes Wi-Fi 
3. Utilizar o bluetooth 
4. Sensores de Acelerômetro 
 
Estrutura do Projeto em Android 
15 
1. src - as classes do projeto 
2. gen – contém a classe R.java 
3. assets – arquivos opcionais: fontes costumizadas 
4. libs – inserir .jars 
5. res – contém recursos da aplicação, drawble, layout, menu e values 
5.1 drawable – contém as imagens da aplicação 
5.2 layout – contém os XML de layouts para construir telas 
5.3 menu – contém os XML que criam menus 
5.4 values – contém os XML para internacionalização e temas 
 
 
Classe R 
 
 
16 
Cada arquivo dentro da pasta res contém uma referência na classe R, 
que é automaticamente gerada pelo plug-in do Eclipse no pacote 
padrão definido para o projeto. 
 
Os arquivos são referenciados através de uma constantes dentro da 
classe R: 
public static final class drawable { 
 
 public static final int ic_launcher=0x7f020000; 
 
} 
 
Classe R 
 
 
17 
 
 
Para acessar algum recurso da pasta res dentro de uma Classe Java é 
necessário usar a Classe R.java. 
 
Por exemplo: para acessar: 
 public final class R { 
 public static final class drawable { 
 public static final int ic_launcher=0x7f020000; 
 } 
 } 
Vemos a imagem ic_launcher na classe java ela deve ser chamada 
assim: 
R.drawable.ic_launcher 
 
assets 
 
 
18 
 
 
É a pasta onde ficam arquivos de mídia que são usados na aplicação. 
Podem ser quaisquer tipos como vídeos, sons, imagens entre outros. 
Por exemplo, podemos colocar um game em HTML e chamar pelo 
endereço abaixo dentro do APP android: 
"file:///android_asset/index.html" 
 
libs 
 
 
19 
 
 
É a pasta onde podemos inserir arquivos .jars para serem adicionados 
ao classpath do projeto o android-support-v4.jar foi adicionado por 
padrão. 
android-support-v4.jar: classes de compatibilidade criadas no 
Android 3.x 
 
res - drawable 
 
 
20 
 
 
É a pasta de imagens no projeto Android. 
Existem pasta de imagem para cada resolução: 
• drawable-ldpi – QVGA (240X320) baixa resolução 
• drawable-mdpi – WVGA (320X480) média resolução 
• drawable-hdpi – WVGA (480X800) alta resolução 
 
Obs: Estas pastas não tem relação com o tamanho de tela, e sim com 
densidade e resolução da tela o tamanho da tela pode ser o mesmo, 
mas a quantidade de pixels que ela consegue exibir pode ser 
diferente. 
 
 
 
res - layout 
 
 
21 
 
 
• Pasta onde ficam os XMLs das telas 
Obs: Mas o Android permite criar telas diretamente pelo código-
fonte utilizando API Java. 
• Dentro de um XML existem 
componentes que é um Item Gráfico 
(widget) 
 
 
<TextView 
 
 android:layout_width="wrap_content" 
 
 android:layout_height="wrap_content" 
 
 android:text="@string/hello_world" 
/> 
LogCat 
 
 
22 
 
 
• Para vermos os logs no Android é necessário usar a classe 
android.util.Log que podemos ver os seguinte tipos de logs: 
 
 
NÍVEL SIGLA COR 
Debug D 
Verbose V 
Info I 
Warn W 
Error E 
23 
A seguir os passos para 
criar o projeto dessa 
pesquisa em ANDROID na 
IDE Eclipse 
Projeto - Android 
 
 
24 
Projeto - Android 
 
 
25 
Projeto - Android 
 
 
26 
Projeto - Android 
 
 
27 
Projeto - Android 
 
 
28 
Projeto - Android 
 
 
29 
RESULTADO 
 
 
30 
31 
ACTIVITY 
Activity 
 
 
32 
É a Tela da Aplicação, a classe que vai ser executada deve extender a 
Activity. 
Por padrão a primeira Activity é 
gerada no momento que 
criamos o Projeto Android. 
 
Activity 
 
 
33 
Quando é criada no momento da criação do projeto, a Activity se 
apresenta conforme abaixo: 
NÃO É OBRIGATÓRIO, PODEMOS DELETAR! 
É OBRIGATÓRIO, ELE É QUEM CRIA A TELA 
Método para desenhar a tela feita em XML 
Caminho da Tela em XML obtido pela classe R 
34 
XML 
Modificar a Tela do login.xml 
35 
Podemos criar a tela no 
Android usando XML. Por 
padrão essa telas ficam no 
diretório res/layout. A seguir 
vamos colocar novos códigos 
para essa tela. 
Modificar a Tela do login.xml 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:orientation="vertical" 
 android:padding="5dp"> 
 <TextView 
 android:id="@+id/txtLogin" 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:text="Usuário" /> 
 <EditText 
 android:id="@+id/edtUsuario" 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:ems="10" > 
 </EditText> 
 <TextView 
 android:id="@+id/txtSenha" 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:text="Senha" /> 
 <EditText 
 android:id="@+id/edtSenha" 
 android:layout_width="match_parent" 
 android:layout_height = "wrap_content" 
 android:ems="10" 
 android:inputType="textPassword" /> 
 <Button 
 android:id="@+id/btnEntrar" 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:onClick="logar" 
 android:text="Entrar" /> 
</LinearLayout> 
Observação: 
As propriedades: 
android:layout_width 
android:layout_height 
são obrigatórias em todos os 
componentes; 
 
Seus valores: 
 
 fill_parent match_parent 
Ocupa o tamanho do layout 
wrap_content 
Ocupa o tamanho necessário do 
componente 
Espaço entre a borda e o 
conteúdo. 
Padding 
ems 
Define a largura do EditText. 
Modificar a Tela do login.xml 
Observação: 
 
A propriedade: android:id serve 
para identificar os componentes 
para serem encontrado na 
Classe Java através do método: 
 findViewById(int) 
 
A propriedade: 
android:inputType serve para 
definir o tipo de entrada de 
daos, na nossa tela queremos 
que seja de senha, logo usamos: 
 “textPassword" 
 
Todo valor de um 
atributo devemos 
colocar “” aspas duplas. 
 
 
No componente Button usamos: 
android:onClick para 
chamar um método que 
atribuirmos a ele quando 
o botão for acionado. No 
caso seria o logar 
38 
CLASSE 
Login 
 
 
39 
package br.leitor.activity; 
import br.leitor.activity.R; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Toast; 
public class Login extends Activity{ 
 private EditText edtUsuario; 
 private EditText edtSenha; 
 @Override 
 protected void onCreate(Bundle savedInstanceState){ 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.login); 
 edtUsuario = (EditText) findViewById(R.id.edtUsuario); 
 edtSenha = (EditText) findViewById(R.id.edtSenha);} 
 public void logar(View view) { 
 if(edtUsuario.getText().toString().equalsIgnoreCase("uml")&&edtSenha.getText().toString().equalsIgnoreCase("uml")){ 
 Toast.makeText(this.getApplicationContext(), “Oi!", Toast.LENGTH_SHORT).show(); } 
 else{ 
 Toast.makeText(this.getApplicationContext(), "Senha Inválida!", Toast.LENGTH_SHORT).show(); 
 } 
 } 
} 
Logica da classe Login que é uma Activity. Validando usuário e senha 
com o valor: uml. 
40 
Onde está a main 
no Andorid? 
AndroidManifest.xml 
 
 
41 
Arquivo onde fica as configurações do app/game em android. E onde 
colocamos a main que executará a Acrivity que definirmos dentro 
dela: 
Definimos a main na Activity Login 
Devemos sempre add toda Acitivity que 
criarmos aqui nesse 
AndroidManifest.xml 
RESULTADO 
42 
43 
RESUMO 
Activity 
 
 
44 
1. É uma classe que deve herdar android.app.Activity; 
2. Responsavel por trata eventos na tela; 
3. Deve implementar o método onCreate; 
4. Chamar o método setContentView para definir a interface de 
usuario; 
5. Cada activity deve ser obrigatoriamente declarada no arquivo 
AndroidManifest.xml; 
6. Tem ciclo de vida 
 
 
 
 
 
AndroidManifest.xml 
 
 
45 
1. É a base da aplicação android; 
2. Deve ficar na Raiz; 
3. Comparado ao web.xml; 
4. É obrigatório que cada activity seja declarada nele; 
5. Tipos de permissões: 
 <uses-permission android:name="android.permission.INTERNET" /> 
 <uses-permission android:name="android.permission.READ_CONTACTS" /> 
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
 <uses-permission android:name="android.permission.VIBRATE" /> 
.... 
 
 
 
AndroidManifest.xml 
 
 
46 
<?xml version="1.0" encoding="utf-8"?> 
<manifest 
xmlns:android="http://schemas.android.com/apk/res/android" 
 package="com.example.activity“  PACOTE ÚNICO DO PROJETO 
 android:versionCode="1“  VERSÃO GOOGLE PLAY - PROGRAMADOR 
 android:versionName="1.0" >  VERSÃO GOOGLE PLAY - USUARIO 
 
 <uses-sdk 
 android:minSdkVersion="8“  VERSÃO MINIMIMA SUPORTADA 
 android:targetSdkVersion="17" />  VERSÃO DO BUILD 
 
 <application 
 android:allowBackup="true“  Se permite backup 
 android:icon="@drawable/ic_launcher“  Icone no home 
 android:label="@string/app_name“ nome do app no home 
 android:theme="@style/AppTheme" >  estilo do values 
AndroidManifest.xml 
 
 
47 
 <activity 
 android:name="com.example.activity.CicloActivity“  activity 
 android:label="@string/app_name" > 
 <intent-filter> filtro para executar activity 
 //indica que essa activity é será executada inicialmente 
 <action android:name="android.intent.action.MAIN" /> 
 //indica que essa activity pode ser executada no home 
 <category android:name="android.intent.category.LAUNCHER" /> 
 </intent-filter> 
 </activity> 
 </application> 
</manifest> 
48 
 INTENT 
 INTENT 
 
 
49 
 
 • Uma intent está presente em todos os lugares e representa uma mensagem da 
aplicação para o sistema operacional, solicitando que algo seja realizado, e 
representa um importante papel na arquitetura do Android para integrar 
diferentes aplicações. 
 
• Cabe ao sistema operacional interpretar essa mensagem e tomar as 
providências necessárias, que pode ser para abrir uma simples aplicação, fazer 
uma ligação para determinado número ou até abrir o browser em uma 
determinada página da internet. 
 INTENT 
 
 
50 
 
 
• Abrir uma tela 
Intent intent = new Intent(this, “alguma ação aqui”); 
startActivity(intent); 
• Fazer uma ligação 
Uri uri = Uri.parse("tel:"+telefone); 
/** 
 * Precisa de permissão: <uses-permission android:name="android.permission.CALL_PHONE"/> 
 */ 
Intent intent = new Intent(Intent.ACTION_CALL,uri); 
startActivity(intent); 
 
• Abrir o browser 
Uri uri = Uri.parse(endereco); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 
 
 INTENT 
 
 
51 
 
 
• Visualizar todos os contatos 
Uri uri = Uri.parse("content://com.android.contacts/contacts/"); 
Intent it = new Intent(Intent.ACTION_PICK,uri); 
startActivity(intent); 
 
52 
 MÉTODOS PARA ABRIR OUTRA 
ACTIVITY 
Métodos para Abrir outra Activity 
 
 
53 
 REFERÊNCIAS 
54 
Lecheta, R. R. Google Android – Aprenda a criar aplicações para 
dispositivos móveis com Android SDK. 3. ed. São Paulo: Novatec 
Editora. 2013

Continue navegando