Você está na página 1de 17

1.

PLATAFORMA ANDROID

O Android trata-se de um Sistema Operacional criado para ser utilizado em


dispositivos móveise que roda sobre a plataforma Linux.

Em 2005 após adquirir a empresa Android Inc, a Google iniciou o desenvolvimento de


uma plataforma de telefone móvel baseado em Linux, e tinha como principal objetivo
a flexibilidade, ser open source e facilitar o processo de migração para os fabricantes.

Inicialmente a Google era a responsável pelo desenvolvimento do Android, tal tarefa


foi transferida para a empresa Open Handset Alliance, mas a google continua
responsável pela gerência do produto e engenharia de todo o processo.

O Android permite o desenvolvimento em linguagem de programação Java,


controlando os dispositivos via biblioteca desenvolvidas pela própria Google.

O sistema operacional Android possui cerca de 12 milhões de linhas de código, sendo :


3 milhões em XML, 2.8 milhões em C, 2.1 milhões em Java e 1.75 milhões em C++.

Hoje em dia temos cerca de 100 mil aplicações disponíveis para execução no Android.

A Google iniciou sua projeção no mercado de telefones móveis em Dezembro de 2006


e teve seu primeiro telefone comercialmente disponível em 22 de Outubro de 2008,o
HTC Dream. Hoje em dia a Google também entrou na briga dos tablet com a versão 3.0
do Android encontrado no aparelho Motorola Xoom, que foi lançado em 24 de
Fevereiro de 2011 nos Estados Unidos.

A partir da versão 1.5, a Google nomeou suas versões com nomes de sobremesa ou
bolos.

 1.5: Cupcake (Abril de 2009, com a última revisão oficial a maio de 2010)
 1.6: Donut (Setembro de 2009, com a ultima revisão oficial a maio de 2010)
 2.1: Eclair (Janeiro de 2010, com a última revisão oficial a maio de 2010)
 2.2: FroYo (Frozen Yogourt - Maio de 2010, com a última revisão oficial a julho
de 2010)
 2.3: Gingerbread (versão atual lançada a 6 de dezembro de 2010)
 3.0: Honeycomb (Lançada especialmente para tablets em Janeiro de 2011)[12]
 2.4 Ice Cream (Em desenvolvimento)
1.5 Arquitetura

Devido a grande variedade de recursos do Android, muitos o confundem com um


sistema operacional desktop. O Android trata-se de um ambiente em camadas
baseado em Kernel Linux.

O Google trata o Android como uma pilha de softwares. Cada camada desta pilha
agrupa vários programas que suportam específicas funções do sistema operacional e
estão divididas em 4 fases.

A base da pilha é o kernel Linux. O Google utilizou a versão 2.6 do Linux para
desenvolver o Kernel do Android, incluindo os programas de gerenciamento de
memória, configurações de segurança, softwares de gerenciamento de energia e vários
drivers de hardware.

O próximo nível inclui as bibliotecas do Android. Consiste em um conjunto de


instruções que dizem ao dispositivo como lidar com diferentes tipos de dados.

No mesmo nível da camada de bibliotecas, possui a camada de tempo de execução do


Android, trata-se de um conjunto de bibliotecas do núcleo Java, aonde os
desenvolvedores de aplicações Android constroem suas aplicações em linguagem de
programação Java. Incluindo também a Maquina Virtual Dalvik (DVM).

A Dalvik Virtual Machine é uma máquina virtual baseada em registradores. Foi


projetada e escrita por Dan Bornstein com o auxílio de outros engenheiros do Google.
Esta Maquina Virtual foi otimizada para requerer pouca memória, além de permitir
que múltiplas instâncias da máquina virtual sejam executadas ao mesmo tempo,
ignorando o sistema operacional, o isolamento de processos, o gerenciamento de
memória e o suporte a threading. Muitos confuem a Dalvik como uma maquina virtual
java, porém digamos que isso seja parcialmente incorreto, já que o bytecode utilizado
não é o do jvm e sim de uma ferramente chamada DX, que foi incluída no SDK Android
para transformar os arquivos .class de uma classe compilada por um compilador jvm
em outro formato específico de classe, o formato .dex . Abaixo uma imagem
representando o local onde a Dalvik VM é localizada:
A terceira camada é o Framework da aplicação. Nela inclui os programas que
gerenciam as funções básicas do telefone, como alocação de recursos, aplicações de
telefone e mudança entre processos . O framework de aplicações do Android possui o
acesso totalmente liberado para que os desenvolvedores usufruem das vantagens da
capacidade de processamento do Android e assim, suportem recursos quando estão
construindo uma aplicação Android. Resumindo, o framework de aplicações pode ser
visto como um conjunto de ferramentas básicas para que os desenvolvedores possam
construir ferramentas muito mais complexas.

