treinamento básico de android
TRANSCRIPT
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.