Desenvolvimento e o Android Market

Embora 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.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

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:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]


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.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

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 [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] e o [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] É possível também instalar aplicativos localmente através do comando "adb install", disponível no SDK.

Sumario

Seta Modulo 1
Modulo 1 -Entendendo o Android, parte 1 3831927119 Introdução
Modulo 1 -Entendendo o Android, parte 1 3831927119 Desenvolvimento e o Android Market
Modulo 1 -Entendendo o Android, parte 1 3831927119 Entendendo o sistema
Modulo 1 -Entendendo o Android, parte 1 3831927119 Os aplicativos e interface
Modulo 1 -Entendendo o Android, parte 1 3831927119 Instalando aplicativos locais