Introdução à programação Android
Bem-vinda! O fato de vocês estarem lendo isso significa que estão ansiosos para aprender a escrever um aplicativo Android por conta própria. No mundo de hoje, o mercado de aplicativos móveis está explodindo e especialmente o Android surgiu em um tempo muito curto, mantendo a posição de liderança contra outros concorrentes como iOS, Blackberry, Windows e outros.
Cada tecnologia (sistema operacional) tem sua própria base de usuários, mas o Android conseguiu cobrir a maior base de usuários do mundo. Neste primeiro tutorial veremos, o que é o Android, suas versões e quais recursos tem desde 2005 que o ajudaram a estar onde está agora? Por fim, também tentaremos entender a arquitetura do Android.
Conteudo
O que é Android?
O Android é um sistema operacional móvel baseado em Linux modificado que foi originalmente iniciado pela Android Inc. com o mesmo nome. Em 2005, o Google adquiriu o Android e assumiu seu trabalho de desenvolvimento para entrar no espaço móvel.
Como parte do maior gigante da tecnologia do mundo, o Android tornou-se open source e gratuito; portanto, a maior parte do código-fonte do Android é lançado sob a licença Apache de código aberto. Isso permite que qualquer pessoa baixe o código-fonte e altere-o de acordo com seus requisitos, portanto, eles podem ter seu próprio sabor do sistema operacional Android, por exemplo: Cynogen, MIUI (da Xiaomi) etc são apenas diferentes sabores do sistema operacional Android.
Durante o desenvolvimento, os desenvolvedores precisam codificar apenas em um nível de software, adicionando novos recursos, modificando a experiência do usuário, etc., deixando para trás as preocupações das diferentes configurações do dispositivo e integração de hardware/software, o que torna o desenvolvimento de aplicativos Android para dispositivos móveis ainda mais fácil.
Versões Android
Desde o lançamento, o Android passou por várias atualizações. Aqui está a lista de suas diferentes versões e seus codinomes:
Version | Release Date | Code Name | API Level |
---|---|---|---|
1.0 | 23 Set 2008 | N/A | 1 |
1.1 | 9 Fev 2009 | N/A | 2 |
1.5 | 30 Abr 2009 | Cupcake | 3 |
1.6 | 15 Set 2009 | Donut | 4 |
2.0/2.1 | 26 Out 2009 | Éclair | 5-7 |
2.2 | 20 Mai 2010 | Froyo | 8 |
2.3 | 6 Dez 2010 | Gingerbread | 9-10 |
3.0/3.1/3.2 | 22 Fev 2011 | Honeycomb | 11-13 |
4.0 | 18 Out 2011 | Ice Cream Sandwich | 14-15 |
4.1/4.2/4.3 | 9 Jul 2012 | Jelly Bean | 16-18 |
4.4 | 31 Out 2013 | KitKat | 19-20 |
5.0/5.1 | 12 Nov 2014 | Lollipop | 21-22 |
6.0 | 5 Out 2015 | Marshmallow | 23 |
7.0/7.1-7.1.2 | 5 Dez 2016 | Nougat | 24-25 |
8.0/8.1 | 5 Dez 2017 | Oreo | 26-27 |
9.0 | 6 Dez 2018 | Pie | 28 |
10.0 | 3 Set 2019 | Android10 | 29 |
11.0 | 8 Set 2020 | Android11 | 30 |
12.0 | Não Lançado | Android12 | 31 |
Recursos do Android
Como um software de código aberto e disponível gratuitamente, os fabricantes e desenvolvedores personalizam de acordo com suas necessidades, portanto, não há hardware específico e configurações de software necessárias para o Android. O próprio Android oferece alguns recursos como a seguir,
- Armazenamento: usa SQLite, um armazenamento de banco de dados relacional leve para armazenamento de dados (muito útil quando o armazenamento de memória móvel limitado deve ser considerado).
- Suporte de mídia: inclui suporte para um grande número de formatos de mídia para imagens, áudio e também para vídeo, como: H.263, H.264, MPEG-4 SP, AMR, AMR WB, AAC, MP3, MIDI, WAV, JPEG , PNG, GIF e BMP.
- Mensagens: SMS e MMS são suportados.
- Navegador da Web: baseado no Open Source WebKit, agora conhecido como Chrome.
Conectividade: Suporta grande grupo de redes como: GSM / EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, WiFi, LTE e WiMAX. - Suporte de hardware: Sensor acelerômetro, câmera, bússola digital, sensor de proximidade e GPS e muito mais.
- Multi-Touch: Suporta tela multi-touch.
- Multitarefa: Suporta multitarefa de aplicativos.
- Suporte a Flash: Suporta Flash.
- Tethering: oferece suporte ao compartilhamento de Internet como pontos de acesso com ou sem fio.
Continuando ao tutorial. Agora que você tem uma compreensão e conhecimento básico sobre o Android, neste tutorial, estudaremos a pilha de software Android (veja o diagrama abaixo), que o ajudará a entender como o Android funciona dentro de um dispositivo.
O sistema operacional Android segue uma abordagem de arquitetura em camadas. Todas essas camadas são responsáveis por diferentes funções e recursos que discutimos abaixo.
Kernel do Linux
Essa camada é a base da plataforma Android.
- Contém todos os drivers de baixo nível para suporte a vários componentes de hardware.
- O Android Runtime depende do kernel do Linux para os principais serviços do sistema, como,
- Memória, gerenciamento de processos, segmentação, etc.
- Pilha de rede
- Modelo de motorista
- Segurança e muito mais.
Camada de abstração de hardware (HAL)
- Fornece abstração entre o hardware e o resto da pilha de software.
Android Runtime (ART)
- Projetado para executar aplicativos em um ambiente restrito que tem potência muscular limitada em termos de bateria, processamento e memória.
- Desde o Android 5.0, cada aplicativo é executado em seu próprio processo dentro de sua própria instância de máquina virtual ART, o que torna o gerenciamento de processos mais crucial.
- O ART usa arquivos DEX, que é um tipo de bytecode, especialmente desenvolvido para Android, que ajuda o ART a gerenciar a memória com mais eficiência.
- Contém um conjunto de bibliotecas principais que permitem que os desenvolvedores escrevam aplicativos Android usando a programação Java.
- Antes do Android 5.0, Dalvik era usado como tempo de execução do Android.
- ART é capaz de compilação Ahead-of-time (AOT) e Just-in-time (JIT).
- Também possui uma coleta de lixo muito eficiente.
Bibliotecas
- Exposto a desenvolvedores por meio do Android Application Framework.
- Contém bibliotecas C/C++ usadas por componentes de sistemas Android.
- Poucos recursos incluem,
- Biblioteca SQLite usada para armazenamento de dados e luz em termos de pegadas de memória móvel e execução de tarefas.
- WebKit Library fornece principalmente mecanismo de navegação na Web e muitos outros recursos relacionados.
- A biblioteca do gerenciador de superfície é responsável por renderizar janelas e superfícies de desenho de vários aplicativos na tela.
- A biblioteca de estrutura de mídia fornece codecs de mídia para áudio e vídeo.
- A OpenGl (Open Graphics Library) e SGL (Scalable Graphics Library) são as bibliotecas gráficas para renderização 3D e 2D, respectivamente.
- A Biblioteca FreeType é usada para renderizar fontes.
Framework de aplicação
- É uma coleção de APIs escritas em Java, que dá aos desenvolvedores acesso ao conjunto completo de recursos do sistema operacional Android.
- Os desenvolvedores têm acesso total às mesmas APIs de estrutura usadas pelos aplicativos principais, para que possam aprimorar mais em termos de funcionalidades de seus aplicativos.
- Permite e simplifica a reutilização de componentes e serviços essenciais, como:
- Activity Manager: gerencia o ciclo de vida de aplicativos e fornece back stack de navegação comum.
- Gerenciador de janelas: gerencia janelas e superfícies de desenho e é uma abstração da biblioteca do gerenciador de superfícies.
- Provedores de conteúdo: permite que o aplicativo acesse dados de outros aplicativos ou compartilhe seus próprios dados, ou seja, fornece mecanismo para trocar dados entre aplicativos.
- Sistema de visualização: contém os blocos de construção da interface do usuário usados para construir a IU de um aplicativo, incluindo listas, grades, textos, caixas, botões, etc. e também executa o gerenciamento de eventos de elementos de interface do usuário (explicado em tutoriais posteriores).
- Gerenciador de pacotes: gerencia vários tipos de informações relacionadas aos pacotes de aplicativos atualmente instalados no dispositivo.
- Gerenciador de telefonia: permite que o aplicativo use os recursos de telefone do dispositivo.
- Gerenciador de recursos: fornece acesso a recursos não codificados (Strings, bitmaps, gráficos e layouts localizados).
- Gerente de localização: trata dos recursos de reconhecimento de localização.
- Gerenciador de notificação: permite que os aplicativos exibam alertas personalizados na barra de status.
Formulários
- O topo da pilha de aplicativos Android é ocupado pelos aplicativos do sistema e toneladas de outros aplicativos que os usuários podem baixar da Play Store oficial do Android, também conhecida como Google Play Store.
- Um conjunto de aplicativos principais são pré-embalados no aparelho, como cliente de e-mail, programa de SMS, calendário, mapas, navegador, contatos e mais alguns.
- Esta camada usa todas as camadas abaixo dela para o funcionamento adequado desses aplicativos móveis.
Como podemos ver e entender, o Android possui funcionalidades em camadas ou podemos dizer agrupadas como uma pilha de software que faz com que o Android funcione muito bem em qualquer dispositivo.
Dispositivos Android no Market
Um dispositivo que executa o sistema operacional Android vem em todas as formas e tamanhos. Vários dispositivos que executam o sistema operacional Android e aplicativos são os seguintes,
- Smartphones
- Relógios inteligentes
- Tablets
- Dispositivos de E-reader
- Netbooks
- MP4 Players
- TVs de Internet e muito mais.
Mercado Android
Em agosto de 2008, cerca de um ano após adquirir o Android, o Google anunciou o Android Application Market – uma loja de aplicativos online para dispositivos Android. Esta loja online foi posteriormente denominada Play Store e foi disponibilizada aos usuários em outubro de 2008, permitindo que os usuários baixassem diretamente qualquer aplicativo de terceiros em seus dispositivos. Aplicativos pagos e gratuitos estão disponíveis na Play Store.