Apostilha de Android - PARTE 2


Capitulo 1 apitulo 1 apitulo 1 apitulo 1 Visão geral sobre o Visão geral sobre o Visão geral sobre o Visão geral sobre o Visão geral sobre o Visão geral sobre o Visão geral sobre o Visão geral sobre o Visão geral sobre o Visão geral sobre o Google Android Google Android Google Android Google Android
1.1) Introdução
onforme mencionado na apresentação deste material, o Android é uma plataforma desenvolvida pela Google voltada para dispositivos móveis, totalmente aberta é livre (Open Source), que foi divulgada em 5 de novembro de 2007. Inicialmente o sistema Android foi desenvolvido pelo Google e atualmente essa plataforma é mantida pela OHA (Open Handset Alliance. Visite o link : http://www.openhandsetalliance.com), um grupo constituído por aproximadamente 84 empresas as quais se uniram para inovar e acelerar o desenvolvimento de aplicações e serviços, com o objetivo e trazer aos consumidores uma experiência mais rica em termos de recursos, menos dispendiosa em ternos financeiros para o mercado móvel.
Um dos primeiros SmartPhones que ofereceu suporte a esse sistema operacional foi o G1 da empresa T-Mobile. Confira na imagem seguinte:
G1 - T-Mobile
C
8
Atualmente o sistema Android se encontra hoje disponível tanto em SmartPhones quanto nos Tablets. Confira abaixo alguns dos dispositivos encontramos hoje no mercado com o sistema operacional Android:
SmartPhone Samsung Galaxy S3
Tablet Samgung Galaxy Note
9
1.2) Estrutura Geral da plataforma Google Android
O Android SDK é uma ferramenta de desenvolvimento que disponibiliza um conjunto de APIs necessárias para desenvolver aplicações para a plataforma Android, utilizando a linguagem Java.
Vamos conhecer os recursos encontrados nessa plataforma:
- Application framework: Permite a reutilização e substituição de componentes ;
- Dalvik virtual machine: É uma Máquina Virtual Java (JVM) voltada para dispositivos móveis ;
- Browser Integrado baseado no webkit engine ;
- Gráficos Otimizados O Android é constituído por bibliotecas 2D e 3D baseada na especificação OpenGL ES 1.0 ;
- SQLite: Sistema Gerenciador de Banco de Dados (SGBD) já embutido no Android para guardar dados ;
- Suporte multimídia: A plataforma já oferece para áudio, vídeo e formatos de imagem (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ;
- Telefonia GSM (dependente de hardware) ;
- Bluetooth, EDGE, 3G, e WiFi (dependente de hardware) ;
- Câmera, GPS, compasso, e acelerômetro (dependente de hardware) ;
- Rico ambiente de desenvolvimento , incluindo um emulador de dispositivo, ferramentas de depuração, memória e performance.
10
1.2.1) A arquitetura do Android
Arquitetura geral da plataforma
1.2.2) Aplicações
O Android nos fornece um conjunto de aplicações fundamentais, são elas:
- um cliente de e-mail;
- programa de SMS;
- agenda;
- mapas;
- navegador;
- contatos entre outros.
Todos os aplicativos acima presentes no Android foram desenvolvidos na linguagem de programação Java.
O Android nos fornece um conjunto de bibliotecas C/C++ utilizadas por vários componentes do sistema. Veja algumas das bibliotecas abaixo:
11
- System C library: Consiste em uma implementação derivada da biblioteca C padrão baseado no sistema (libc) do BSD sintonizada para dispositivos rodando Linux.
- Media Libraries: Baseado no PacketVideo’s OpenCORE; são as bibliotecas que suportam os mais diversos formatos de áudio e vídeo, incluindo também imagens.
- Surface Manager: Responsável pelo acesso ao subsistema de exibição bem como as múltiplas camadas de aplicações 2D e 3D;
- LibWebCore: Consiste em um web browser engine utilizado tanto no Android Browser quanto para exibições web.
- SGL – o engine de gráficos 2D - 3D libraries: Uma implementação baseada no OpenGL ES 1.0 APIs; As bibliotecas utilizam aceleração 3D via hardware (quando disponível) ou o software de renderização 3D altamente otimizado incluído no Android.
- FreeType – Biblioteca responsável pela renderização de fontes bitmap e vector;
- SQLite – Conforme já mencionado, consiste no sistema gerenciador de banco de dados (SGBD) relacional disponível para todas as aplicações.
1.2.3) Android Runtime
O Android é constituído por um conjunto de bibliotecas que fornece a maioria das funcionalidades disponíveis nas principais bibliotecas da linguagem Java.
Toda aplicação Android roda em seu próprio processo, com sua própria instância da máquina virtual Dalvik. O Dalvik foi escrito de forma a executar várias VMs eficientemente. Ele executa arquivos .dex, que é otimizado para consumo mínimo de memória. A VM é baseada em registros e roda classes compiladas pela linguagem Java que foram transformadas em arquivos .dex, através da ferramenta “dx” incluída no SDK.
O Dalvik VM foi baseado no kernel do Linux para funcionalidades subjacentes como o encadeamento e a gestão de baixo nível de memória.
1.2.4) Linux Kernel
O Android foi projetado em cima da versão 2.6 do kernel do Linux para os serviços centrais do sistema, tais como segurança, gestão de memória, gestão de processos, etc. O kernel também atua como uma camada de abstração entre o hardware e o resto do software.
12
1.3) Para qual versão do Android devemos desenvolver as aplicações ?
Quando desenvolvemos uma aplicação para um determinado sistema operacional, normalmente, precisamos fazer a seguinte pergunta : Para qual versão do S.O devemos desenvolver ?
Considero esse um dos pontos mais importantes que devemos refletir antes de desenvolvermos uma aplicação. Como neste material iremos desenvolver aplicações voltados para a plataforma Android, devemos pensar para qual versão da plataforma precisamos desenvolver.
1.3.1) Qual versão da plataforma Android é a mais utilizada no momento ?
Para falar a respeito dessa situação, irei mostrar aqui um gráfico que mostra quais versões do Android são as mais usadas no mundo todo :
Gráfico de Estatística a respeito do S.O Android mais usado
O gráfico da estática acima foi feito em dezembro de 2014, onde nele podemos observar que as versões do Android mais utilizadas são o Jelly Bean (versão 4.1 – 4.3) e KitKat (4.4), praticamente as duas estão no empate. As versões mais antigas do Android como Eclair (versão 2.1) e Donut (versão 1.6) já nem são mais citadas e faladas hoje em dia. A versão 5.x do Android recentemente lançada, o Lollipop, ainda está começando a se popularizar.
13
Hoje em dia, se fomos em alguma loja para comprar um aparelho (Smartphone ou Tablet Android) iremos adquiri-lo com o S.O Android versão 4.0 para cima. Se olharmos por esse ponto de vista, devemos pensar em desenvolvermos nossa aplicação utilizando, como base, a versão 4.0.
1.3.2) O Publico
Um outro fator muito importante , e que destaco aqui , é a questão O PUBLICO. Nesse fator , a questão S.O deveria ser deixada “teoricamente” de lado, visto que muitos usuários ainda possuem aparelhos Android com uma versão mais antiga (como a versão 2.3 e 2.2), logo, devemos pensar também nesses usuários para “usufruir” das nossas aplicações desenvolvidas.
1.3.3) Qual prioridade devemos dar : Publico ou Versão do S.O ?
Agora a questão é : Como combinar a questão PUBLICO e VERSÃO do S.O para desenvolvermos a aplicação ? Se você pretende desenvolver uma aplicação Android simples (como um pequeno sistema de cadastro), podemos, se quisermos, dar prioridade a questão PUBLICO, procurando desenvolver sua aplicação Android para uma versão mais antiga, porém, ainda NÃO OBSOLETA . Agora se você desenvolver uma aplicação Android cheia de muitos recursos, cujos componentes só existem em versões mais atuais do sistema, devemos dar prioridade a questão VERSÃO do S.O.


Comentários