A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

+ Curso de Android 19ª Jornada de Cursos. + Apresentação Luiz Felipe de Oliveira Libório 23 anos; Graduação em Ciência da Computação – UFPE – 2011.1;

Apresentações semelhantes


Apresentação em tema: "+ Curso de Android 19ª Jornada de Cursos. + Apresentação Luiz Felipe de Oliveira Libório 23 anos; Graduação em Ciência da Computação – UFPE – 2011.1;"— Transcrição da apresentação:

1 + Curso de Android 19ª Jornada de Cursos

2 + Apresentação Luiz Felipe de Oliveira Libório 23 anos; Graduação em Ciência da Computação – UFPE – ; 1 ano de experiência com a plataforma: Testes manuais e automáticos; Manutenção de scripts de testes; Usuário Android há 1 ano: Android 1.5; Android 2.1 e 2.2.

3 + 1. Introdução

4 + Android Android é um sistema operacional mobile que roda sobre um núcleo Linux; Foi inicialmente desenvolvido pelo Google e posteriormente pela Open Handset Alliance Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile e Nvidia; A Google é a responsável pela gerência do produto e engenharia de processos.

5 + Android O primeiro telefone comercialmente disponível a rodar no sistema Android foi o HTC Dream, lançado a 22 de outubro de 2008; 12 milhões de linhas de código, das quais 3 milhões em XML; 2.8 milhões de linhas de C; 2.1 milhões de linhas de código Java; 1.75 milhões de linhas de código em C++;

6 + Android OK. Linux... Google... Mas por que eu iria querer desenvolver aplicações para Android?? Mais de 200 milhões de dispositivos ativados ( por DIA); 137 países e regiões; Somente no terceiro trimestre de 2011, os usuários baixaram 2.4 BILHÕES de aplicações para os seus Androids.

7 + Android SDK O Android SDK (Software Development Kit) permite o desenvolvimento e teste de aplicações.; Fornece ferramentas para a comunicação do computador com um dispositivo Android; Suporte a várias versões do Android.

8 + Android SDK Instalação Requisitos mínimos: Eclipse Indigo (3.7); JDK 7. Baixar a versão.zip

9 + ADT – Plug-in para Eclipse O ADT (Android Development Tools) é um plug-in para o Eclipse que foi projetado para fornecer um ambiente poderoso para desenvolvimento de aplicativos para Andriod.

10 + ADT – Plug-in para Eclipse Prover um rápido setup de novos projetos Android, além de: criar interfaces gráficas para aplicações; adicionar componentes de acordo com a API do Andriod; debugar os aplicativos; exportar o resultado disso na extensão padrão do Android (.apk) para distribuição da mesma.

11 + ADT – Plugin para Eclipse Help > Install New Software...

12 + ADT – Plug-in para Eclipse

13 + Window > Android SDK Manager SDK Tools; SDK Platform-tools; Android platforms; Google APIs by Google Inc.; USB Driver for Windows; Baixar os arquivos referentes à versão da plataforma Uso nos exemplos; Tempo necessário para fazer o download de todos.

14 + ADT – Plugin para Eclipse Window > AVD Manager

15 + Criando um projeto Android New > Project > Android > Android Project

16 + Criando um projeto Android Nome da aplicação Nome que vai aparecer no menu de aplicações do Android e no Android Market; Nome do pacote – Nome do processo a ser gerenciado pelo Android; Nome da Activity Inicialmente, pense como o nome que aparecerá na janela do aplicativo;

17 + Estrutura de um projeto Android

18 + Pasta src/: Inclui o pacote para a aplicação, que no exemplo é br.ufpe.cin.android.myapk. R.java: O ADT cria esse arquivo automaticamente e representa as constantes necessárias para acessar diversos recursos da aplicação Android. MyApkActivity.java: Implementação da classe principal da aplicação.

19 + Estrutura de um projeto Android Bibliotecas de referência (Android ): Contém o arquivo android.jar, que é o arquivo da classe de runtime do Android, localizado no Android SDK. Pasta res/: Contém os recursos para a aplicação, incluindo: Ícones (por exemplo, o arquivo ic_laucher.png); Arquivos de layout (o arquivo main.xml); Strings (o arquivo strings.xml), que contém as constantes ligadas à strings.

