Top Banner
Departamento de Ciência da Computação Tudo o que você precisa saber para iniciar o aprendizado sobre a plataforma ANDROID. Por : Ricardo Sutana de Mello GET UPDATE – Introdução ao Android vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides
55

Mini Curso - Android

Nov 27, 2015

Download

Documents

Ricardo Sutana
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mini Curso - Android

Departamento de

Ciência da Computação

Tudo o que você precisa saber para iniciar o

aprendizado sobre a plataforma ANDROID.

Por : Ricardo Sutana de Mello

GET UPDATE – Introdução ao Android

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides

Page 2: Mini Curso - Android

Mini Curso – Android Básico

O que é o ANDROID ?

Android é uma plataforma composta de sistema

operacional, middleweres e um conjunto de aplicativos;

Baseado no núcleo do Linux;

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 2

Page 3: Mini Curso - Android

Mini Curso – Android Básico

O que eu preciso para programar para Android ?

Paciência;

Curiosidade;

Programação Orientada a Objetos;

Programação em Java;

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 3

Page 4: Mini Curso - Android

Mini Curso – Android Básico

Android ADT(21.1.0)

Eclipse + ADT Plugin

Android SDK Tools

Android Plataforms Tools

Ultima atualização Android

Emulador

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 4

Page 5: Mini Curso - Android

Mini Curso – Android Básico

Mercado Android:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 5

Page 6: Mini Curso - Android

Mini Curso – Android Básico

Prospecção (2016):

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 6

Page 7: Mini Curso - Android

Mini Curso – Android Básico

Versões lançadas:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 7

Fonte:

http://developer.android.com/about/dashboards/index.html

Page 8: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

File>New>Android Application Project

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 8

Page 9: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 9

Page 10: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name:

Project Name:

Package Name:

Minimim Tequired SDK:

Target SDK:

Compile With:

Theme:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 10

Page 11: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name: Nome da aplicação que aparecerá na Play Store;

Project Name:

Package Name:

Minimim Tequired SDK:

Target SDK:

Compile With:

Theme:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 11

Page 12: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name: Nome da aplicação que aparecerá na Play Store

Project Name: Nome que sera utilizado dentro do eclipse;

Package Name:

Minimim Tequired SDK:

Target SDK:

Compile With:

Theme:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 12

Page 13: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name: Nome da aplicação que aparecerá na Play Store

Project Name: Nome que sera utilizado dentro do eclipse

Package Name: Identificador único do aplicativo;

Minimim Tequired SDK:

Target SDK:

Compile With:

Theme:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 13

Page 14: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name: Nome da aplicação que aparecerá na Play Store

Project Name: Nome que sera utilizado dentro do eclipse

Package Name: Identificador único do aplicativo

Minimim Tequired SDK: Nível mais baixo de configuração suportada;

Target SDK:

Compile With:

Theme:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 14

Page 15: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name: Nome da aplicação que aparecerá na Play Store

Project Name: Nome que sera utilizado dentro do eclipse

Package Name: Identificador único do aplicativo

Minimim Tequired SDK: Nível mais baixo de configuração suportada

Target SDK: Nivel mais alto da API que seu código será testado;

Compile With:

Theme:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 15

Page 16: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name: Nome da aplicação que aparecerá na Play Store

Project Name: Nome que sera utilizado dentro do eclipse

Package Name: Identificador único do aplicativo

Minimim Tequired SDK: Nível mais baixo de configuração suportada

Target SDK: Nivel mais alto da API que seu código será testado;

Compile With: Nivel da API que seu código será testado;

Theme:

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 16

Page 17: Mini Curso - Android

Mini Curso – Android Básico

Primeiros passos “Hello World”:

Aplication Name: Nome da aplicação que aparecerá na Play Store

Project Name: Nome que sera utilizado dentro do eclipse

Package Name: Identificador único do aplicativo

Minimim Tequired SDK: Nível mais baixo de configuração suportada

Target SDK: Nivel mais alto da API que seu código será testado;

Compile With: Nivel da API que seu código será testado;

Theme: Tema oferecido para sua aplicação;

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 17

Page 18: Mini Curso - Android

Estrutura do Projeto

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 18

Page 19: Mini Curso - Android

src

Pasta do projeto que contém todas as classes java

necessárias. MainActivity.java foi criada pelo

Wizard no início do projeto.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 19

Page 20: Mini Curso - Android

gen

A pasta gen contém a classe R.java que é gerada

automaticamente e permite que a aplicação acesse

qualquer recurso como arquivos e imagens,

utilizando as constantes da classe R.java.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 20

OBS: NUNCA ALTERAR

MANUALMENTE A

CLASSE R.java

Page 21: Mini Curso - Android

assets

Arquivos opcionais, como por exemplo uma fonte

customizada, estes arquivos são acessíveis ao

programador

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 21

Page 22: Mini Curso - Android

libs

Bibliotecas criadas fora do android deverão ser