No topo da pilha estão as aplicações em si. É onde você encontra funções básicas do
dispositivo, como fazer chamadas telefônicas, acessar o navegador Web ou acessar sua
lista de contatos. Se você é um usuário comum, esta é a camada que você mais usará.
Você faz isso com a interface de usuário. Apenas os programadores do Google, os
desenvolvedores de aplicação e os fabricantes de hardware acessam outras camadas
mais baixas da pilha.

Você pode alterar a forma como seu telefone Google funciona fazendo o download de
aplicativos para ele.

 Camadas do Software Android


2.5 Kernel Linux
O kernel é um item fundamental em todos os sistemas operacionais. Após o
surgimento do Linux, o termo kernel ficou mais conhecido e qualquer um que já tenha
se aventurado no próprio sabe da sua existência, coisa que antigamente só era
conhecido por estudantes de computação ou por desenvolvedores da área.

Explicando de forma ampla, o kernel pode ser entendido como uma série de arquivos
escritos em linguagem C e Assembly que constituem o núcleo do sistema operacional.
O kernel é o responsável por todo o hardware do computador. Cabe a ele garantir que
todos os processos sejam executados pela CPU e permitir que estes consigam
compartilhar a memória do computador.

O kernel do Linux foi idealizado pelo finlandês Linus Torvalds, em 1991. Torvalds era
um estudante de ciência da computação e que devido aos seus estudos, teve a
necessidade de criar uma nova versão do Minix, um sistema operacional baseado no
Unix e desenvolvido por Andy Tannennbaum.

Porém Torvalds não imaginava que esse nova criação se resultaria na primeira versão
do kernel do Linux.]
O kernel inicia o seu trabalho durante a inicialização do sistema (boot), a partir das
instruções que são lidas na MBR (Master Boot Record), um recurso responsável por
indicar ao BIOS do computador como e onde carregar o sistema operacional.

O kernel detecta os dispositivos de hardware essenciais do computador.


Posteriormente, caso toda a iniciação seja realizada com sucesso o kernel checa a
memória e a prepara para o uso através de uma função de paginação. As interrupções
(IRQs), os discos, memória-chave, são acionados em seguida. Após isso o sistema
operacional está pronto para funcionar.

Após o usuário ter se logado no sistema, o kernel iniciar a execução das funções
responsáveis por controlar o uso da memória pelos programas ou de atender a
chamada de uma interrupção de hardware.

Para evitar o grande volume, os drivers são carregados como módulos após o kernel
ser ativado. O problema é que carregar os drivers por módulos gera uma queda de
desempenho e, por isso, muitos usuários preferem recompilar o kernel de seus
sistemas para que esse carregue os drivers junto com a inicialização.

O kernel do Linux permite que o sistema operacional seja compatível com uma série de
plataformas, desde palmtops até mainframes. As principais plataformas são : Apple,
Sun, Sparc, Alpha, entre outras. A figura abaixo mostra o Linux rodando no videogame
Nintendo DS:
O kernel do Linux permite que o sistema operacional seja compatível com uma série de
plataformas, desde palmtops até mainframes. Até mesmo nos computadores da Apple
é possível instalar o Linux. As principais plataformas compatíveis são: Apple, Sun,
Sparc, Alpha, PowerPC, i386 (Intel), ARM, entre outras. A foto abaixo mostra o Linux
rodando no videogame Nintendo DS:

Também existe compatibilidade com sistemas de arquivos. Acredite, apesar de não ser
recomendável por questões de desempenho, é possível instalar o Linux até mesmo em
partições FAT32. As principais compatibilidades neste aspecto são com os seguintes
sistemas de arquivos: FAT, FAT32, ext2, ext3, ReiserFS, JFS, XFS, NTFS, entre outros.

3.5 Bibliotecas
O Android possui uma relação de bibliotecas C/C++ utilizadas por vários componentes do
sistema que são disponibilizadas através do framework para os desenvolvedores. Abaiaxo
as principais bibliotecas utilizadas:

 System C library – uma implementação derivada da biblioteca C, padrão do


