Recursos especiais neste artigo:
Conteúdo sobre boas práticas.
O Android define uma pilha de software para dispositivos móveis que inclui um sistema operacional, middleware e aplicações chave. O sistema operacional é responsável pela ligação entre hardware e software. Já a camada de middleware disponibiliza um conjunto de bibliotecas responsáveis pela manipulação de itens como áudio e vídeo. Por fim, na última camada temos as aplicações disponibilizadas para os usuários.
Para obter e usar interfaces de usuários trabalha-se com Views. O uso de Adapters provido pela API habilita o desenvolvedor a criar e aprimorar Views.
Este artigo descreve conceitos fundamentais sobre a plataforma Android e APIs disponíveis para os desenvolvedores. Através de exemplos são apresentadas práticas com relação ao uso de Adapters da API da plataforma mostrando o reuso de código.
Em que situação o tema útil
A aplicação de conceitos
da Plataforma Android e sobre como usar APIs
é recomendada para desenvolvedores mobile que querem aperfeiçoar o uso de Adapters em seus projetos.
Com a crescente demanda de aplicativos no mercado, desenvolvedores necessitam minimizar o tempo de desenvolvimento e ao mesmo tempo prover novas e melhores soluções em suas aplicações que exijam disponibilidade de dados em um formato claro e intuitivo para os usuários cada vez mais exigentes.
Na plataforma Android existem vários modos de se apresentar dados para os usuários de aplicativos. Essa variedade se dá desde o uso de simples objetos como caixas de texto, tabelas (semelhantes a uma planilha), painéis, quanto o uso de objetos mais complexos, como listas que podem possuir linhas com uma diversidade de objetos e grades.
Neste artigo serão apresentados alguns dos objetos citados, como usá-los e boas práticas em relação às APIs da plataforma focando no reaproveitamento de código em diferentes Views.
Para iniciarmos, é indispensável abordar a arquitetura da plataforma e o entendimento sobre o funcionamento de aplicativos, o ciclo de vida de Atividades (Activities), o uso de bibliotecas em diferentes versões e as permissões.
As aplicações Android são diferentes porque possuem comportamento particular e estão sendo executadas em ambientes que diferem de desktops ou servidores. Por isso, o desenvolvedor deve atentar para as características essenciais dessa plataforma, tais como:
· Recursos de hardware atualmente não são comparáveis a desktops e servidores, portanto há limitações. Uma dessas limitações é a bateria e o seu consumo. Hoje a bateria é um componente muito limitado e restringe o uso de processamento por muito tempo;
· Reuso de código é essencial para esse ambiente. Uma vez limitado ao hardware, comparado a um computador, o dispositivo móvel possui menos memória e processamento. Assim, a solução é a reutilização de componentes e serviços bases que a plataforma provê para outras aplicações;
· Na plataforma Android não há aplicações específicas como, por exemplo, navegador de internet único. Se o usuário quer navegar na internet o Android provê a navegação, não importando o navegador instalado, ou seja, tanto faz se um navegador padrão já está instalado ou um navegador de terceiros (e.g. Opera). Não há uma aplicação específica para ação ou ambiente específico.
O Android é uma pilha de software para dispositivos móveis que inclui um sistema operacional, middleware e aplicações chave. O sistema operacional é o “elo” entre hardware e software. A camada de middleware é onde estão as bibliotecas responsáveis pela reprodução de áudio, vídeo, gravação de imagens, armazenamento em banco de dados, etc. As aplicações chaves são os softwares que proveem a interatividade para outras aplicações. Esses três componentes combinados constroem essa relação sistêmica comparada a uma pilha, na qual se tem o sistema operacional na base da pilha, o middleware por cima da base e no topo da pilha as aplicações. A arquitetura do Android pode ser vista na Figura 1.
Figura 1. Visão geral da plataforma Android.
Na base da pilha de software é encontrado o sistema operacional (SO) Linux. Linux é um SO aberto e gratuito para desenvolvimento e distribuição. O kernel do Linux é o núcleo desse sistema operacional. Na Figura 1 pode ser observado que o kernel do Linux faz a interação entre hardware (parte física) e software (programas) do dispositivo móvel. O SO contém os drivers que fazem a comunicação com os dispositivos de hardware. Existe, por exemplo, driver Wi-Fi para conexão e comunicação em redes wireless, driver de áudio, gerenciamento de energia, driver para o vídeo, GPS (Global Positioning System), acelerômetros, bússola, Bluetooth e telefonia GSM (Global System for Mobile). O kernel utilizado no Android é da versão 2.6 do Linux.
Na segunda camada da pilha de software é encontrado o middleware. No middleware existem aplicações que servem como base para que algumas aplicações da camada de cima possam ser executadas. Nessa camada são encontradas bibliotecas de áudio, aceleração tridimensional (e.g. OpenGL), armazenamento de dados (e.g. SQLite), framework de mídia (e.g. codecs), entre outros.
Ainda na mesma camada, pode ser encontrada a máquina virtual do Android, chamada DVM (Dalvik Virtual Machine). A DVM foi criada com o intuito de aperfeiçoar o runtime das aplicações no dispositivo móvel. Ela não é uma JVM (Java Virtual Machine), porém tem o comportamento parecido. Enquanto que na JVM ocorre a interpretação e execução do código Java, no caso da DVM o sistema operacional Android usa máquinas virtuais para executar cada aplicação num processo. Isso permite independência entre as aplicações. Caso alguma aplicação pare, ela não afetará quaisquer outras aplicações em execução no dispositivo e, por último, simplifica o gerenciamento de memória. Mesmo que o desenvolvimento de aplicativos para a plataforma Android seja em Java, a DVM converte os arquivos .class e/ou .jar para arquivos .dex (arquivo “executável” da DVM).
Essa conversão de arquivos nativos do Java (.class e.jar) para. dex tem como propósito diminuir o espaço total usado no armazenamento de aplicações. Cada arquivo .class contém pools de constantes, os quais são muito redundantes para a aplicação e são frequentemente a maior parte do arquivo. Como existem vários pools de constantes em vários arquivos .class com o mesmo valor, não é necessário usar valores repetidos mas somente um pool. Desta forma, somente uma cópia é requerida.
Através desse método de compressão a máquina virtual Dalvik ganha agilidade e velocidade na interpretação e execução de código Java, cumprindo o objetivo de ser otimizada para o uso mínimo de memória em um dispositivo móvel.
Na última camada da pilha de software são encontrados frameworks e aplicativos.
O Android possibilita a criação e o aproveitamento de recursos através do framework. Isso significa que os desenvolvedores podem tirar proveito do hardware, acessar informações sobre localização, entre outras, através dos frameworks que acessam aplicações do núcleo da plataforma. A arquitetura do Android foi projetada para simplificar o reuso de código e componentes já existentes. Qualquer aplicação pode publicar (tornar público métodos, serviços, componentes) e quaisquer outras aplicações podem fazer uso dos mesmos.
Como parte dessas APIs, o Android possui Views que são usadas em vários tipos de componentes em uma aplicação como listas, caixas de textos, botões, grids. Também há uma API chamada Content Providers que possibilita o acesso a dados de uma aplicação por outra. Notification Providers permite o compartilhamento de alertas e mensagens na barra de status. Window Manager auxilia no gerenciamento das janelas e aplicações abertas. E assim por diante, cada framework tem sua particularidade que é compartilhada com as demais aplicações.
...Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.