Treinamento de Android
2
Conteúdo
 Afinal, o que é Android?
 Histórico de Versões
 Sensores
 Serviços
 Ferramentas
 Emulador
 Desenvolvimento de Aplicações
 Activities
 User Interface
3
Afinal, o que é Android?
 Sistema Operacional criado para utilização de aparelhos móveis com
capacidade razoável de poder de processamento e sensores periféricos
 Desenvolvido pela OHA – Open Handset Alliance
 Pensado originalmente para ser usado por Profissionais de Negócios
 Open source
 Linux based
 Mercado amplo
4
Versões
 1.0 e 1.1
 Android Market
 Navegador, Abas e Vídeos
 Suporte básico para câmera
 Salvar Anexos
 Adição de Comentários no Maps
5
Versões
 1.5 - Cupcake
 Melhorias na Interface Gráfica
 Widget de terceiros
6
Versões
 1.6 - Donut
 Salvar Anexos
 Comentários no Maps
 Comandos de Voz
7
Versões
 2.0 e 2.1- Eclair
 User Interface Redesign
 Múltiplas contas
 Recursos de câmera
 Maior resolução de tela
8
Versões
 2.2 - Froyo
 Melhorias no Navegador
 Hotspot Wi-Fi
 USB Tethering
 Flash
9
Versões
 2.3 - Gingerbread
 Interface renovada
 Múltiplas câmeras
 Giroscópio
 Barômetro
 NFC
10
Versões
 3.0 - Honeycomb
 UI Redesign
 Barra de sistemas
 Suporte multicore
 Tablets
11
Versões
 4.0 - Ice Cream Sandwich
 Customização de launcher
 Reconhecimento facial
 Gerenciamento de energia
 Melhorias no Teclado
 Notificações e Multitarefa
12
Versões
 4.1~4.3 - Jelly Bean
 Google Now
 Resolução 4k
 Photo Sphere
 Mapas Offline
 Melhorias nas Animações
13
Versões
 4.4.x - Kitkat
 Mudanças no app de ligações
 Seleção da “Runtime machine”
 Framework para impressão
 Transparência nas barras
14
Sensores
 Smartphones possuem diversos tipos de sensores e periféricos
 GPS
 Acelerômetro
 Câmera
 Barômetro
 Giroscópio
 Internet Móvel
15
Serviços
 Sincronização com Serviços do Google
16
Ferramentas
 Android Developer Tools Bundle – Eclipse – Java
 Android Studio – Intellij – Java
 Corona – Lua
 Titanium Appcelerator – Javascript
 Xamarin Studio – C#
 Desenvolvimento utilizando Java (Dalvik VM) ou C/C++ (NDK)
17
 SDK Manager
 AVD Manager
 DDMS
 LogCat
 Emulator
 Draw 9-patch
 Monkey
 ProGuard
 ZipAlign
 Hierarchy View
18
Ferramentas
 Principais recursos da plataforma:
 JUnit  Robotium
 Testes:
19
Ferramentas
 SDK Manager
20
Ferramentas
 AVD Manager
 Android Virtual Device
21
Ferramentas
 AVD Manager
 New AVD
22
Ferramentas
 AVD Manager
 Device Definitions
23
Ferramentas
 AVD Manager
 New Device
24
Ferramentas
 Logcat
 Log.d
 Log.e
 Log.i
 Log.v
 Log.w
25
Ferramentas
 Hierarchy View
26
Ferramentas
 Draw 9-patch
 image.9.png
27
Emulador
 O que é um Emulador?
28
Emulador
 Run Application
 Início - Home
 Menu – F2 ou Page Up
 Voltar - ESC
 Discador – F3
 Finalizar Chamada – F4
 Procurar – F5
 Desligar – F7
 Câmera – CTRL F3
 Landscape – CTRL F11
 Portrait – CTRL F12
 Rede do celular – F8
 Tela Cheia – Alt Enter
29
Emulador
 Atalhos
Desenvolvimento de Aplicações
 MVC
 Model
 View
 Controller
