Acima das Nuvens com o Android

Acima das Nuvens com o Android

Fonte: Atualizado: sábado, 31 de maio de 2014 às 10:10

O sistema operacional Android impressionou o mundo, permitindo que aplicativos de computação em nuvem sofisticados sejam executados onde quer que você esteja.

Projetado para ser altamente eficiente em dispositivos alimentados por bateria, como o telefone inteligente T-Mobile G1, fundamentalmente, o Android é Linux e há diversas camadas para o modelo de programação do Android que permitem a criação de aplicativos seguros ajustados para computação em nuvem.

Introdução Em um segmento de mercado inundado por metáforas excessivamente sagazes, não é de se surpreender quando surge outra e capta a imaginação popular de pessoas criativas das áreas de negócios e de TI. Computação em nuvem é uma dessas metáforas e ? perdoe-me pela expressão ? impressionou o mundo. Mas o que isso realmente significa?

Nuvens, é claro, consistem em uma enorme quantidade de partículas de vapor d'água, chegando a centenas de milhões. Nuvens não têm controle central e, basicamente, vão para onde o vento sopra.

Com essa perspectiva, a grande quantidade de computadores clientes e servidores da Internet juntamente com muitos diferentes propósitos e entidades de controle que direcionam seu progresso são semelhantes a nuvens. Junte isso à revolução de dados wireless que as empresas de telefonia celular nos trouxeram e parece, realmente, que estamos todos cobertos por uma "nuvem" invisível de energia de computação.

Desde o início de computadores eletrônicos, há uma divisão clara da mão-de-obra entre quatro partes funcionais principais de um computador:

Dispositivos de entrada/saída (E/S) que fornecem a interface com pessoas/computador Unidade central de processamento Memória de acesso aleatório volátil (RAM) Memória não volátil As três primeiras partes colocam a "computação" nos computadores. É na quarta parte, onde os ativos de dados importantes são geralmente armazenados, que mudou mais radicalmente com o advento de computação em nuvem. Ativos de dados importantes residem na memória não volátil para que sejam protegidos contra a queda de energia elétrica ? independentemente de se a perda é deliberada.

Geralmente, dispositivos de memória não volátil são discos rígidos, mas também podem ser dispositivos de estado sólido, como placas digitais seguras (SD) e, até mesmo, dispositivos de fita magnética (praticamente obsoletos agora). Mas esses dispositivo de armazenamento têm suas limitações.

O tempo passa, a tecnologia progride e vieram as redes de computadores, nas quais os ativos de dados importantes de uma organização podem ser centralizados em um computador compartilhado por diversos terminais e dos quais se pode fazer backup regularmente, como uma função base necessária de TI.

Esse modelo (conhecido como o modelo de mainframe) ofereceu muitas vantagens ? uma sendo deixar mais leve a carga que cada local de terminal tinha. Pequenos escritórios com pouco mais de um pequeno terminal (teclado, mouse, monitor e PC) podiam acessar gigabytes de dados da empresa e o poder de processamento de grandes mainframes sem atravancar o local ? desde que estivessem conectados por fios.

A próxima grande mudança de paradigma veio com a rede das redes que conhecemos afetuosamente como a Internet, onde sistemas de computadores absolutamente gigantescos (redes locais) podem atender enormes populações de pequenos terminais em qualquer parte do mundo onde uma antena parabólica possa ser colocada. A natureza remota wireless dessa configuração ficou conhecida como a nuvem.

Então, vieram os assistentes pessoais digitais (PDAs), os telefones móveis e os telefones inteligentes, para os quais a miniaturização de computadores progrediu para o formato portátil, fator que conhecemos e amamos tanto. De repente, terminais inteligentes estão nas mãos de incontáveis milhões de pessoas produtivas, produzindo e consumindo informações a taxas prodigiosas.

De meados ao final dos anos 90, e-mail e a World Wide Web eram os aplicativos mais populares que dominavam a nuvem. A maioria das pessoas interagia com a nuvem usando um navegador da Web e entendia que a Internet era um aplicativo relativamente simples. Com o avanço de sucessos comerciais, como o Yahoo! e o Google, servidores e conexões de rede de terabytes substituíram discos rígidos locais como os dispositivos de armazenamento não volátil preferenciais.