20 + Estrutura de um projeto Android AndriodManifest.xml Descritor de implementação da aplicação de exemplo. Contém uma descrição mais detalhada da aplicação do que a que é encontrada no arquivo main.xml.

21 + Simulador

22 +

23 +

24 + Observações importantes: Os passos mostrados acima devem ser feitos para todos os projetos criados; É necessário criar uma AVD para cada tipo de projeto; Mesmo que seja Android e Google APIs 2.3.3! Todas as aplicações contidas no workspace que foram executadas no mesmo AVD são carregadas quando o simulador é iniciado.

25 + 2. A plataforma

26 + Sobre a plataforma

27 + Activity A classe Activity é uma parte importante de um ciclo de vida de uma aplicação Android, e a maneira como as Activities são lançadas e interagem entre si é parte fundamental do modelo de aplicação da plataforma. Uma Activity é um componente simples, que o usuário pode dispor livremente. Interação com o usuário; A classe Activity pode ser associada à criação de uma janela no qual o desenvolvedor pode colocar a GUI da aplicação.

28 + Activity Geralmente, uma Acitivity é apresentada para o usuário como uma janela full-screen, mas ela também pode ser usada de outras formas: como janelas flutuantes; dentro de outra Activity. Ela possui dos métodos que devem ser implementados por todas as suas subclasses: onCreate(Bundle): é onde a Activity é iniciada. onPause(): é chamando quando o usuário deixa a aplicação.

29 + Service Um Service é um componente de aplicação representando tanto uma operação de longa duração, quanto oferecendo uma funcionalidade suplementar para outras aplicações. Estas tem um tempo de vida igual ao do serviço ao qual estão ligadas. Muitas confusões sobre a classe Service são resolvidas sabendo-se o que ela não representa: Um Service não é um processo separado. O objeto em si não executa ações num processo próprio. Um Service não é uma thread. Não é recomendado usar um Service para realizar algum trabalho fora da thread principal.

30 + Service Um Service, no entanto, é algo bastante simples, fornecendo duas funcionalidades principais: Um meio para a aplicação informar ao sistema algo que ela quer que seja executado em background. Isso corresponde a chamar o método Context.startService(), que pede ao sistema para alocar ações para o Service, para ser executado enquanto este ou outro componente o termine. Uma facilidade para uma aplicação compartilhar alguma de suas funcionalidades com outras aplicações. Isto corresponde a chamar o método Context.bindService(), que permite uma conexão entre aplicações para que haja a interação entre estas.

31 + Intent Um Intent é uma descrição abstrata de uma operação que será executada. lançar uma Acitivity comunicação com um Service que está executando em background. Um Intent provê uma facilidade para fazer uma ligação tardia entre códigos de diferentes aplicações.

32 + Intent O uso mais significativo disto é no lançamento de Activities, onde um Intent pode ser considerado como um intermediário entre duas Activities. Estrutura de dados passiva mantendo uma descrição abstrata de uma ação a ser realizada.

33 + Content Providers Content Providers armazenam e retornam dados, e fazem estes serem acessíveis a todas as aplicações. O único meio de compartilhar dados entre aplicações; No Android não há uma área de armazenamento comum onde todos os pacotes Android possam acessar estes dados. Um Content Provider NÃO persiste dados.

34 + Content Providers O Android é embarcado com um determinado número de Content Providers para tipos pré-definidos de dados Arquivos de mídia; Informações de contatos Etc... Se o desenvolvedor quiser tornar os dados de suas aplicações visíveis a outras, ele tem duas opções: criar seu próprio Content Provider (como uma subclasse de ContentProvider.java); adicionar os dados a um Provider existente (observando sempre o tipo do dado armazenado, para não haver erros de tipo).

35 + Widgets São os componentes da interface da aplicação. Botões; Imagens; Textos; Layouts; Etc...

36 + Notifications Representa o quão persistente é uma notificação que será apresentada ao usuário. Uma notificação na barra de status adiciona um ícone na barra de status do sistema (com uma mensagem de texto opcional), e uma mensagem na tela de notificações. Quando o usuário seleciona a notificação, o Android dispara um Intent definido na instância do objeto Notification (em geral para lançar uma Activity). É possível ainda configurar a notificação para emitir sons, vibrar o dispositivo ou acender uma luz.