30
Desenvolvimento de Aplicações
 Estrutura de projeto:
 Activities
 Views
 Diretório Resources
 Drawables
 Layouts
 Menus
 Values
 Manifest
31
Desenvolvimento de Aplicações
 Manifest
 <action>
 <activity>
 <application>
 <intent-filter>
 <permission>
 <provider>
 <receiver>
 <service>
 <uses-sdk>
32
Desenvolvimento de Aplicações
 Views
 <Layout />
 <Button />
 <TextView />
 <ImageView />
 <RadioButton />
 <CheckBox />
 <DatePicker />
 <TimerPicker/ >
33
Exercício
34
1. Implementar um Hello World
2. Examinar o ciclo de vida da Activity
3. Avaliar estrutura do projeto
Activity
 Ciclo de Vida
 onCreate();
 onStart();
 onResume();
 onPause();
 onStop();
 onDestroy();
 onRestart();
35
Activity
36
 Ciclo de Vida
 Start
 onCreate();
 onStart();
 onResume();
 Stop
 onRestart();
 onStart();
 onResume();
Propriedades
 string.xml
 Permite a organização de mensagens da aplicação;
 Simplifica a internacionalização de aplicativos.
 R.java
 Gerado automaticamente com os IDs dos resources usados;
 Realiza o mapeamento entre xml (views e resources) com classes Java.
37
Propriedades
 Diretório RES
 Organiza imagens, strings, cores, dimensões e estilos.
 Assets
 Pasta para alocação de arquivos (.jar, .txt etc) externos
38
Propriedades
 Drawable
 Composta por imagens do aplicativo
 Layout
 Composta por arquivos xml com os layouts do aplicativo
39
User Interface
 Button
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=“Click Me" />
 TextView
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello" />
40
User Interface
41
 EditText
<EditText
android:id="@+id/edittext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint=“Say your name" />
 ImageView
<ImageView
android:id="@+id/imageview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image" />
User Interface
 É recomendado criar componentes visuais utilizando XML através dos layouts
 Performace
 MVC
 Componentes que herdem da classe View podem ser associados com
interfaces de eventos externos
 Listeners
 OnClickListener
 OnLongClickListener
 OnLocationListener
42
43
User Interface
 Exemplo de UI
 Android 2.3
44
User Interface
 Exemplos de componentes visuais mais sofisticados
 Menu
 ActionBar
 Dialogs
 Toast
Exercício
45
1. Avaliar a OverView Application
2. Modificar o visual dos componentes
Intents
46
 O que são os intents?
 Como utilizar os intents?
 Tipos de intents:
 Internos
 Externos
 Receivers
Intents
47
 Intents para chamadas Internas
intent i = new Intent(this, SecondActivity.class);
startActivity(i);
startActivityForResult(i, REQUEST_CODE);
 Pode ser composto por key e values
 Bundle
 Intent Extras
Intents
48
 protected void onActivityResult(int requestCode, int resultCode, Intent data);
 Necessita de startActivityForResult
 Executado quando acaba a Activity disparada pela Intent
Intents
49
 Exemplos de Uso:
 Intent.ACTION_VIEW, Uri.parse("http://www.site.com"));
 Intent.ACTION_CALL, Uri.parse("tel:(+49)12345789"));
 Intent.ACTION_DIAL, Uri.parse("tel:(+49)12345789"));
 Intent.ACTION_VIEW, Uri.parse("geo:50.123,7.1434?z=19"));
 Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=query"));
 Intent.ACTION_VIEW, Uri.parse("content://contacts/people/"));
 Intent.ACTION_EDIT, Uri.parse("content://contacts/people/1"));
Layouts
50
 Organiza componentes gráficos na tela
 Estrutura em árvore
 ViewGroup e View
 Formas de implementação
 Via XML
 Programaticamente via código (Java)
Layouts - Atributos
51
 Background
 Camada de fundo do nó
 Padding
 Deslocamento interno do nó, em density pixels (dp)
 Margin
 Deslocamento externo do nó, em density pixels (dp)
