Você está na página 1de 55

GET UPDATE Introduo ao Android

Tudo o que voc precisa saber para iniciar o aprendizado sobre a plataforma ANDROID. Por : Ricardo Sutana de Mello

Departamento de Cincia da Computao

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

O que o ANDROID ?
Android

uma plataforma composta de sistema operacional, middleweres e um conjunto de aplicativos; Baseado no ncleo do Linux;

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

O que eu preciso para programar para Android ?


Pacincia; Curiosidade;

Programao

Orientada a Objetos; Programao em Java;

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

Android ADT(21.1.0)
Eclipse

+ ADT Plugin Android SDK Tools Android Plataforms Tools Ultima atualizao Android Emulador

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

Mercado Android:

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

Prospeco (2016):

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

Verses lanadas:

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

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

Primeiros passos Hello World:


File>New>Android

Application Project

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

Primeiros passos Hello World:

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Project Name: Package Name: Minimim Tequired SDK: Target SDK: Compile With: Theme:

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

10

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Nome da aplicao que aparecer na Play Store; Project Name: Package Name: Minimim Tequired SDK: Target SDK: Compile With: Theme:

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

11

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Nome da aplicao 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 cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

12

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Nome da aplicao 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 cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

13

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Nome da aplicao que aparecer na Play Store Project Name: Nome que sera utilizado dentro do eclipse Package Name: Identificador nico do aplicativo Minimim Tequired SDK: Nvel mais baixo de configurao suportada; Target SDK: Compile With: Theme:

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

14

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Nome da aplicao que aparecer na Play Store Project Name: Nome que sera utilizado dentro do eclipse Package Name: Identificador nico do aplicativo Minimim Tequired SDK: Nvel mais baixo de configurao suportada Target SDK: Nivel mais alto da API que seu cdigo ser testado; Compile With: Theme:

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

15

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Nome da aplicao que aparecer na Play Store Project Name: Nome que sera utilizado dentro do eclipse Package Name: Identificador nico do aplicativo Minimim Tequired SDK: Nvel mais baixo de configurao suportada Target SDK: Nivel mais alto da API que seu cdigo ser testado; Compile With: Nivel da API que seu cdigo ser testado; Theme:

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

16

Mini Curso Android Bsico

Primeiros passos Hello World:


Aplication Name: Nome da aplicao que aparecer na Play Store Project Name: Nome que sera utilizado dentro do eclipse Package Name: Identificador nico do aplicativo Minimim Tequired SDK: Nvel mais baixo de configurao suportada Target SDK: Nivel mais alto da API que seu cdigo ser testado; Compile With: Nivel da API que seu cdigo ser testado; Theme: Tema oferecido para sua aplicao;

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

17

Estrutura do Projeto

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

18

src

Pasta do projeto que contm todas as classes java necessrias. MainActivity.java foi criada pelo Wizard no incio do projeto.

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

19

gen

A pasta gen contm a classe R.java que gerada automaticamente e permite que a aplicao acesse qualquer recurso como arquivos e imagens, utilizando as constantes da classe R.java.

OBS: NUNCA ALTERAR MANUALMENTE A CLASSE R.java

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

20

assets

Arquivos opcionais, como por exemplo uma fonte customizada, estes arquivos so acessveis ao programador

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

21

libs

Bibliotecas criadas fora do android devero ser inseridas nesta pasta

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

22

res

dedicado ao armazenamento de recursos (arquivos de layout, imagens, animaes e xml contendo valores como strings, arrays e etc) acessveis atravs da classe R;

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

23

Android Virtual Device

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

24

Android Virtual Device

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

25

Android Virtual Device

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

26

Android Virtual Device

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

27

Hello World

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

28

WIDGETS

Um widget um componente de uma interface grfica de usurio (GUI)

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

29

LinearLayout android.widget.LinearLayout

Este tipo de layout organiza os widgets de forma linear, podendo ser na horizontal ou vertical.
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width= android:layout_hight= android:orientation= > . <TextView . android:id="@+id/letreiro" . android:layout_width="wrap_content" </LinearLayout> 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" />

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