37 + Notifications Uma notificação na barra de status deve ser usada para qualquer caso em que um serviço rodando em background precise alertar sobre um evento que requer alguma intervenção direta do usuário. Um serviço rodando em background nunca deve lançar uma Activity por ele mesmo, nem mesmo através de um Intent, se para isto for necessária a interação com o usuário. Em vez disto, o serviço deve criar uma notificação que irá lançar a Activity quando selecionada pelo usuário.

38 + Resources Gerencia o acesso a um ou mais recursos de aplicação, estando no topo do controle de ativos da aplicação. Um ativo significa algum elemento compartilhado por uma estrutura, que precisa ser acessados por um ou mais componentes desta. Além disso, se comporta como uma API de alto nível para acesso aos dados tipificados desses ativos.

39 + Resources O sistema de recursos do Android mantém um registro de todo ativo que não seja código associado a uma aplicação. A classe Resources é utilizada para acessar esses recursos. As ferramentas do Android SDK compilam os recursos da aplicação no arquivo binário da aplicação em tempo de construção.

40 + Resources Para usar o recurso, este deve estar no local correto da hierarquia de classes (isto é, dentro da pasta res/) e, a cada mudança nesse diretório, o projeto deve ser construído. Então, durante essa construção as ferramentas do SDK geram símbolos para cada recurso, que podem ser referenciados no código da aplicação.

41 + Resources Utilizar recursos de aplicação torna mais fácil a atualização de várias características de uma aplicação sem modificar o código-fonte, e, provendo um conjunto de recursos alternativos, otimizar a aplicação para uma variedade de configurações de dispositivos

42 + R.java A classe R.java funciona como uma lista indexada, onde todos os recursos do projeto estão definidos. Esta classe é usada como um atalho para referenciar os recursos da pasta res no código.

43 + R.java Essa função da classe se torna bastante útil quando estamos utilizando uma IDE que contém um recurso de auto complemento de código (Como o Ctrl+Space do Eclipse). Isto torna muito mais rápida e interativa a localização da referência que o desenvolvedor procura. Além disto, quando o desenvolvedor adiciona outros recursos ao projeto, a classe R.java é alterada para manter as referências atualizadas.

44 + 3. Componentes de Tela

45 + TextView e EditText Exibe um texto para o usuário e, opcionalmente, permite a edição do mesmo. Uma TextView é um editor de texto completo, mas a classe básica não permite edição. Para isto, é usada a EditText, que é uma extensão do TextView. O funcionamento dos dois componentes será explicado em detalhes na seção seguinte.

46 + Gallery Uma view que mostra itens no centro da tela, com scroll horizontal. A view Gallery possui valores default, mas estes podem ser configurados de acordo com a necessidade da aplicação.

47 + Button Representa um widget que o usuário pode pressionar ou clicar para realizar uma ação.

48 + Listeners Um listener é uma interface em uma View que contém um método que retorna um comportamento. Este método é chamado pelo Android em resposta à determinada interação do usuário com a GUI da aplicação. onClick() De View.OnClickListener. É chamado quando o usuário apenas toca no item da tela, ou coloca o foco com as setas de navegação e toca o enter no teclado.

49 + Listeners onLongClick() De View.OnLongClickListener. É chamado quando o usuário toca e pressiona um item da tela ou coloca o foco com as setas de navegação e toca e pressiona o enter no teclado. O tempo padrão de ativação é de 1 segundo. onFocusChange() De View.OnFocusChangeListener. É chamado quando o usuário coloca ou tira o foco de algum item. onKey() De View.OnKeyListener. É chamado quando o usuário tem o foco sobre algum item da tela e pressiona alguma tecla do dispositivo.

50 + Listeners onTouch() De View.OnTouchListener. É chamado quando o usuário realiza qualquer ação que caracterize um toque na tela, independente da duração. A única condição é que seja dentro da região que delimita o item. onCreateContextMenu() De View.OnCreateContextMenuListener. É chamado quando um menu de context é exibido (como resultado de um toque longo na tela).