Layouts - Propriedades
52
 Fill_parent
 Significa que o nó poderá ocupar todo o espaço permitido pelo nó pai. Esta
propriedade foi renomeada para match_parent a partir da API 8 (Android
Froyo).
 Wrap_content
 Significa que o nó irá ocupar apenas o espaço que ela necessita.
 DP ou DIP (Density Pixels)
 Unidade virtual utilizada pelo o Android para definição básica de espaço
 Representa um pixel fisico em uma tela de 160 dpi (quantidade de pixels
em uma polegada)
Layouts - Tipos
53
 FrameLayout
 LinearLayout
 RelativeLayout
 ScrollView
FrameLayout
54
 Layout mais eficiente, leve e rápido;
 Organiza os componentes em forma de pilha, sendo o último adicionado ao
topo;
 Geralmente utilizado em conjunto com Fragments.
LinearLayout
55
 Alinha todos seus nós filhos em uma única direção
 Horizontal (default)
 Vertical
 Weight
 Atributo que define o quanto da tela um nó irá ocupar
 Nós filhos definem esse valor
 Valor default: 0
RelativeLayout
56
 Ajusta os nós filhos através de relacionamentos entre os proprios nós ou ao seu
pai
 Posicionamento de um nó filho é definido no próprio nó filho
 Um nó filho pode ser posicionado em relação a outro nó filho que ainda não foi
criado bastando declarar seu id
 Default: Top-Left
ScrollView
57
 Herda de FrameLayout
 Pode ter apenas um nó filho (geralmente um outro layout)
 Utilizado quando a tela possui muitos elementos, necessitando de um scroll
 Nunca utilize junto com um ListView
 Suporta apenas rolagem vertical
 HorizontalScrollView
Resources
58
 Devem se localizar nos subditerórios da pasta res
 Recursos devem ser sempre externalizados
 Dessa forma é possivel prover recursos alternativos
 Para qualquer recurso pode ser definido um padrão e um alternativo
 Utilizados independentemente da configuração do device ou quando não
existem recursos alternativos
 Projetados para serem utilizados em uma configuração específica:
 Qualifiers
Resources - Tipos
59
 Animation
 Anim
 Color
 Integer
 Boolean
 Layout
 Menu
 Values
 Color State List
 Drawable
Resources - Drawables
60
 Localizado em res/drawable/
 Podem ser bitmaps do tipo png, jpg ou gif
 XML
 Java
Resources - Strings
61
 Fornece recurso de texto para aplicação
 Localizado na pasta res/values
 Tipos
 String
 Array de String
Strings – i18n
62
 Internacionalização de Strings
 res/values/strings.xml
 res/values-pt/strings.xml
 Referência de uso
Strings – i18n
63
 Uso de Strings dinâmicas
 res/values/strings.xml
 res/values-pt/strings.xml
 Referência de uso
Resources - Qualifiers
64
 Recursos alternativos
 Android detecta configurações do dispositivo e carrega o recurso apropriado
 O qualifier é concatenado ao nome da pasta de recurso separado por ‘-’
 Res/<resource>-qualifier>/
 <resource>: nome do tipo do recurso
 <qualifier>: configuração única que o recurso irá se aplicar
 É possível utilizar mais de um qualifier ao mesmo tempo
 Concatenados e separados por ‘-’
 Seguir ordem especificada pelo o Google
Resources - Qualifiers
65
 MCC e MNC
 Language e Region
 Screen Size
 Screen Orientation
 Screen Pixel Density
 Touchscreen type
 Night mode
Resources – Language e Region
66
 Utilizado para internacionalizar a aplicação
 O idioma é definido por duas letras
 ISO 639-1
 Pode ser utilizado em conjunto com a região
 Duas letras precedidas de’r’
 Uma região não pode ser utilizada sem o idioma
ListView
67
 ViewGroup
 Exibe uma lista
 Já possui scroll
 Utiliza Adapter