BSD sintonizada para dispositivos rodando Linux;
 Media Libraries – baseado no PacketVideo´s OpenCORE. As bibliotecas
suportam os mais populares formatos de áudio e vídeo, e também imagens
estáticas;
 Surface Manager – responsável pelo acesso ao subsistema de exibição bem
como as múltiplas camadas de aplicações 2D e 3D;
 LibWebCore – web browser engine utilizado tanto no Android Browser quanto
para exibições web;
 SGL – responsável pelos gráficos 2D;
 3D libraries – 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 – renderização de fontes bitmap e vector;
 SQLite – um poderoso e leve engine de banco de dados relacional disponível
para todas as aplicações;

4.5 Ambiente de execução

Conforme o estudo realizado o Android trata-se de um sistema operacional para


dispositivos móveis.

Hoje em dia possuímos diversos celulares que rodam com o sistema operacional
Android. O primeiro lançamento comercialmente falando foi em 22 de Outubro de
2008 , o HTC Dream.

O HTC Dream, comercializado nos Estados Unidos e Europa sob o codinome T-mobile
G1. Foi uma parceria realizada entre a Google que forneceu o sistema operacional
Android e a HTC que disponibilizou o hardware.

A maioria do código fonte é um software livre com algumas exceções. O aparelho já


vem com vários dispositivos instalados como : Gmail, Google Maps, YoutTube, etc. É
possível obter mais aplicativos através do Android Market, que trata-se de uma loja
web para compra de aplicativos Android.

Em dezembro de 2008, a Google lançou uma versão desbloqueada do HTC Dream, o


Android Dev Phone 1. Este lançamento permite acesso total aos arquivos internos do
celular além de utilitários pré-instalados para auxiliar no desenvolvimento do Android
Apps. Porém esta versão só era vendida para membros registrados na comunidade
Android.

Este ano o Android iniciou a sua era nos tablets. O primeiro foi o Motorola Xoom,
lançado em Feveiro de 2011. O sistema operacional possui algumas diferenças em
comparação com os usados em Smartphones, porém a idéia é a mesma.

A primeiro momento o novo tablet ganhou grandes elogios da críticia,principalmente


pela velocidade de processamento e rápida resposta aos toques na tela.

1.5 Framework
Com a grande expansão do Android , o mercado tem disponível várias opções de framework
para desenvolvimento e execução. O principal deles é o Android SDK que é liberado pelo
próprio Android e está disponível para download na Web. De todos disponíveis ele é o mais
completo. O mesmo é compatível com os sistemas operacionais Windows XP e Vista, MAC OS x
10.4.8 e Linux (Linux Ubuntu Dapper Drake e Gusty Gibbon).

O SDK do Android é suportado por diversos ambiente de desenvolvimento como : Eclipse IDE,
Eclipse 3.3 e 3.4 ; JDK 5 e JDK 6. Além de possuir um próprio plug-in de desenvolvimento
disponibilizado pelo Android que é o Android Development Tools.

2.5 Aplicativos

O Google adotou uma medida diferente do seu principal concorrente em relação aos
aplicativos utilizados. Enquanto a Apple prefere ter total controle tando do hardware quanto
do software, o Google optou por seguir o caminho oposto, criando um sistema aberto e
incentivando os desenvolvedores a criar novos aplicativos.

Com essa iniciativa o Google entendeu que como nos desktops, as plataformas de smartphone
estão se consolidando e o mais importante não é só o hardware e as funções básicas, mas
também os aplicativos que incrementam o dispositivo.

Diferente da Apple, o Google não se importa com o desenvolvimento de aplicativos ruins que
possam prejudicar a imagem da plataforma, assim disponibilizando todas as ferramentas
necessárias para que o desenvolvedor comece a estudar o sistema sem precisar ter um
smartphone e utilizando o próprio PC.

Devido a medida utilizada pelo Google o número de aplicativos disponíveis surpreenderam a


própria empresa atingindo números exorbitantes em curto prazo. No início de 2010 o Android
possuía cerca de 10 mil aplicativos. Em uma nova pesquisa efetuada em Janeiro de 2010 o
Android já contava com 200 mil aplicativos em sua loja virtual , tal número que impressionou já
que 2 meses antes da pesquisa o Google contava com 100 mil aplicativos em sua loja virtual a
Android Market . Ou seja, um aumento de 100% em apenas 60 dias.

Em uma publicação em Junho de 2010 a revista Abril selecionou os 10 melhores aplicativos


utilizados. São eles :

 Seesmic