51 + Listeners O método onClick dos exemplos acima não possuem retorno, embora alguns métodos de callback possuam. A razão para o retorno depende do evento em si. onLongClick() e onKey() – Retornam um booleano que indica se o desenvolvedor se o evento foi concluído ou se ainda nao foi. Isto é, retorna true para indicar que o evento foi tratado e pode ser encerrado; retorna falso se ele não foi tratado e/ou deve continuar para algum outro listener. onTouch() – Retorna um booleano que indica que o evento foi tratado. É importante notar que este evendo pode ter muitas ações que se sucedem. Sendo assim, se o retorno for false quando a ação de tocar estiver sendo iniciada, isso indica que o evento ainda não foi concluído e que as ações subsequentes não importam no contexto.

52 + RadioGroup e RadioButton Um radio button é um botão com dois estados possíveis: marcado ou não-marcado. Quando o radio button não está marcado, o usuário pode pressioná-lo ou clicar sobre ele para marcar. Não é possível ao usuário remover a marcação de um radio button, uma vez feita. Radio buttons são geralmente usados juntos em um Radio Group. Quando alguns radio buttons são colocados em um grupo, marcar um dos membros desmarca outro, se este estiver selecionado.

53 + RadioGroup e RadioButton Inicialmente, todos os radio buttons estão desmarcados. É impossível desmarcar um radio button arbitrariamente, mas pode-se desmarcar todos ao mesmo tempo. A seleção é indicada através do id único definido no XML layout.

54 + Checkbox Um checkbox é um tipo específico de botão de dois estados que pode ser marcado ou não-marcado. A diferença de um checkbox e um radio button é que o checkbox pode ser marcado e desmarcado pelo usuário, sem que isso afete outros checkboxes.

55 + ImageView Exibe uma imagem arbitrária, como um ícone. A classe ImageView pode carregar imagens de várias fontes (como ContentProviders), cuidar da computação das medidas da imagem, para então esta poder ser utilizada em algum layout, oferece vários efeitos de visualização, como redimensionamento e coloração.

56 + ImageButton Exibe um botão com uma imagem no lugar do texto, que pode ser pressionado ou clicado pelo usuário. Por padrão, um ImageButton parece um Button, com um background que muda a cor de acordo com o estado do botão.

57 + ImageButton A imagem na superfície do botão é definida através do atributo android:src no XML do elemento ou pelo setImageResource(int) method. Podemos associar uma imagem diferente a cada um dos diferentes estados do botão (selecionado, com o foco, etc).

58 + Spinner Uma View que exibe um elemento de uma lista de elementos e permite ao usuário escolher entre eles. Os itens no Spinner vêm do Adapter associado a ele.

59 + ListView Uma view que mostra os itens em uma lista vertical, permitindo o scroll entre estes elemente. Os itens vêm do ListAdpater associado a esta view.

60 + Adapters Um adapter é um objeto que atua como uma ponte entre uma AdapterView e os dados que compõem essa view. Ele também é responsável por fazer a View para cada item no conjunto de dados.

61 + Alert Um Alerta é, geralmente, uma pequena janela que aparece em cima de uma Activity. A Activity perde o foco e o alerta aceita toda a interação do usuário. Alertas são normalmente usados para notificações que devem interromper o uso e para realizar alguma tarefa que direciona algo relacionado com a aplicação em uso. A classe Dialog é a classe básica para criação de alertas. Porém, o desenvolvedor não deve instanciar uma classe Dialog diretamente.

62 + Alerts AlertDialog Um alerta que pode ter nenhum, um, dois ou três botões e/ou uma lista de itens selecionáveis, que inclui checkboxes ou radio buttons. ProgressDialog Um alerta que exibe uma barra de progresso. Como é uma subclasse de AlertDialog, ela pode ter botões. DatePickerDialog Um alerta que permite ao usuário selecionar uma data. TimePickerDialog Um alerta que permite ao usuário selecionar a hora.

63 + Toast Uma Toast é uma view que contém uma mensagem curta e rápida para o usuário. Quando a view é mostrada ao usuário, aparece como uma view flutuante sobre a aplicação. Ela nunca vai receber o foco. O usuário pode estar até interagindo com algum widget. A idéia do Toast é ser um mínimo intrusivo possível. Exemplos disso são o controle de volume, ou uma mensagem informando que as configurações foram salvas. A maneira mais simples de utilizar essa classe é chamar algum dos métodos estáticos que retornam um objeto Toast.