ListActivity
68
 Classe que já possui um ListView interno
 Possui um layout default
 Usar layout diferente
 ´@android:id/list’
Adapter
69
 Adaptar interface de uma classe
 Permite que classes incompatíveis trabalhem de forma correta através de uma
interface
Layout Inflater
70
 Transforma um layout XML em uma View
Exercício
71
1. Avaliar a ToDo Application
Toast
72
 Pequeno popup que é mostrado durante um curto período de tempo
 Usado para dar um feedback visual de alguma operação
 Método estático makeText cria Toast padrão
 Toast customizado
 LayoutInflater
Dialogs
73
 Pequena janela que pode interagir com o usuário
 Aguardar um ‘ok’ ou ‘cancel’
 Receber alguma entrada
Shared Preferences
74
 Forma de persistir dados de uma aplicação
 Framework que permite desenvolvedor gravar e recuperar dados
 Outras aplicações podem ter acesso, porém não é recomendado
 Chave-valor
 Booleans, Floats, Ints, Longs, Strings
Persistência de Dados
75
 SQLite
 Forma de persistência de dados no Android
 Banco leve, rápido e poderoso
 Uma aplicação pode ter um ou mais banco de dados
 Uma aplicação não enxerga o banco de dados de outra aplicação.
Exercício
76
1. Avaliar a GREat Tasks Application
Projeto Final
77
 Proposta – Calendário
 Requisitos
 Acesso privado através de usuário e senha;
 Opção de adicionar um contato da agenda a um compromisso;
 Deve abrir arquivos do tipo “xyz” e ir para a tela de criação de compromisso com os
dados já preenchidos a partir do arquivo;
 Um serviço para notificar o usuário que falta X minutos para o inicio do
compromisso;
 Deve expor os horários para outras aplicações acessarem;
 Deve conter um menu de contexto que conterá as opções de editar e deletar o
compromisso se for feito um clique longo em um item de compromisso ou um menu
contendo “mudar a ordenação dos compromissos” ou colapsar e abrir o dia da
semana se for selecionado o dia da semana.