30

RelativeLayout - android.widget.RelativeLayout

Layout extremamente poderoso, pois consegue posicionar qualquer widget esquerda, direita, acima ou abaixo de outro widget qualquer.

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


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" /> 31

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

TextView - android.widget.TextView

Simplesmente apresenta um texto na tela

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

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

32

EditText android.widget.EditText

Utilizada para o usurio digitar informaes em um campo de texto.


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

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

33

Button android.widget.Button

Adiciona um boto ao aplicativo para realizar alguma ao necessita da implementao na classe MainActivity.java do metodo onClick.
<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"/>

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

34

Spinner

android.widget.Spinner

Exibe para o usurio 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

<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>Funcionrio</item> <item>Visitante</item> <item>Outros</item> </string-array>

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

35

Outros componentes grficos

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

36

Exemplo

Para este primeiro exemplo, vamos criar uma activity onde o usurio insere seu nome e clica em um boto. File>Import>Existing Android Code Into Workspace
Selecione Refresh Selecionar Finish

o diretrio raiz arquivo Exemplo

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

37

Activitys

Toda activity uma classe de sua aplicao 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 mtodos que indicam seu estado atual. So eles: onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart() e onDestroy().
v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides
38

39

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

Intents android.content.Intent

A Intent uma mensagem que a aplicao envia para o sistema operacional Uma Intent uma AO
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);

Integrao entre aplicaes


v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides
40

Intents - android.content.Inten t

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

41

Intents - android.content.Intent

Composio 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 ao uma string que de fine o que deve ser realizado. Existem diversas aes genricas no Android, disponibilizadas como constantes na classe Intent. Alguns exemplos de constantes so:

Ao

ACTION_CALL ACTION_VIEW

Dados

Os dados de uma Intent so representados atravs de uma URI e a partir dela a aplicao decide o que deve ser feito.
v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides
42

Intents - android.content.Intent

Composio das Intents


Informaes

extras

As informaes extras so quaisquer outros dados necessrios para que o componente execute a ao apropriadamente. A categoria, representada apenas por uma string, serve como informao adicional para auxiliar o Android na escolha de qual componente o mais adequado para receber a Intent.

Categoria

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

43

Exemplo uso de intents

Agora implementaremos nosso exemplo anterior e integraremos as intents na aplicao. 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 cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides
44

Criando o novo Layout

File>New>Android XML File.

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

45

Criando o novo Layout

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>
v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides
46

Criando a Activity: SaudacaoActivity.java

File>New>Class

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

47

Criando a Activity: SaudacaoActivity.java

File>New>Class
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

public class SaudacaoActivity extends Activity {

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)); } } v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides
48

Alterando o Layout da Activity principal


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/and roid"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margi n" android:paddingLeft="@dimen/activity_horizontal_margi n" android:paddingRight="@dimen/activity_horizontal_marg in" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/titulo" /> </LinearLayout> <EditText android:id="@+id/nomeEditText" android:layout_width="match_parent"

android:layout_height="wrap_content"
android:inputType="textPersonName"> <requestFocus/> </EditText>

android:layout_gravity="center"
android:text="@string/textoBotao" android:onClick="surpresa"/>

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

49

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 cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

50

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">Introduao ao Android</string>

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

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

51

Alterando a AndroidMainifest.xml

Vamos apenas inserir este trecho de cdigo, 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 cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

52

LogCat

No Android no h como imprimir mensagens no console via System.out.println( ). Todas as mensagens so exibidas em forma de log
NIVEL Debug Verbose Info Informao Warm Alerta Error Erro SIGLA D V I W E COR AZUL PRETO VERDE LARANJA VERMELHO

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

53

LogCat

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

54

Obrigado pela presena!

v em cabealho e rodap para editar esta seo e aplicar automaticamente em todos os slides

55

Você também pode gostar