64 + Atributos XML São atributos que definem a aparência dos widgets em um determinado layout, bem como como eles são identificados no código durante o desenvolvimento. Eles será discutidos com mais detalhes na seção seguinte.

65 + 4. Propriedades e eventos dos componentes trabalhados

66 + Ação e Estilo Precisamos conhecer como podemos implementar as ações que desejamos que nossas aplicações realizem. Isso é feito através de um ou mais eventos Bem como dos seus respectivos Listeners. Queremos também moldar a aparência dos componentes da nossa aplicação. Para isso, são usadas as propriedades do widget.

67 + Widget TextView PropriedadeEm XMLEm JavaDescrição Text android:text setText(CharSequence c) Nessa propriedade, você define o texto a ser exibido na tela. Text color android:textColor setTextColor(Color c) Nessa propriedade, você define a cor de texto. Backgroundandroid:backgrou nd setBackGroundColor(Co lor c) Nessa propriedade, você define o cor de fundo do componente exibido. Valor: # até #FFFFFF.

68 + Widget TextView PropriedadeEm XMLEm JavaDescrição Text size android:textSize setTextSize(float tamanho) ou setTextSize(int unidade, int tamanho) Define o tamanho do texto. O tamanho da fonte pode ser especificado em várias notações : px (pixels),sp(scaled-pixels), mm(milímetros), in (polegadas) e etc. Typeface android:typeface setTypeface(Typeface fonte) Essa propriedade serve para definir uma fonte ao texto (normal,sans,serif,monospace).

69 + Widget TextView Método do evento EventoMétodos de callback Descrição setOnClickListener OnClickListener onClick(View v) Esse evento é disparado toda vez que o componente for clicado, disparando o método onClick.

70 + Widget EditText PropriedadeEm XMLEm JavaDescrição Capitalize android:capitalize-Essa propriedade serve para definir o tipo capitalização das palavras. Por padrão, o valor e none(nenhum). Os possíveis valores para essa propriedade são : words,sentences e characters Password android:password -Com essa propriedade você habilita a digitação de senhas. O valor padrão desse atributo é false. Hint estiver vazia. android:hint setHint(CharSequence c) define uma mensagem que aparecerá quando a EditText

71 + Widget EditText PropriedadeEm XMLEm JavaDescrição Text android:text setText(CharSequence c) Nessa propriedade, você define o texto a ser exibido na tela. Text color android:textColor setTextColor(Color c) Nessa propriedade, você define a cor de texto. Backgroundandroid:backgrou nd setBackGroundColor(Co lor c) Nessa propriedade, você define o cor de fundo do componente exibido. Valor: # até #FFFFFF. Text size android:textSize setTextSize(float tamanho) ou setTextSize(int unidade, int tamanho) Define o tamanho do texto. O tamanho da fonte pode ser especificado em várias notações : px (pixels),sp(scaled-pixels), mm(milímetros), in (polegadas) e etc.

72 + Widget EditText Método do evento EventoMétodos de callback Descrição setOnClickListener OnClickListener onClick(View v) Esse evento é disparado toda vez que o componente for clicado, disparando o método onClick. setOnKeyListener OnKeyListener onKey(View v,int KeyCode, KeyEvent event) Esse evento é disparado toda vez que a tecla é acionada, disparando o método onKey. setOnFocusChangeLi stener OnFocusChangeLis tener onFocusChange (View v, boolean hasFocus) Esse método é disparado toda vez quando um componente EditText ganha ou perde foco.

73 + Widget Button PropriedadeEm XMLEm JavaDescrição Text android:text setText(CharSequence c) Nessa propriedade, você define o texto a ser exibido na tela. Text color android:textColor setTextColor(Color c) Nessa propriedade, você define a cor de texto. Text size android:textSize setTextSize(float tamanho) ou setTextSize(int unidade, int tamanho) Define o tamanho do texto. O tamanho da fonte pode ser especificado em várias notações : px (pixels),sp(scaled- pixels), mm(milímetros), in (polegadas) e etc. Typeface android:typeface setTypeface(Typeface fonte) Essa propriedade serve para definir uma fonte ao texto (normal,sans,serif,monospace).