Treinamento básico de Android

  • 2.
  • 3.
    Conteúdo  Afinal, oque é Android?  Histórico de Versões  Sensores  Serviços  Ferramentas  Emulador  Desenvolvimento de Aplicações  Activities  User Interface 3
  • 4.
    Afinal, o queé Android?  Sistema Operacional criado para utilização de aparelhos móveis com capacidade razoável de poder de processamento e sensores periféricos  Desenvolvido pela OHA – Open Handset Alliance  Pensado originalmente para ser usado por Profissionais de Negócios  Open source  Linux based  Mercado amplo 4
  • 5.
    Versões  1.0 e1.1  Android Market  Navegador, Abas e Vídeos  Suporte básico para câmera  Salvar Anexos  Adição de Comentários no Maps 5
  • 6.
    Versões  1.5 -Cupcake  Melhorias na Interface Gráfica  Widget de terceiros 6
  • 7.
    Versões  1.6 -Donut  Salvar Anexos  Comentários no Maps  Comandos de Voz 7
  • 8.
    Versões  2.0 e2.1- Eclair  User Interface Redesign  Múltiplas contas  Recursos de câmera  Maior resolução de tela 8
  • 9.
    Versões  2.2 -Froyo  Melhorias no Navegador  Hotspot Wi-Fi  USB Tethering  Flash 9
  • 10.
    Versões  2.3 -Gingerbread  Interface renovada  Múltiplas câmeras  Giroscópio  Barômetro  NFC 10
  • 11.
    Versões  3.0 -Honeycomb  UI Redesign  Barra de sistemas  Suporte multicore  Tablets 11
  • 12.
    Versões  4.0 -Ice Cream Sandwich  Customização de launcher  Reconhecimento facial  Gerenciamento de energia  Melhorias no Teclado  Notificações e Multitarefa 12
  • 13.
    Versões  4.1~4.3 -Jelly Bean  Google Now  Resolução 4k  Photo Sphere  Mapas Offline  Melhorias nas Animações 13
  • 14.
    Versões  4.4.x -Kitkat  Mudanças no app de ligações  Seleção da “Runtime machine”  Framework para impressão  Transparência nas barras 14
  • 15.
    Sensores  Smartphones possuemdiversos tipos de sensores e periféricos  GPS  Acelerômetro  Câmera  Barômetro  Giroscópio  Internet Móvel 15
  • 16.
    Serviços  Sincronização comServiços do Google 16
  • 17.
    Ferramentas  Android DeveloperTools Bundle – Eclipse – Java  Android Studio – Intellij – Java  Corona – Lua  Titanium Appcelerator – Javascript  Xamarin Studio – C#  Desenvolvimento utilizando Java (Dalvik VM) ou C/C++ (NDK) 17
  • 18.
     SDK Manager AVD Manager  DDMS  LogCat  Emulator  Draw 9-patch  Monkey  ProGuard  ZipAlign  Hierarchy View 18 Ferramentas  Principais recursos da plataforma:  JUnit  Robotium  Testes:
  • 19.
  • 20.
    20 Ferramentas  AVD Manager Android Virtual Device
  • 21.
  • 22.
  • 23.
  • 24.
    24 Ferramentas  Logcat  Log.d Log.e  Log.i  Log.v  Log.w
  • 25.
  • 26.
  • 27.
    27 Emulador  O queé um Emulador?
  • 28.
  • 29.
     Início -Home  Menu – F2 ou Page Up  Voltar - ESC  Discador – F3  Finalizar Chamada – F4  Procurar – F5  Desligar – F7  Câmera – CTRL F3  Landscape – CTRL F11  Portrait – CTRL F12  Rede do celular – F8  Tela Cheia – Alt Enter 29 Emulador  Atalhos
  • 30.
    Desenvolvimento de Aplicações MVC  Model  View  Controller 30
  • 31.
    Desenvolvimento de Aplicações Estrutura de projeto:  Activities  Views  Diretório Resources  Drawables  Layouts  Menus  Values  Manifest 31
  • 32.
    Desenvolvimento de Aplicações Manifest  <action>  <activity>  <application>  <intent-filter>  <permission>  <provider>  <receiver>  <service>  <uses-sdk> 32
  • 33.
    Desenvolvimento de Aplicações Views  <Layout />  <Button />  <TextView />  <ImageView />  <RadioButton />  <CheckBox />  <DatePicker />  <TimerPicker/ > 33
  • 34.
    Exercício 34 1. Implementar umHello World 2. Examinar o ciclo de vida da Activity 3. Avaliar estrutura do projeto
  • 35.
    Activity  Ciclo deVida  onCreate();  onStart();  onResume();  onPause();  onStop();  onDestroy();  onRestart(); 35
  • 36.
    Activity 36  Ciclo deVida  Start  onCreate();  onStart();  onResume();  Stop  onRestart();  onStart();  onResume();
  • 37.
    Propriedades  string.xml  Permitea organização de mensagens da aplicação;  Simplifica a internacionalização de aplicativos.  R.java  Gerado automaticamente com os IDs dos resources usados;  Realiza o mapeamento entre xml (views e resources) com classes Java. 37
  • 38.
    Propriedades  Diretório RES Organiza imagens, strings, cores, dimensões e estilos.  Assets  Pasta para alocação de arquivos (.jar, .txt etc) externos 38
  • 39.
    Propriedades  Drawable  Compostapor imagens do aplicativo  Layout  Composta por arquivos xml com os layouts do aplicativo 39
  • 40.
    User Interface  Button <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=“ClickMe" />  TextView <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello" /> 40
  • 41.
    User Interface 41  EditText <EditText android:id="@+id/edittext1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint=“Sayyour name" />  ImageView <ImageView android:id="@+id/imageview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image" />
  • 42.
    User Interface  Érecomendado criar componentes visuais utilizando XML através dos layouts  Performace  MVC  Componentes que herdem da classe View podem ser associados com interfaces de eventos externos  Listeners  OnClickListener  OnLongClickListener  OnLocationListener 42
  • 43.
    43 User Interface  Exemplode UI  Android 2.3
  • 44.
    44 User Interface  Exemplosde componentes visuais mais sofisticados  Menu  ActionBar  Dialogs  Toast
  • 45.
    Exercício 45 1. Avaliar aOverView Application 2. Modificar o visual dos componentes
  • 46.
    Intents 46  O quesão os intents?  Como utilizar os intents?  Tipos de intents:  Internos  Externos  Receivers
  • 47.
    Intents 47  Intents parachamadas Internas intent i = new Intent(this, SecondActivity.class); startActivity(i); startActivityForResult(i, REQUEST_CODE);  Pode ser composto por key e values  Bundle  Intent Extras
  • 48.
    Intents 48  protected voidonActivityResult(int requestCode, int resultCode, Intent data);  Necessita de startActivityForResult  Executado quando acaba a Activity disparada pela Intent
  • 49.
    Intents 49  Exemplos deUso:  Intent.ACTION_VIEW, Uri.parse("http://www.site.com"));  Intent.ACTION_CALL, Uri.parse("tel:(+49)12345789"));  Intent.ACTION_DIAL, Uri.parse("tel:(+49)12345789"));  Intent.ACTION_VIEW, Uri.parse("geo:50.123,7.1434?z=19"));  Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=query"));  Intent.ACTION_VIEW, Uri.parse("content://contacts/people/"));  Intent.ACTION_EDIT, Uri.parse("content://contacts/people/1"));
  • 50.
    Layouts 50  Organiza componentesgráficos na tela  Estrutura em árvore  ViewGroup e View  Formas de implementação  Via XML  Programaticamente via código (Java)
  • 51.
    Layouts - Atributos 51 Background  Camada de fundo do nó  Padding  Deslocamento interno do nó, em density pixels (dp)  Margin  Deslocamento externo do nó, em density pixels (dp)
  • 52.
    Layouts - Propriedades 52 Fill_parent  Significa que o nó poderá ocupar todo o espaço permitido pelo nó pai. Esta propriedade foi renomeada para match_parent a partir da API 8 (Android Froyo).  Wrap_content  Significa que o nó irá ocupar apenas o espaço que ela necessita.  DP ou DIP (Density Pixels)  Unidade virtual utilizada pelo o Android para definição básica de espaço  Representa um pixel fisico em uma tela de 160 dpi (quantidade de pixels em uma polegada)
  • 53.
    Layouts - Tipos 53 FrameLayout  LinearLayout  RelativeLayout  ScrollView
  • 54.
    FrameLayout 54  Layout maiseficiente, leve e rápido;  Organiza os componentes em forma de pilha, sendo o último adicionado ao topo;  Geralmente utilizado em conjunto com Fragments.
  • 55.
    LinearLayout 55  Alinha todosseus nós filhos em uma única direção  Horizontal (default)  Vertical  Weight  Atributo que define o quanto da tela um nó irá ocupar  Nós filhos definem esse valor  Valor default: 0
  • 56.
    RelativeLayout 56  Ajusta osnós filhos através de relacionamentos entre os proprios nós ou ao seu pai  Posicionamento de um nó filho é definido no próprio nó filho  Um nó filho pode ser posicionado em relação a outro nó filho que ainda não foi criado bastando declarar seu id  Default: Top-Left
  • 57.
    ScrollView 57  Herda deFrameLayout  Pode ter apenas um nó filho (geralmente um outro layout)  Utilizado quando a tela possui muitos elementos, necessitando de um scroll  Nunca utilize junto com um ListView  Suporta apenas rolagem vertical  HorizontalScrollView
  • 58.
    Resources 58  Devem selocalizar nos subditerórios da pasta res  Recursos devem ser sempre externalizados  Dessa forma é possivel prover recursos alternativos  Para qualquer recurso pode ser definido um padrão e um alternativo  Utilizados independentemente da configuração do device ou quando não existem recursos alternativos  Projetados para serem utilizados em uma configuração específica:  Qualifiers
  • 59.
    Resources - Tipos 59 Animation  Anim  Color  Integer  Boolean  Layout  Menu  Values  Color State List  Drawable
  • 60.
    Resources - Drawables 60 Localizado em res/drawable/  Podem ser bitmaps do tipo png, jpg ou gif  XML  Java
  • 61.
    Resources - Strings 61 Fornece recurso de texto para aplicação  Localizado na pasta res/values  Tipos  String  Array de String
  • 62.
    Strings – i18n 62 Internacionalização de Strings  res/values/strings.xml  res/values-pt/strings.xml  Referência de uso
  • 63.
    Strings – i18n 63 Uso de Strings dinâmicas  res/values/strings.xml  res/values-pt/strings.xml  Referência de uso
  • 64.
    Resources - Qualifiers 64 Recursos alternativos  Android detecta configurações do dispositivo e carrega o recurso apropriado  O qualifier é concatenado ao nome da pasta de recurso separado por ‘-’  Res/<resource>-qualifier>/  <resource>: nome do tipo do recurso  <qualifier>: configuração única que o recurso irá se aplicar  É possível utilizar mais de um qualifier ao mesmo tempo  Concatenados e separados por ‘-’  Seguir ordem especificada pelo o Google
  • 65.
    Resources - Qualifiers 65 MCC e MNC  Language e Region  Screen Size  Screen Orientation  Screen Pixel Density  Touchscreen type  Night mode
  • 66.
    Resources – Languagee Region 66  Utilizado para internacionalizar a aplicação  O idioma é definido por duas letras  ISO 639-1  Pode ser utilizado em conjunto com a região  Duas letras precedidas de’r’  Uma região não pode ser utilizada sem o idioma
  • 67.
    ListView 67  ViewGroup  Exibeuma lista  Já possui scroll  Utiliza Adapter
  • 68.
    ListActivity 68  Classe quejá possui um ListView interno  Possui um layout default  Usar layout diferente  ´@android:id/list’
  • 69.
    Adapter 69  Adaptar interfacede uma classe  Permite que classes incompatíveis trabalhem de forma correta através de uma interface
  • 70.
    Layout Inflater 70  Transformaum layout XML em uma View
  • 71.
  • 72.
    Toast 72  Pequeno popupque é mostrado durante um curto período de tempo  Usado para dar um feedback visual de alguma operação  Método estático makeText cria Toast padrão  Toast customizado  LayoutInflater
  • 73.
    Dialogs 73  Pequena janelaque pode interagir com o usuário  Aguardar um ‘ok’ ou ‘cancel’  Receber alguma entrada
  • 74.
    Shared Preferences 74  Formade persistir dados de uma aplicação  Framework que permite desenvolvedor gravar e recuperar dados  Outras aplicações podem ter acesso, porém não é recomendado  Chave-valor  Booleans, Floats, Ints, Longs, Strings
  • 75.
    Persistência de Dados 75 SQLite  Forma de persistência de dados no Android  Banco leve, rápido e poderoso  Uma aplicação pode ter um ou mais banco de dados  Uma aplicação não enxerga o banco de dados de outra aplicação.
  • 76.
    Exercício 76 1. Avaliar aGREat Tasks Application
  • 77.
    Projeto Final 77  Proposta– Calendário  Requisitos  Acesso privado através de usuário e senha;  Opção de adicionar um contato da agenda a um compromisso;  Deve abrir arquivos do tipo “xyz” e ir para a tela de criação de compromisso com os dados já preenchidos a partir do arquivo;  Um serviço para notificar o usuário que falta X minutos para o inicio do compromisso;  Deve expor os horários para outras aplicações acessarem;  Deve conter um menu de contexto que conterá as opções de editar e deletar o compromisso se for feito um clique longo em um item de compromisso ou um menu contendo “mudar a ordenação dos compromissos” ou colapsar e abrir o dia da semana se for selecionado o dia da semana.