É o melhor cliente utilizado do Twitter. Além de ser leve e fácil de usar possuir recursos a mais
que os outros clientes.

 MSN Talk

O programa mais fiel à versão do Messenger utilizado para desktop.


 Advanced task killer Free

Utilizado principalmente por pessoas que possui muitos aplicativos em seus dispositivos. Com
ele é possível matar os processos que for necessário caso o aparelho esteja com perda de
performance

 AppBrain

Utilizado para apagar os programas indesejados na memória. Além de comparar os aplicativos


que possui no celular e sugerir novos aplicativos que complementem

 AndroZip

Utilizado para realizar a navegação dos documentos nas árvores de diretórios, além de
descompactar arquivos baixados do e-mail

 DropBox

Famoso programa para sincronizar arquivos também está disponível para acesso e carregar
arquivos pelo celular através da nuvem utilizando login e senha.

 Double Twist

Melhor player de música disponível. Podendo sincronizar músicas, vídeos, playlist e podcasts
com o iTunes.

 Torrent-fu

Utilizado para realizar o download, porém para o PC e não para o smartphone. Com ele você
seleciona os download que deseja e o mesmo é executado para o seu PC.

 Music Wizard

Programa também utilizado para download, exclusivamente para música, porém pode ser
baixado no smartphone diferente do Torrent-fu

 WeatherBug

Disponível GPS para localização e exibe temperaturas em graus Celsius, além de permitir a
inclusão de widget com as informações principais a serem exibidas na tela

3.5 Ambientes de desenvolvimento

A maneira mais fácil para você começar a desenvolver aplicativos Android é fazer o
download do Android SDK e do IDE do Eclipse e pode ser realizado no Microsoft®
Windows®, Mac OS X ou Linux.
Tomando como parâmetro a utilização do IDE do Eclipse e o plug-in Android
Developer Tools para Eclipse. Os aplicativos são gravados na linguagem Java, mas são
compilados e executados pela Dalvik VM (Descrito anteriormente). O Eclipse
disponibiliza um ambiente Java com muitos subsídios, incluindo ajuda sensível ao
contexto e sugestão de código.

Após a compilação o Android Developer Tools verifica se está empacotado


corretamente incluindo o arquivo AndroidManifest.xml .

Caso não queria utilizar as opções descritas acima, os desenvolvedores podem utilizar o
Android SDK. Aonde é distribuído como um arquivo zip que é descompactado em um
diretório em sua unidade de disco rígido. O mesmo inclui :

android.jar

O arquivo Java archive contendo todas as classes do Android SDK necessárias para a
construção do seu aplicativo.

documention.html e diretório de documentos

A documentação do SDK é fornecida localmente e na Web. Ela tem, em grande parte,


forma de JavaDocs, facilitando a navegação em vários pacotes no SDK. A
documentação também inclui um Guia de Desenvolvimento de alto nível e links para a
comunidade mais ampla do Android.

Diretório de amostras

O subdiretório de amostras contém código de origem completo para uma variedade


de aplicativos, incluindo ApiDemo, que exercita muitas APIs. O aplicativo de amostra é
um excelente lugar para você explorar quando começar a desenvolver seu aplicativo
Android.

Diretório de ferramentas

Contém todas as ferramentas de linha de comando para construir aplicativos Android.


A ferramenta mais útil e usada com mais frequência é o utilitário adb (Android Debug
Bridge).

usb_driver

Diretório contendo os drivers necessários para conectar o ambiente de


desenvolvimento a um dispositivo ativado por Android, como G1 ou o telefone de
desenvolvimento desbloqueado Android Dev 1. Esses arquivos só são necessários para
desenvolvedores que utilizam a plataforma Windows.

Os aplicativos Android podem ser executados em um dispositivo real ou no emulador


fornecido pelo Android SDK, possui o nome de Android Emulator. Segue abaixo a tela
inicial do emulador.
Figura 3. Android Emulator
Um dos recursos utilizados também por desenvolvedores é p Android Debug Bridge,
aonde é possível a cópia de arquivos de e para o dispositivo. Os comandos Shell
utilizados, possibilita que o desenvolvedor se conecte do próprio telefone e emitir
comando fundamentais. Abaixo uma figura exibindo o comando Shell adb com relação
a um dispositivo real conectado a um laptop Windows com um cabo USB.

Figura 4. Utilizando o Comando Shell adb

Abaixo retiramos um trecho do artigo de Frank Ableson, aonde o mesmo ensina a