inseridas nesta pasta

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 22

Page 23: Mini Curso - Android

res

dedicado ao armazenamento

de recursos (arquivos de

layout, imagens, animações e

xml contendo valores como

strings, arrays e etc) acessíveis

através da classe R;

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 23

Page 24: Mini Curso - Android

Android Virtual Device

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 24

Page 25: Mini Curso - Android

Android Virtual Device

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 25

Page 26: Mini Curso - Android

Android Virtual Device

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 26

Page 27: Mini Curso - Android

Android Virtual Device

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 27

Page 28: Mini Curso - Android

Hello World

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 28

Page 29: Mini Curso - Android

WIDGETS

Um widget é um componente de uma interface

gráfica de usuário (GUI)

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 29

Page 30: Mini Curso - Android

LinearLayout – android.widget.LinearLayout

Este tipo de layout organiza os widgets de forma

linear, podendo ser na horizontal ou vertical.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 30

<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width=“ ” android:layout_hight=“ ” android:orientation=“ ” > . . . </LinearLayout>

<TextView android:id="@+id/letreiro" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:drawableTop="@drawable/letreiro" android:onClick="selecionarOpcao" android:text="@string/letreiro" android:textColor="#FFFFFF" android:textStyle="bold" />

Page 31: Mini Curso - Android

RelativeLayout - android.widget.RelativeLayout

Layout extremamente poderoso, pois consegue

posicionar qualquer widget à esquerda, àdireita,

acima ou abaixo de outro widget qualquer.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 31

<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width=“ ” android:layout_hight=“ ” > . . . </RelativeLayout>

<TextView android:id="@+id/letreiro" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:layout_marginTop="80dp" android:clickable="true" android:drawableTop="@drawable/letreiro" android:onClick="selecionarOpcao" android:text="@string/letreiro" android:textColor="#FFFFFF" android:textStyle="bold" />

Page 32: Mini Curso - Android

TextView - android.widget.TextView

Simplesmente apresenta um texto na tela

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 32

<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/titulo“ />

Page 33: Mini Curso - Android

EditText – android.widget.EditText

Utilizada para o usuário digitar informações em um

campo de texto.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 33

<EditText android:id="@+id/nomeEditText" android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textPersonName"> <requestFocus /> </EditText>

Page 34: Mini Curso - Android

Button – android.widget.Button

Adiciona um botão ao aplicativo para realizar

alguma ação necessita da implementação na classe

MainActivity.java do metodo onClick.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 34

<Button android:id="@+id/saudacaoButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/surpreenda_me" android:onClick="surpreenderUsuario"/>

Page 35: Mini Curso - Android

Spinner - android.widget.Spinner

Exibe para o usuário uma lista de itens dos quais ele só pode

selecionar um (combobox, dropdown..) Os itens listados devem

ser colocados em um arraylist no arquivo strings.xml

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 35

<Spinner android:id="@+id/categoria" android:layout_width="match_parent" android:layout_height="wrap_content" android:prompt="@string/categoria" >

<string-array name="categoria"> <item>Aluno</item>ì <item>Professor</item> <item>Funcionário</item> <item>Visitante</item> <item>Outros</item> </string-array>

Page 36: Mini Curso - Android

Outros componentes gráficos

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 36

Page 37: Mini Curso - Android

Exemplo

Para este primeiro exemplo, vamos criar uma

activity onde o usuário insere seu nome e clica em

um botão.

File>Import>Existing Android Code Into Workspace

Selecione o diretório raiz

Refresh

Selecionar arquivo Exemplo

Finish

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 37

Page 38: Mini Curso - Android

Activitys

Toda activity é uma classe de sua aplicação que

controla os eventos de uma tela.

Cada activity deve ser obrigatoriamente declarada

no AndroidManifest.xml. Para isso basta usar a tag: <activity android:name=".MyActivity"/>

É composto por 7 métodos que indicam seu estado

atual. São eles:

onCreate(), onStart(), onResume(), onPause(), onStop(),

onRestart() e onDestroy().

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 38

Page 39: Mini Curso - Android

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 39

Page 40: Mini Curso - Android

Intents – android.content.Intent

A Intent é uma mensagem que a aplicação envia

para o sistema operacional

Uma Intent é uma AÇÃO Intent intent = new Intent(this,ClasseAtividade.class);

startActivity(intent);

ou

Uri uri = Uri.parse("http://www.ufjf.br/getcomp");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(Intent);

Integração entre aplicações

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 40

Page 41: Mini Curso - Android

Intents - android.content.Inten t

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 41

Page 42: Mini Curso - Android

Composição das Intents

Nome do Componente

De•finido pelo nome completo da classe e o nome do pacote defi•nido no

AndroidManifest.xml que representamos o componente que deve ser o

encarregado de tratar a Intent.

Ação

A ação é uma string que de•fine o que deve ser realizado. Existem diversas

ações genéricas no Android, disponibilizadas como constantes na classe

Intent. Alguns exemplos de constantes são:

