Introdução à programação Android

Tempo de leitura: 6 minutes

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.

 

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:

VersionRelease DateCode NameAPI Level
1.023 Set 2008N/A1
1.19 Fev 2009N/A2
1.530 Abr 2009Cupcake3
1.615 Set 2009Donut4
2.0/2.126 Out 2009Éclair5-7
2.220 Mai 2010Froyo8
2.36 Dez 2010Gingerbread9-10
3.0/3.1/3.222 Fev 2011Honeycomb11-13
4.018 Out 2011Ice Cream Sandwich14-15
4.1/4.2/4.39 Jul 2012Jelly Bean16-18
4.431 Out 2013KitKat19-20
5.0/5.112 Nov 2014Lollipop21-22
6.05 Out 2015Marshmallow23
7.0/7.1-7.1.25 Dez 2016Nougat24-25
8.0/8.15 Dez 2017Oreo26-27
9.06 Dez 2018Pie28
10.03 Set 2019Android1029
11.08 Set 2020Android1130
12.0Não LançadoAndroid1231

 

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.