Assim como muitos visionários de pensamento progressista previram, a nuvem tornou-se uma utilidade moderna, como água, telefones e eletricidade. Usando a rede digital de telefone móvel como um Provedor de Serviços da Internet (ISP), a nuvem cresceu e usa milhões de dispositivos portáteis como a principal ferramenta para exibir os dados que residem nesses servidores.

Assim como as nuvens se deslocam e são alteradas pelos ventos das mudanças, o mesmo ocorreu com os paradigmas sob os quais esses dispositivos operam ? os terminais ficaram menores, mais poderosos e muito mais portáteis, enquanto os servidores, de forma semelhante, ficaram mais poderosos e mais capacitados para atenderem às necessidades de dados dos usuários através da virtualização de software e da medição de seu uso.

As empresas não precisam mais manter grandes e caros "parques" de servidores 24 horas por dia quando há outra alternativa menos cara: contratar esses serviços externamente através de fornecedores, como Google, Amazon e IBM.

Através da virtualização, os aplicativos que anteriormente eram executados em ambientes customizados podem ser duplicados ou "ter imagem criada" para serem executados na nuvem nos servidores do fornecedor. E com a medição adequada desses serviços, a empresa não precisará pagar preços altos para aquelas horas em que seus serviços estão sendo usados de forma mínima.

À medida que a tecnologia de hardware seguiu em frente, o mesmo ocorreu com software, e vimos a criação de novos aplicativos. Por exemplo, serviços baseados em local que mapeiam os negócios próximos ao local em que a torre de celular ou o sistema de posicionamento global (GPS) integrado determinou que você está. Novos mercados talhados para download e teste de programas e arquivos de dados úteis, como o Android Market e o Amazon MP3 Market, para aquisição e download de música.

Sem dúvida, veremos avanços adicionais nesses novos aplicativos exclusivos de computação em nuvem ? por exemplo, as empresas poderiam classificar e selecionar informações de contato regionais, em seguida, transferir automaticamente a lista do dia de chamadas aleatórias para o telefone móvel baseado em Android do representante de vendas regional enquanto ele dorme.

A computação em nuvem, onde dispositivos portáteis complementam servidores poderosos, requer um sistema operacional que maximiza o que os arquitetos e programadores do sistema podem fazer em um pequeno computador cliente. Android é esse sistema operacional.

A arquitetura do Android Primeiramente, o Android é uma pilha de software para dispositivos móveis. Isso significa que no topo da lista de prioridades está a preservação da energia da bateria e o gerenciamento eficiente de recursos de memória limitados. Há cinco camadas distintas para a pilha do sistema Android:

O núcleo do Acorn RISC Machine (ARM) Linux forma a base sólida sobre a qual todas as outras camadas estão. Linux é uma tecnologia comprovada que é altamente confiável e a família de processadores ARM é conhecida pelo alto desempenho em requisitos de energia muito baixos. As bibliotecas fornecem o código de nível inferior reutilizável e compartilhável para funções básicas, como funções codecs ? software para codificação e decodificação de som e vídeo digital ? para apresentação de gráficos ricos em um pequeno monitor, suporte a shell seguro para tráfego TCP/IP criptografado na nuvem, assim como suporte a componente para navegação na Web (WebKit), funcionalidade de banco de dados SQL (SQLite) e funcionalidade da biblioteca C padrão, esperados em um sistema Linux. O interpretador de bytecode do tempo de execução Dalvik, muito parecido com o interpretador de bytecode da linguagem Java? , inclui alguns recursos distintos que definem de forma exclusiva o modelo de segurança e de preservação de energia do Android. Todo aplicativo atualmente em execução, por exemplo, possui seu próprio ID do usuário e sua própria cópia do interpretador em execução para separar processos de forma rígida por segurança e confiabilidade. A estrutura do aplicativo Android permite que você use e substitua componentes conforme achar necessário. Essas classes Java de alto nível são componentes altamente integrados que definem a API do Android. Os principais aplicativos do Android incluem o navegador WebKit, o calendário Google, o Gmail, o aplicativo Maps, o SMS messenger e um cliente de e-mail padrão, entre outros. Os aplicativos do Android são escritos na linguagem de programação Java e você pode fazer download de muitos mais do Android market rapidamente. Cada aplicativo Android pode ser subdividido ainda mais em unidades funcionais distintas:

Atividades Intentos Serviços Modelo de segurança Atividades Atividades são os componentes de um aplicativo Android que estendem a classe base Activity e definem uma interface que consiste em uma Visualização que responde a Eventos. Se um aplicativo consiste em três janelas (por exemplo, uma janela de login, uma janela de visualização de texto e uma janela de visualização de arquivo), cada uma é geralmente representada por uma diferente classe Activity .

O Android mantém uma pilha de histórico para cada execução de aplicativo a partir da página inicial e você pode clicar no botão Voltar para rolar de volta por esse histórico de atividades.

Intentos Intentos, como atividades, são uma classe especial de código de aplicativo que descrevem e definem o que um aplicativo deseja fazer. Intentos incluem uma camada sem direcionamento que permite reutilização e substituição sofisticadas de componentes.

Por exemplo, um aplicativo pode apresentar um botão rotulado Clientes que, ao ser clicado, exibe uma lista de contatos que são seus clientes. E é aqui que entra a falta de direcionamento: não é necessário usar o visualizador padrão para esses contatos; em vez disso, você pode substituir por um visualizador diferente.

Para alguns aplicativos, isso pode ser uma função muito poderosa de integração de aplicativos. Possivelmente, uma mapa topográfico é melhor para uma exibição específica do que a visualização de mapa padrão.

Classes, como uma BroadcastReceiver , definem código que será executado quando os eventos externos acionarem o mesmo. Eventos, como o disparo de um cronômetro ou o toque de um telefone, podem ser monitorados dessa forma. Geralmente, código como esse não exibe uma janela, mas pode usar a classe NotificationManager para alertar o usuário sobre algo que precisa de atenção.

Serviço Um serviço é um aplicativo executado em um nível baixo e sem um monitor ou UI. É, geralmente, um aplicativo que deve ser executado por muito tempo em segundo plano. Um exemplo perfeito disso é um programa reprodutor de mídia reproduzindo uma lista de músicas.

Apesar de um aplicativo de reprodução de mídia apresentar uma UI que permite que os usuários definam suas listas de reprodução, o programa passa o controle para o serviço para realmente reproduzir as músicas da lista de reprodução fornecida.

Modelo de segurança O modelo de segurança do Android permite que os programas tenham somente seus próprios dados. Se os programadores quiserem compartilhar dados entre diversos programas variados, eles podem definir provedores de conteúdo para esse propósito.

O pacote android.provider define classes e interfaces que permitem que aplicativos leiam muitos bancos de dados integrados do Android. Informações, como contatos, fotos e músicas, são facilmente compartilhadas entre aplicativos com essas interfaces.

O poder de software livre nunca deve ser subestimado, assim como o poder de pessoas livres e criativas. Livre de APIs proprietárias e interesses de empresas, que geralmente obstruem o progresso de engenharia de software, a plataforma Android possui uma comunidade de desenvolvedores grande e muito ativa, cujos talentos combinados realmente fazem da soma maior que as partes.

Deseja conferir poderes a sua carreira de programação? Aprenda a programar na plataforma Android e, algum dia, terá milhões de usuários de telefone móvel em seu mercado em potencial ? alguns dos quais podem precisar de seu programa.

O coração do Android é o ARM Linux. Isso, por si só, deveria inspirar confiança na capacidade da importância dessa plataforma em crescer rapidamente. Linux é um sistema operacional rápido e seguro com muitos milhares de programadores familiarizados com ele. Muitos sistemas baseados em Linux são conhecidos por terem um tempo de atividade de anos consecutivos conectados e atendendo pedidos na nuvem ? e isso, realmente, define confiabilidade.

O ambiente de desenvolvimento: Eclipse, Windows, Linux Os programadores têm diversas opções em relação ao ambiente de desenvolvimento Android. Podem usar o Microsoft Windows XP, Windows Vista e Windows 7, o Macintosh OS X (V10.4.8 ou posterior, somente x86) ou o Desktop Linux (preferencialmente, o Ubuntu). Há um kit de desenvolvimento de software (SDK) que pode ser transferido por download para todos esses sistemas operacionais comumente usados.

É possível usar um IDE de GUI, como o Eclipse ou o NetBeans da Sun Microsystems, ou o famoso método "verdadeiro programador" da linha de comando e um editor padrão. A opção é sua.

A comunidade Android incentiva comunicação, assim como as empresas por trás da criação do Android ? Google, HTC, T-Mobile e outros membros do Projeto Open Handset Alliance. Open realmente significa manter linhas de comunicação entre pessoas (programadores, usuários, profissionais de marketing, etc.) abertas, protocolos abertos e APIs de programação abertas.

