O documento apresenta conceitos básicos do Android como pacotes, organização de pacotes em modelos, classe R, recursos como drawables e valores, e componentes principais como activities e views.
2. No Android, alguns conceitos podem ser
diferentes do que estamos acostumados
a trabalhar. Por se tratar de uma
plataforma móvel, a principal
preocupação que deve-se ter é fazer
com que as tarefas a ser executadas
levem o menor tempo e o menor custo
computacional possível.
Conceitos Básicos
3. Pacotes
Assim como no Java, o Android organiza
suas classes seguindo um modelo de
pacotes. É possível utilizar qualquer
padrão de projeto compatível com Java.
Deve-se ter o cuidado somente de não
fragmentar excessivamente as classes
para que o custo computacional de
instanciação seja minimizado
5. Modelo de organização de
pacotes
net.android = Pacote inicial onde ficará a classe main
da aplicação.
net.android.componentes = Pacote que conterá os
componentes customizados criados para a
aplicação.
net.android.controller = Pacote que conterá as
classes Activity que controlarão as telas da
aplicação.
net.android.dao = Classes Data Access Object de
acesso ao banco de dados.
net.android.entidade = Classes de entidade (pojo).
net.android.transmissao = Classes destinadas ao
acesso e transmissão de dados.
6. Modelo de organização de
pacotes
É claro que o modelo aqui definido é
apenas uma sugestão de organização
de classes. Nosso curso vai usar esse
modelo como padrão. Você pode usar a
organização que desejar desde que siga
algumas sugestões de padrões de
projeto.
7. Classe R
O Android cria automaticamente uma classe
chamada “R”. Essa classe em hipótese alguma
deve ser modificada pois ela é gerada
automaticamente cada vez que o projeto é
salvo. Essa classe contém as referências de
todos os views (itens de tela) para ser usadas
nas classes de negócio.
8. APIs adicionais
No projeto é possível inserir APIs adicionais que
abstraem uma série de funções ao programador.
É possível urilizar uma biblioteca criada
nativamente ou uma biblioteca de terceiros. Se
no momento da criação do projeto for
selecionada uma API adicional na versão do
Android, estas aparecerão aqui.
9. Arquivos extras adicionais
Se na sua aplicação for necessário adicionar
algum arquivo externo como um vídeo ou um
áudio, estes arquivos devem ser colocados
nessa pasta.
10. Recursos
No Android, tudo que for tela, imagem e xml é
considerado recurso. Um recurso pode ser usado
de qualquer parte da aplicação pois eles são
variáveis estáticas (não precisam ser instanciados
para ser usados).
Os recursos de imagem, por exemplo, podem ser
adaptados de acordo com o tamanho da tela
que a aplicação rodará. Assim, se o usuário abrir
o sistema em um smartphone com tela pequena,
o sistema carregará a imagem pequena, se for
aberto num tablet, carregará a imagem grande.
11. Drawables
Drawable (desenhável) são imagens ou
componentes que são desenhados na tela. O
android usa 3 tamanhos padrões de imagem
para desenhar na tela do aparelho de acordo
com seu tamanho de tela.
Para que este recurso seja possível, é necessário
que sejam criadas imagens iguais, com o mesmo
nome, mas com tamanhos diferentes e estas
sejam colocadas nas pastas correspondentes aos
seus tamanhos.
12. Drawables
Exemplo: Vamos criar o ícone da nossa
aplicação. Esse ícone deve ter um tamanho
proporcional ao tamanho da tela independente
do tamanho da tela do dispositivo que vai rodar
nossa aplicação. Neste caso criamos 3 imagens
com a seguinte configuração:
Tamanho
72x72 px
Tamanho
48x48px
Tamanho
36x36px
13. Drawables
As 3 imagens terão o EXATO MESMO NOME e
deverão ser colocadas nas pastas
correspondentes aos seus tamanhos.
drawable_hdpi = imagem de 72 px
drawable_mdpi = imagem de 48 px
drawable_mdpi = imagem de 36 px
14. Drawables
Deste modo, quando eu precisar usar
esta imagem na minha aplicação, basta
que eu chame a imagem pelo nome
“ic_launcher” que o Android escolherá a
imagem que melhor se adequar a meu
tamanho de tela.
Se eu quiser que o Android use a mesma
imagem independente do tamanho da
tela, basta que eu copie as imagens pra
pasta drawable-mdpi.
15. Values
A pasta Values contém arquivos de XML
que podem ser usados como substitutos
de valores usados no sistema.
Por exemplo: se eu quiser criar um
arquivo de textos que devem ser usados
nos labels do sistema e que esses textos
mudem de acordo com o idioma do
aparelho. Eu posso criar um arquivo de
texto para cada idioma que o Android irá
fazer as devidas substituições.
16. Values
É possível também criar constantes que
serão usadas no sistema como cores,
tamanhos, backgrounds, sons, etc.
Basta que seja criada uma tag e seja
dada um valor pra ela.
17. Values
Na hora de usar, basta chamar a tag
usando seguinte anotação:
@string/nome_da_tag
Onde “nome_da_tag” é o nome usado
para criar a tag no arquivo de String.
19. AndroidManifest.xml
Arquivo de manifesto contém uma série
de informações que são importantes
para a aplicação. Ele contém as
informações que mostrarão quais
requisitos de hardware o dispositivo
deverá cumprir para rodar a aplicação,
os pacotes importados, as classes de
activity, versão e nome do sistema e
outras informações.
21. AndroidManifest.xml
1. Informações de numero e nome da
versão e nome do pacote principal da
aplicação.
2. Carrega bibliotecas externas.
3. Orientação de tela, nome e ícone da
aplicação.
4. Declaração das activities usadas na
aplicação
23. AndroidManifest.xml
5. Versão mínima do Android necessária
para rodar a aplicação
6. Declaração das necessidades de
hardware que o sistema precisará para
funcionar.
24. Activities
Activity é a classe que gerencia todos os
elementos de tela da aplicação. É ela
que recebe as ações disparadas por
botões, links, popula listas e mostra efeitos
na tela.
Cada tela no Android deve ter sua
própria activity, embora seja possível
gerenciar várias telas com a mesma
activity, é enfaticamente NÃO
recomendado.
26. View
Todo elemento de tela como um botão,
uma lista, um label, etc é chamado de
View.
As views podem ser acessadas
diretamente utilizando o método
“findViewById(“nome_view”)” da classe
Activity.
O Android disponibiliza diversos
componentes de tela (view) e ainda é
possível criar views customizadas
misturando as características de várias
views para criar uma view única.