74 + Widget Button Método do evento EventoMétodos de callback Descrição setOnClickListener OnClickListener onClick(View v) Esse evento é disparado toda vez que o componente for clicado, disparando o método onClick. setOnKeyListener OnKeyListener onKey(View v,int KeyCode, KeyEvent event) Esse evento é disparado toda vez que a tecla é acionada, disparando o método onKey.

75 + Widgets Checkbox/RadioButton PropriedadeEm XMLEm JavaDescrição Text android:text setText(CharSequence c) Nessa propriedade, você define o texto a ser exibido na tela. Text color android:textColor setTextColor(Color c) Nessa propriedade, você define a cor de texto. Checkedandroid:checkedsetChecked(boolean estado) Nessa propriedade você define o estado do CheckBox, se estará marcado (true) ou não (false).

76 + Widgets Checkbox/RadioButton Método do evento EventoMétodos de callback Descrição setOnClickListener OnClickListener onClick(View v) Esse evento é disparado toda vez que o componente for clicado, disparando o método onClick. setOnCheckedChangeL istener OnCheckedChangeLi stener onCheckedCh anged (CompoundBu tton cb,boolean b) Esse evento será disparado toda vez que o estado do CheckBox for modificado, ou seja, marcado ou desmarcado, disparando o método onCheckedChanged.

77 + Widgets Spinner / ListView PropriedadeDescrição setAdapter(SpinnerAdapter a) Nesse método você define os elementos que irão compor esse componente através de um vetor (array). int getSelectedPosition() Essa função retorna a posição do elemento selecionado. Por exemplo, se for o primeiro elemento, retorna 0, se for o segundo, retorna 1 e assim sucessivamente. Object getItemAtPosition(int posicao) Retorna em um tipo Object o elemento de uma determinada posição, passada como parâmetro Object getSelectedItem() Essa função retorna em um tipo Object, o item selecionado.

78 + Widgets Spinner / ListView Método do evento EventoMétodos de callback Descrição setOnClickListener OnClickListener onClick(View v) Esse evento é disparado toda vez que o componente for clicado, disparando o método onClick. setOnItemClickList ener OnItemClickListe ner onItemClick (AdapterView a, View v, int I, long l) Esse evento será disparado toda vez que um derminado item for clicado, disparando o método onItemClick. setOnItemSelect edListener onNothingSelected( AdapterView av) OnItemSelecte dListener onItemSelected(Ada pterView av, View v,int posição,long id) Esse evento será disparado toda vez que um determinado item for selecionado, disparando o método onItemSelected.

79 + Widget ImageView PropriedadeEm XMLEm JavaDescrição Src android:src setImageResource(int Id) Nessa propriedade, você define a imagem que será exibida na tela. PropriedadeDescrição setAdapter(SpinnerAdapter a) Nesse método você define os elementos que irão compor esse componente através de um vetor (array). Método do evento EventoMétodos de callback Descrição setOnClickListener OnClickListener onClick(View v) Esse evento é disparado toda vez que o componente for clicado, disparando o método onClick.

80 + Widget Gallery PropriedadeDescrição setAdapter(SpinnerAdapter a) Nesse método você define os elementos que irão compor esse componente através de um vetor (array). Método do evento EventoMétodos de callback Descrição setOnClickListener OnClickListener onClick(View v) Esse evento é disparado toda vez que o componente for clicado, disparando o método onClick. setOnItemClickList ener OnItemClickListe ner onItemClick (AdapterView a, View v, int I, long l) Esse evento será disparado toda vez que um derminado item for clicado, disparando o método onItemClick.

81 + O que foi visto até agora: 1. Introdução 2. A plataforma 3. Componentes de Tela 4. Propriedades e eventos dos componentes trabalhados


Carregar ppt "+ Curso de Android 19ª Jornada de Cursos. + Apresentação Luiz Felipe de Oliveira Libório 23 anos; Graduação em Ciência da Computação – UFPE – 2011.1;"

Apresentações semelhantes


Anúncios Google