As organizações também podem colocar programas e dados proprietários no Android, graças aos tipos de licenças de software usados. Isso evita que elas fujam da plataforma, mas também não limita as opções dos consumidores. É uma combinação vencedora para todas as partes.

Comece com o SDK do Android A primeira tarefa para qualquer pessoa interessada em desenvolver para o Android é fazer download e instalar o SDK do Android. Agora, você está pronto para programar!

Há tantas maneiras de iniciar a programação quanto há programadores. Alguns, incluindo a minha pessoa, gostam de estudar tudo que podem fazer antes de iniciar a codificação.

Outros gostam de entrar de cabeça e seguir os exemplos de tutoriais fornecidos pela abrangente documentação do Android. Mas onde quer que estejam suas inclinações, você deve, eventualmente, codificar alguma coisa. Para iniciar, verifique o desvio do Android no programa mais complexo Hello World - ao final do artigo consulte a seção Recursos para obter o aplicativo de amostra "Hello Android".

Recursos do desenvolvedor Há diversos recursos na nuvem para desenvolvimento para o Android, incluindo diversos wikis e fóruns da comunidade Android, assim como diversos blogs de programação do Android.

A principal empresa que direciona o fenômeno Android, a Google, é, fundamentalmente, uma empresa de comunicações e, portanto, possui diversos fóruns úteis (conhecidos como Google Groups) para comunicação entre desenvolvedores de diferentes conjuntos de qualificações e talentos.

Os links do Android na seção Recursos não conseguem nem começar a mostrar a vastidão do universo Android. Computação em nuvem ? e o Android, especificamente ? é algo muito, muito, muito interessante.

Mantendo nossas cabeças nas nuvens: um olho no futuro Imagine seu telefone celular Android como meramente uma extensão do poder de computação coletiva. Enquanto estiver sentado em um café tomando seu latte favorito, o que gostaria de ver em seu telefone portátil? Diagramas de fluxo de caixa? Dados e gráficos do portfólio para mostrar seu crescimento? Possivelmente, os dados de terremoto atuais diretamente do Centro Nacional de Informações de Terremotos ou simplesmente quem ganhou o campeonato da NBA na noite passada? 

O acesso aos serviços que ativam seus aplicativos customizados de computação em nuvem é tão simples quanto visitar os Web sites do centro e explorar o que podem fazer por você.

Os dados estão "lá fora" e o poder de processamento para que façam sentido, também: tudo que se precisa é você fazer as coisas acontecerem. O tempo dirá quais novos aplicativos inovadores de computação em nuvem serão criados nos próximos anos com todos buscando superar as criações dos grandes desenvolvedores que os precederam.

Recursos Aprender

Saiba mais sobre Android . Descubra porque a computação em nuvem é importante, como iniciar e onde aprender mais sobre ela no developerWorks em Espaço de Computação em Nuvem . Interaja com desenvolvedores do Android em Google Groups . Para obter informações adicionais sobre o potencial de computação em nuvem, verifique " Manifesto Arquitetônico: Uma Introdução a Possibilidades (e Riscos) de Computação em Nuvem ." Para ouvir entrevistas e discussões interessantes para desenvolvedores de software, verifique os podcasts do developerWorks . Visite, no developerWorks, a Zona de Software Livre para obter informações extensivas de instruções, ferramentas e atualizações de projetos para ajudá-lo a desenvolver com tecnologias de software livre e usá-las com produtos IBM. Assista e aprenda sobre tecnologias da IBM e de software livre e funções de produtos gratuitamente com as demos on demand do developerWorks . Obter produtos e tecnologias

Acesse produtos de middleware IBM no ambiente virtual Amazon Elastic Compute Cloud (EC2) e comece a desenvolver seus aplicativos hoje. Faça download do SDK do Android . Verifique o aplicativo de amostra do Android . Inove seu próximo projeto de desenvolvimento de software livre com o software de avaliação da IBM , disponível para download ou em DVD.  

Este conteúdo foi útil para você?

Sua avaliação é importante para entregarmos a melhor notícia

Siga-nos

Mais do Guiame

O Guiame utiliza cookies e outras tecnologias semelhantes para melhorar a sua experiência acordo com a nossa Politica de privacidade e, ao continuar navegando você concorda com essas condições