ACTION_CALL

ACTION_VIEW

Dados

Os dados de uma Intent são representados através de uma URI e a partir

dela a aplicação decide o que deve ser feito.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 42

Intents - android.content.Intent

Page 43: Mini Curso - Android

Composição das Intents

Informações extras

As informações extras são quaisquer outros dados necessários para que o

componente execute a ação apropriadamente.

Categoria

A categoria, representada apenas por uma string, serve como informação

adicional para auxiliar o Android na escolha de qual componente é o mais

adequado para receber a Intent.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 43

Intents - android.content.Intent

Page 44: Mini Curso - Android

Exemplo uso de intents

Agora implementaremos nosso exemplo anterior e

integraremos as intents na aplicação.

1) Criar o novo Layout

2) Criar a classe responsavel pela nova Activity

3) Alterar o Layout da Activity principal

4) Alterar a classe MainActivity.java para que as

intents sejam utilizadas.

5) Alterar o Strings.xml

6) Alterar o AndroidManifest.xml para este permitir o

uso das intents criadas.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 44

Page 45: Mini Curso - Android

Criando o novo Layout

File>New>Android XML File.

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 45

Page 46: Mini Curso - Android

Criando o novo Layout

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 46

File>New>Android XML File.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/mensagemTextView"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

</LinearLayout>

Page 47: Mini Curso - Android

Criando a Activity: SaudacaoActivity.java

File>New>Class

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 47

Page 48: Mini Curso - Android

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 48

File>New>Class

public class SaudacaoActivity extends Activity {

public final static String EXTRA_NOME_USUARIO = "Exemplo12.EXTRA_NOME_USUARIO";

public static final String ACAO_EXIBIR_SAUDACAO = "Exemplo12.ACAO_EXIBIR_SAUDACAO";

public static final String CATEGORIA_SAUDACAO ="Exemplo12.CATEGORIA_SAUDACAO";

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.saudacao);

TextView saudacaoTextView = (TextView)findViewById(R.id.mensagemTextView);

Intent intent = getIntent();

if(intent.hasExtra(EXTRA_NOME_USUARIO)){

String saudacao = getResources().getString(R.string.saudacao);

saudacaoTextView.setText(saudacao + " " + intent.getStringExtra(EXTRA_NOME_USUARIO));

}

}

}

Criando a Activity: SaudacaoActivity.java

Page 49: Mini Curso - Android

Alterando o Layout da Activity principal

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity"

android:orientation="vertical">

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="@string/titulo" />

<EditText

android:id="@+id/nomeEditText"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:inputType="textPersonName">

<requestFocus/>

</EditText>

<Button

android:id="@+id/button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="@string/textoBotao"

android:onClick="surpresa"/>

</LinearLayout>

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 49

Page 50: Mini Curso - Android

Alterando a MainActivity.java public class MainActivity extends Activity {

private EditText nomeEditText;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

this.nomeEditText = (EditText) findViewById(R.id.nomeEditText);

}

public void surpresa(View v){

Intent intent = new Intent(SaudacaoActivity.ACAO_EXIBIR_SAUDACAO);

intent.addCategory(SaudacaoActivity.CATEGORIA_SAUDACAO);

String texto = nomeEditText.getText().toString();

intent.putExtra(SaudacaoActivity.EXTRA_NOME_USUARIO,texto);

startActivity(intent);

}

}

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 50

Page 51: Mini Curso - Android

Alterando a Strings.xml <?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">Exemplo2</string>

<string name="action_settings">Settings</string>

<string name="menu_settings">Settings</string>

<string name="title_activity_main">MainActivity</string>

<string name="titulo">Introduçao ao Android</string>

<string name=“textoBotao">Enviar</string>

<string name="saudacao">Bem Vindo ao GetUpdate </string>

</resources>

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 51

Page 52: Mini Curso - Android

Alterando a AndroidMainifest.xml

Vamos apenas inserir este trecho de código, entre a tag <aplication>...</aplication>

<activity

android:name="br.edu.ufjf.getupdate.SaudacaoActivity">

<intent-filter >

<action android:name="Exemplo12.ACAO_EXIBIR_SAUDACAO"/>

<category android:name="Exemplo12.CATEGORIA_SAUDACAO"/>

<category android:name="android.intent.category.DEFAULT"/>

</intent-filter>

</activity>

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 52

Page 53: Mini Curso - Android

LogCat

No Android não há como imprimir mensagens no

console via System.out.println(“ ”).

Todas as mensagens são exibidas em forma de log

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 53

NIVEL SIGLA COR

Debug D AZUL

Verbose V PRETO

Info – Informação I VERDE

Warm – Alerta W LARANJA

Error – Erro E VERMELHO

Page 54: Mini Curso - Android

LogCat

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 54

Page 55: Mini Curso - Android

Obrigado pela presença!

vá em cabeçalho e rodapé para editar esta seção e aplicar automaticamente em todos os slides 55