Android o sistema do futuro...
Autor: Denis Fernandes | Publicado: 2011-04-23T19:04:00-03:00


IntroduçãoApesar do início tímido, o Android logo começou a crescer rapidamente, saindo da situação incipiente que ocupava em 2008 para o posto de um dos sistemas dominantes nos smartphones high-end e tablets. Com exceção da Apple, da Nokia e da Microsoft (que por motivos óbvios têm preferido alavancar seus próprios sistemas), praticamente todos os outros grandes fabricantes possuem projetos relacionados ao Android, que vão de tablets, smartphones e smartbooks a robôs de limpeza. Com tantos projetos em curso, é de se esperar que o Android continue se popularizando nos próximos anos, com uma grande chance de se tornar a plataforma dominante para dispositivos móveis.Ao falar no Android é impossível deixar de relacionar o sistema ao Google, que apesar de ser mais conhecido por causa do mecanismo de buscas, do Gmail e do AdSense, investe nas mais diversas áreas, de painéis solares a novos algoritmos de inteligência artificial. Em 2005 decidiram entrar também no ramo dos smartphones, adquirindo a Android Inc., uma pequena empresa de desenvolvimento de sistemas embarcados, dando origem aos boatos de que o Google estaria trabalhando no "Google Phone".Quando foi finalmente divulgado, em 2007, o projeto acabou se revelando bem mais ambicioso que o originalmente previsto. Ao invés de estarem simplesmente trabalhando em um modelo específico de smartphone, anunciaram um sistema operacional open-source (http://code.google.com/android/), baseado em Linux, que pode ser usado também em outros dispositivos.Apesar de ter começado como um projeto particular, a partir de novembro de 2007 o desenvolvimento dos componentes open-source foi transferido para a Open Handset Alliance, uma fundação sem fins lucrativos, que, além do Google, inclui algumas dezenas de fabricantes de aparelhos, empresas de telefonia e desenvolvimento de softwares.O Android é, sob diversos ângulos, uma antítese do iPhone. Enquanto a Apple optou por manter um controle estrito sob sua plataforma, controlando tanto o hardware quanto o software, impondo restrições aos desenvolvedores e controlando a distribuição dos aplicativos, o Google optou por seguir o caminho oposto, criando um sistema aberto e incentivando a criação de aplicativos para a plataforma, inclusive com prêmios em dinheiro.Grande parte da estratégia em torno do Android é centrada no desenvolvimento de aplicativos por parte de outras empresas e programadores independentes. O Google entendeu que, assim como nos desktops, as plataformas de smartphones estão se consolidando e o mais importante passou a ser os aplicativos e não apenas o hardware ou as funções básicas do sistema. Tendo isso em mente, faz sentido que, sendo o último a entrar no mercado, o Google tenha investido pesado, montando uma grande equipe de desenvolvimento, investindo em contatos com fabricantes e na divulgação do sistema e incentivando a participação externa.Enquanto a Apple tenta restringir os desenvolvedores, com medo de que aplicativos ruins possam prejudicar a imagem da plataforma, o Google adotou uma atitude liberal, disponibilizando as ferramentas e deixando que a coisa flua naturalmente. Você mesmo pode baixar o SDK nohttp://developer.android.com&nbsp;e começar a estudar o sistema usando seu próprio PC, sem nem mesmo precisar de um smartphone baseado na plataforma.Entra em cena, então, o Android Market, que faz o papel de canal de distribuição, assumindo a função que no mundo Apple pertence à AppStore. Ele serve como um repositório central de softwares para a plataforma, permitindo que eles sejam instalados rapidamente. Em julho de 2010 o Android Market já atingiu a marca de 100.000 aplicativos, um número que deve continuar crescendo rapidamente.Desenvolvimento e o Android MarketEmbora a ideia geral seja que aplicativos sejam compatíveis com todos os dispositivos baseados no Android, esta é uma ideia impossível de implementar na prática, já que cada aplicativo exige uma versão mínima do sistema para rodar, além de casos de aplicativos com requerimentos específicos (como para telas WXGA, que não rodam nos aparelhos com telas HVGA). Prevendo isso, o cliente leva em conta as características do aparelho sobre o qual está rodando, exibindo apenas os aplicativos compatíveis com ele.Como de praxe, os aplicativos disponíveis vão desde aplicativos realmente inovadores e uteis, até mini-aplicativos especializados que se limitam a mostrar alguma informação específica, passando por todos os tipos de jogos e inutilidades, que se dividem entre aplicativos gratuitos e pagos. Infelizmente (agosto de 2010), os aplicativos pagos ainda não estão disponíveis no Brasil, mas nada impede que os aplicativos desejados sejam instalados manualmente.Está disponível também o App Inventor, uma plataforma de desenvolvimento rápido, baseada na Open Blocks Java library do MIT, que oferece blocos de código com ações pré-programadas que podem ser "encaixados" para criar aplicativos funcionais em poucos minutos, combinando as funções disponíveis. Conforme programa, um demo é automaticamente mostrado em um aparelho conectado na porta USB, o que permite que você teste as funções enquanto desenvolve e no final transfira o aplicativo finalizado automaticamente:A disponibilidade do App Inventor representa uma democratização da plataforma, já que permite que usuários com pouco ou quase nenhum conhecimento de programação possam desenvolver aplicativos simples para satisfazer as necessidades do dia-a-dia, sem depender unicamente dos aplicativos do Android Market.Naturalmente, nem tudo são flores, já que embora os componentes básicos da plataforma (o kernel, o middleware baseado no Apache e os componentes da interface com o usuário) sejam abertos, o Google mantém o controle sobre o acesso ao Android Market e sobre os aplicativos que permitem acesso aos serviços do Google (Gmail, Maps, etc.). O controle sobre o Android Market é um aspecto importante da estratégia para evitar a fragmentação da plataforma (já que permite que o Google pressione os fabricantes e desenvolvedores em torno do desenvolvimento de softwares que sigam os padrões e rodem em diversos dispositivos, evitando o florescimento de aplicativos limitados, que rodam em apenas um ou alguns poucos modelos), mas por outro lado causa atritos com os fabricantes de aparelhos e operadoras e deixa muita gente com uma pulga atrás da orelha. Isso tem levado ao aparecimento de forks do sistema destinados a mercados específicos.Um bom exemplo é o "OPhone", desenvolvido por fabricantes Chineses, onde os aplicativos proprietários do Google são substituídos por aplicativos que se integram com serviços locais. O OPhone não oferece acesso ao Android Market, que é substituído por pequenas coleções de aplicativos oferecidas pelas operadoras locais e por pacotes instados localmente. Isso faz com que, embora compartilhe dos mesmos componentes básicos, o "OPhone" seja muito diferente do Android em termos de uso prático.Outro aspecto significativo é que embora o uso dos componentes open-source do sistema seja livre, os fabricantes de aparelhos ainda precisam pagar licenças pelo uso dos componentes proprietários e precisem aderir às normas definidas pelo Google para uso do sistema. É uma situação similar à de muitas distribuições Linux comerciais, onde você pode usar livremente os pacotes abertos, mas precisa pagar uma licença de uso pelo pacote completo, devido à presença de alguns componentes proprietários. O Google ganha também dinheiro com os acessos aos serviços (e a exibição de anúncios) e com comissões sobre as vendas de aplicativos através do Android Market.Além da questão do licenciamento, existem também exigências com relação a componentes. Com exceção de acordos específicos, todos os dispositivos devem ter tela touch-screen, câmera, bluetooth e GPS. Aparelhos sem algum destes componentes não recebem o carimbo de compatibilidade e consequentemente não podem oferecer acesso ao Android Market (pelo menos não legalmente), como é o caso de muitos tablets e celulares de baixo custo made in China.Do ponto de vista do usuário também existem algumas restrições, já que o sistema roda em modo user-space, onde você não tem acesso à pastas do sistema nem permissões para alterar muitas configurações (seguindo o exemplo, seria como usar o Ubuntu com uma conta regular de usuário, sem acesso ao sudo), não pode regravar o firmware com imagens que não tenham sido assinadas pelo fabricante e assim por diante. Na maioria dos aparelhos é possível obter acesso root usando exploits disponibilizados pela comunidade, mas já existem casos de aparelhos com proteções de hardware contra o feito, como o no caso do Motorola Droid X, que embora tenha sido rapidamente quebrada, indica que a maioria dos fabricantes não são exatamente simpáticos à ideia.Em outras palavras, embora o sistema seja predominantemente open-source, o sistema está longe de ser completamente aberto (sem contar as proteções incluídas nos aparelhos) por isso é importante pesquisar sobre a disponibilidade de exploits para obter acesso de root e de versões modificadas das ROMs antes de se decidir pela compra de um modelo específico.Além do Android Market (http://www.android.com/market/), existem também lojas menores que oferecem aplicativos para a plataforma, oferecendo opções para os desenvolvedores que tiveram seus aplicativos rejeitados, ou querem um canal para vender aplicativos sem o pagamento de comissões. Dois exemplos são o&nbsp;http://andappstore.com&nbsp;e o&nbsp;http://slideme.org/. É possível também instalar aplicativos localmente através do comando "adb install", disponível no SDK.Entendendo o sistemaO primeiro aparelho comercial baseado no Android foi o HTC G1, lançado em outubro de 2008, que foi baseado no Android 1.5 e posteriormente atualizado para o 1.6 (a mesma versão que é ainda usada em muitos tablets e em alguns smartphones recentes, como no caso do diminuto Sony X10 Mini). O G1 não foi um aparelho particularmente bem-recebido, já que era volumoso e o sistema de deslizamento do teclado era frágil e tendia a apresentar problemas com o uso, mas ele oferecia uma configuração bastante sólida para a época, com um processador Qualcomm MSM7201A (ARM11) de 528 MHz, tela HVGA (480x320) sensível ao toque, teclado QWERTY deslizante, câmera de 3.2 MP, Wi-Fi, Bluetooth, GPS e suporte a 3G com HSDPA:Embora oficialmente o G1 tenha ficado estacionado no Android 1.6, é possível atualizá-lo para o 2.1 (e em breve também para o 2.2) através do Cyanogen (http://www.cyanogenmod.com/), permitindo que ele continue prestando bons serviços.O Android oferece suporte a várias resoluções de tela, o que permite que aparelhos com telas HVGA ou até mesmo QVGA (320x240) convivam com aparelhos maiores, com telas WVGA (800x480) ou até mesmo maiores que isso. Telas de alta resolução são uma grande melhoria com relação ao acesso web e visualização de e-mails e documentos, já que não apenas tornam o texto e gráficos muito mais legíveis, mas também permitem que uma pessoa com boa visão consiga ler diretamente a maioria das páginas, sem precisar dar zoom no texto:Para quem está acostumado a navegar em aparelhos com o S60, com suas telas QVGA, a diferença é realmente muito grande.Embora a navegação possa ser perfeitamente feita unicamente através de toques sobre a tela (a partir do Android 2.2 está disponível inclusive o suporte a multitouch, com gestos para zoom e outras funções), quase todos os aparelhos oferecem também um trackpoint ou direcional, que permite rolar a página e navegar entre os links sem o risco de clicá-lo. Ele não é um recurso obrigatório, mas é bastante desejável. Em alguns modelos (como no HTC Desire), ele é substituído por um sensor óptico ou por um pequeno touchscreen, que oferecem mais precisão e permitem rolar páginas longas mais rapidamente:Embora existam modelos com teclados físicos, como no caso do Motorola Milestone (Droid), a grande maioria dos modelos sacrificam o teclado em favor de um design mais fino, como no caso do Samsung Galaxy S, que combina um processador ARM Cortex A8 de 1.0 GHz, câmera de 5 MP e tela AMOLED de 800x480 em um aparelho com apenas 9.9 mm de espessura, mais fino que um Nokia E71:Vendo a foto é fácil perceber por que os teclados físicos estão se tornando cada vez mais raros, já que com uma tela de 3.7" ou mais não existe espaço para adicionar um teclado no painel frontal e o uso de um teclado deslizante adiciona geralmente pelo menos 4 mm na espessura do aparelho, além de encarecê-lo e torná-lo mais frágil mecanicamente.Via de regra, todos os aparelhos com o Android devem oferecer tela touchscreen, câmera, Bluetooth e receptor GPS, já que estes são pré-requisitos para o uso dos aplicativos do Google e acesso ao Android Market. Combinados com o suporte a 3G e Wi-Fi, que são também padrão atualmente, temos configurações bastante poderosas.A falta do teclado físico é parcialmente amenizada pela variedade de teclados via software que estão disponíveis, que incluem versões com suporte a multitouch (inaugurado pelo Droid X) e também versões "swipe", onde você pode deslizar os dedos de uma tecla a outra, sem precisar tirá-los do teclado:Invariavelmente, os teclados virtuais resultam em mais erros de digitação, mas eles por outro lado oferecem melhores possibilidades de personalização (o teclado pode oferecer teclas ".com", smiles, etc. de acordo com o aplicativo, que não são possíveis em um teclado físico) e parte dos erros podem ser corrigidos automaticamente com a ajuda do corretor ortográfico. Com a evolução dos métodos de entrada, já chegamos a um ponto em que muitos preferem usar os teclados virtuais a usar um teclado físico mediano, como o do Motorola Milestone, por exemplo.O grande problema de aparelhos grandes com tela touchscreen é que é praticamente impossível usá-los com apenas uma mão, como é possível nos telefones com teclados numéricos e em modelos como o Nokia E71/E63 e os BlackBerry. Em outras palavras, eles são muito bons para navegar na web, ver fotos, assistir vídeos, rodar jogos, etc., mas são menos eficientes na aplicação básica: fazer e receber chamadas.Isso tem levado ao surgimento de aparelhos que combinam telas QVGA ou HVGA touchscreen com um teclado e direcional, como no caso do Kogan Agora Smart, que oferece um design similar ao dos antigos Motorola Q:Este é um perfil de aparelho que vai agradar apenas a quem usa o aparelho predominantemente para a troca de mensagens, já que uma tela tão pequena elimina grande parte das vantagens da plataforma, mas pode ser que eventualmente este formato se torne comum entre modelos de médio e baixo custo, já que a tela menor reduz o custo de produção.Os aplicativos e interfaceEm vez de rodar aplicativos nativos, escritos em C ou outra linguagem, o Android utiliza predominantemente aplicativos compilados como bytecode, que são executados dentro de uma máquina virtual Java (a Davilk). Isso sacrifica parte do desempenho (e reduz a eficiência energética, resultando em um maior consumo de energia), mas em troca oferece grandes ganhos em termos de portabilidade, já que permite que a mesma biblioteca de softwares seja usada em diversas arquiteturas de processadores. A penalidade de desempenho introduzida pela máquina virtual explica o grande ganho de desempenho de aplicativos no Android 2.2 em relação às versões anteriores, devido às muitas otimizações na JVM.A principal exceção fica por conta dos aplicativos desenvolvidos através do Google Native Development Kit (NDK), que permite o uso de componentes escritos em C ou C++. Ele é geralmente utilizado por aplicativos complexos, que demandam todo o desempenho disponível (como no caso do port do Firefox para o Android) e precisam atender a um conjunto de normas bem mais rigorosas, para que seja preservada a compatibilidade com diversos dispositivos.A interface do Android é bastante simples, composta por um conjunto de painéis deslizantes (você pode ajustar o número de painéis usados nas configurações: 1, 3, 7, etc.), que são alternados rolando a tela para o lado, similar ao iPhone. Os painéis podem ser usados tanto por atalhos para aplicativos quanto por widgets, permitindo que você agrupe todas as funções mais usadas. É possível também criar pastas:


O acesso aos demais aplicativos é feito através do menu deslizante, que seve como uma vala comum para todos os aplicativos instalados. Como um usuário médio acaba instalando mais de 30 aplicativos, ele logo se transforma em um lugar bagunçado, em que você não vai querer ir com muita frequência. Em vez de passar 30 segundos procurando cada vez que quiser abrir qualquer aplicativo, é mais eficiente arrastar os mais usados para a área de trabalho.Como não temos um mouse com três botões, como em um desktop, muitas das funções ao acessadas através de toques longos, que assumem a função de segundo botão. Com um toque longo sobre a área de trabalho você acessa o menu de personalização (adicionar widgets, trocar o papel de parede, etc.) e com um toque longo sobre o botão home você acessa a lista de aplicativos abertos, por exemplo.A grande maioria dos aparelhos baseados no Android utilizam telas touchscreen capacitivas (como no iPhone), em vez das tradicionais telas resistivas. Por uma lado isso é muito bom, já que as telas capacitivas podem ser usadas direto com os dedos, resultando em uma interação muito mais natural, mas por outro faz com que você não tenha muita precisão ao clicar nos elementos da interface, já que não é possível usar as unhas ou uma caneta como nas telas capacitivas.Isso faz com que a interface e os aplicativos sejam projetados para mostrar botões e menus de opções desproporcionalmente grandes. Ao usar a orientação horizontal, a tela WVGA do Motorola Milestone mostra apenas três ou quatro opções dentro de um menu de seleção, por exemplo. Este é um fator que causa estranheza para quem vem do Symbian ou do Windows Mobile, onde a área da tela é melhor aproveitada.O Android usa um sistema peculiar de gerenciamento de aplicativos, onde os aplicativos abertos continuam ativos depois de voltar à tela inicial, e são fechados apenas quando o sistema precisa de recursos. Por um lado isso melhora o desempenho aparente do sistema, já que com os aplicativos frequentemente usados acabam ficando o tempo todo carregados na memória, tornando o chaveamento entre eles muito rápido. O principal problema é que a ausência de um mecanismo para fechar aplicativos manualmente abre margem para que aplicativos mal-desenvolvidos continuem a usar processamento, memória ou tráfego de dados continuamente, sem que o usuário que outra forma de fechá-los que não seja um reset.Isso levou ao aparecimento de aplicativos como o "Advanced Task Killer", que permite matar aplicativos manualmente. Entretanto, a versão 2.2 do Android removeu as chamadas que permitem que um aplicativo finalize outros, tornando estes aplicativos inoperantes e trazendo de volta o problema.Ao usar um clique longo sobre qualquer ícone no desktop, a aba do painel deslizante se transforma em uma lixeira, permitindo que você o delete. Entretanto isso apenas remove o ícone na área de trabalho, sem desinstalar o aplicativo. Para realmente removê-lo, é preciso acessar o "Configurações &gt; Aplicativos &gt; Gerenciar aplicativos".Por default, o sistema mantém os dados sincronizados entre os aplicativos, baixando e-mails automaticamente, mantendo-o conectado aos clientes de IM configurados e assim por diante. Naturalmente, isso pode consumir um generoso volume e dados, sem falar no uso da bateria, por isso muitos preferem desativar a função enquanto estão fora da cobertura da rede wireless. A forma mais prática de fazer isso é manter o widget de controle de energia na tela principal, ativando e desativando a função de sincronismo automático conforme desejado.Todas as notificações do sistema são agrupadas na barra superior, que segue um conceito similar à barra do Gnome. O menu de notificações é aberto ao arrastar a barra para baixo e inclui opções de ações como ler e-mails, mudar o modo de conexão da porta USB e assim por diante. Ela é bastante prática, mas em compensação possui a desvantagem de ficar sempre visível, roubando espaço útil da tela. Apenas alguns aplicativos (como o OperaMini) oferecem a opção de operar em modo de tela cheia, escondendo a barra.

Instalando aplicativos locaisPor default, os aparelhos baseados no Android suportam apenas a instalação de pacotes através do Android Market, mas é perfeitamente possível instalar pacotes baixados manualmente, bem como aplicativos que por algum motivo não foram marcados como compatíveis com o seu aparelho (como o OperaMini no Motorola Milestone).A maneira mais simples é usar o Sideload, um pequeno aplicativo disponível no&nbsp;http://forum.androidcentral.com/showthread.php?p=236589, que automatiza a tarefa. Além da versão Windows, ele está disponível para Linux e Os X (http://forum.androidcentral.com/android-applications/24362-sideload-wonder-machine-linux-mac.html).Para usá-lo, acesse as configurações do aparelho e marque a opção "Aplicativos &gt; Fontes desconhecidas" e em seguida a opção "Aplicativos &gt; Desenvolvimento &gt; Depuração USB". Esta segunda opção é usada também por várias ferramentas do SDK, permitindo que o aparelho receba comandos pela porta USB.Por default, ao ser conectado na porta USB o aparelho entra em modo de transferência de dados, permitindo o acesso aos arquivos no cartão de memória. Para permitir a instalação de softwares, é necessário clicar no ícono do USB na barra de notificações e mudar a opção para "Nenhum", colocando-o em modo de comando:Feitos estes passos, o uso do Sideload é surpreendentemente simples. No Windows está disponível uma interface que copia o arquivo selecionado para a pasta "payload" e em seguida executa o script de instalação, enquanto no Linux o script é chamado diretamente:Outra opção é o Droid Explorer, que está disponível no&nbsp;http://de.codeplex.com/releases/view/48865.