codificar um aplicativo básico para Android.

Esta seção apresenta um rápido tour pela construção de um aplicativo Android. O


aplicativo de exemplo é tão simples quanto você pode imaginar: um aplicativo "Hello
Android" modificado. Você vai incluir uma pequena modificação para deixar a cor do
plano de fundo da tela toda branca para poder utilizar o telefone como uma lanterna.
Nada muito original, mas será útil como exemplo. Faça download do código fonte
completo.

Para criar um aplicativo no Eclipse, selecione File > New > Android project, que
inicia o assistente New Project Android.
Figura 5. Assistente New Project Android

Em seguida, você cria um aplicativo simples com uma única atividade, junto com um
layout de UI armazenado em main.xml. O layout contém um elemento de texto que
você vai modificar para chamar de Android FlashLight. O layout simples é mostrado
abaixo.

Listagem 1. Layout do FlashLight

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/all_white">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" android:textColor="@color/all_black"
android:gravity="center_horizontal"/>
</LinearLayout>

Crie alguns recursos de cor em strings.xml.

Listagem 2. Cor em strings.xml

<?xml version="1.0" encoding="utf-8"?>


<resources>
<string name="hello">Android FlashLight</string>
<string name="app_name">FlashLight</string>
<color name="all_white">#FFFFFF</color>
<color name="all_black">#000000</color>
</resources>

O layout da tela principal possui uma cor de plano de fundo definida como all_white.
No arquivo strings.xml, você vê que all_white é definida como um valor trio RGB de
#FFFFFF ou toda branca.

O layout contém um único TextView, que é, de fato, apenas uma parte de um texto
estático; ele não é editável. O texto é configurado para ser preto e centralizado
horizontalmente com o atributo gravity.

O aplicativo possui um arquivo de origem Java chamado FlashLight.java, conforme


mostrado abaixo.

Listagem 3. Flashlight.java

package com.msi.flashlight;
import android.app.Activity;
import android.os.Bundle;
public class FlashLight extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

O código básico é gerado diretamente a partir do assistente New Project:

 Ele faz parte de um pacote Java chamado com.msi.flashlight.


 Ele possui duas importações:
o Uma para a classe de atividade
o Uma para a classe de pacote configurável
 Quando essa atividade é iniciada, o método onCreate é invocado, passando um
savedInstanceState. Não se preocupe com esse pacote configurável em relação
aos nossos propósitos; ele será utilizado quando uma atividade for suspensa e depois
continuada.
 O método onCreate é uma substituição do método de classes de atividade de mesmo
nome. Ele chama o método onCreate da superclasse.
 Uma chamada para setContentView() associa o layout da UI definido no arquivo
main.xml. Tudo que estiver no main.xml e no strings.xml é automaticamente mapeado
para as constantes definidas no arquivo de origem R.java. Nunca edite esse arquivo
diretamente, já que ele é alterado em cada compilação.

A execução do aplicativo apresenta uma tela branca com texto preto.

Figura 6. Tela Branca da Lanterna

A configuração do arquivo AndroidManifest.xml para o aplicativo FlashLight é


mostrada abaixo.
Listagem 4. AndroidManifest.xml para FlashLight

<?xml version="1.0" encoding="utf-8"?>


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.msi.flashlight"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".FlashLight"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Este arquivo foi criado automaticamente pelo plug-in Android Developer Tools para
Eclipse. Você não precisou fazer nada.

É claro que o aplicativo não é absolutamente magnífico. Mas ele seria conveniente se
você quisesse ler algo sem atrapalhar o sono de seu(sua) companheiro(a), ou se você
precisasse se localizar na caixa do fusível no porão durante uma queda de energia.

Bilbiografia

http://pt.wikipedia.org/wiki/Android

http://informatica.hsw.uol.com.br/google-phone2.htm

http://www.augustovespermann.com/2010/04/arquitetura-do-android/

http://pt.wikipedia.org/wiki/Dalvik_virtual_machine

http://www.infowester.com/linuxkernel.php

http://www.portalandroid.org/comunidade/viewtopic.php?f=7&t=11

http://en.wikipedia.org/wiki/HTC_Dream
http://idgnow.uol.com.br/computacao_pessoal/2011/03/06/comparativo-ipad-2-vs-
motorola-xoom/

http://www.hardware.com.br/tutoriais/aplicativos-indispensaveis-android/

http://www.ibm.com/developerworks/br/library/os-android-devel/

Você também pode gostar