No Ubuntu Developer Summit em Barcelona, a Canonical apresentou um protótipo do ambiente de execução Android que permitirá aplicações Android correrem na distribuição de Linux Ubuntu.
Além do esforço dos developers para que este objectivo se torne realidade, as portas estão também abertas a outras distribuições, aproximando assim as aplicações de terceiros do Android ao desktop.
A plataforma Android, baseada em Linux, está a atrair grandes atenções. A nova versão melhora significativamente a fidelidade da plataforma e torna-a bem mais apelativa às operadoras e fabricantes de telemóveis. Especula-se ainda que o Android possa saltar para o mercado dos netbooks.
Mas por enquanto, tais especulações perdem viabilidade, já que a plataforma do Google é adequada para telemóveis e tablet-PC, mas não para netbooks, pelo menos por enquanto. O projecto da Intel Moblin e o da Canonical, Ubuntu Netbook Remix são bem mais adequados para aparelhos como estes, pois possuem uma interface propositadamente adaptada, suportam o software Linux existente e têm melhor compatibilidade com os chips Atom.
O ambiente de execução e o Kernel
O Android usa o kernel do Linux, mas não se trata mesmo de uma plataforma Linux. Em vez disso, presenteia-nos com um ambiente único, suportado pelo runtime Java do próprio Google. Embora escritas em Java, as aplicações não podem ser portadas para Linux, nem vice-versa. Isto torna o Android uma plataforma algo “isolada”.
A Canonical está a criar um ambiente de execução especializado que poderia possibilitar a execução de aplicações Android no Xorg dos desktops Ubuntu juntamente com aplicações normalíssimas de Linux. O ambiente de execução funcionaria como um simulador, fornecendo a infraestrutura necessária para que as aplicações fossem executadas.
Alguns detalhes técnicos
Os developers construíram um protótipo do ambiente de execução, compilando-o com a libc do Ubuntu e não com a libc personalizada do Android, correndo-o num kernel normalíssimo de Ubuntu. O seu objectivo é desprezar alguns componentes específicos do Android que não são necessários para que o software corra no Ubuntu.
O sofisticado sistema de comunicação inter-processo chamado Binder, requer um driver do kernel especial de forma a correr como previsto. O driver está na staging tree do kernel e não está activo – um impedimento problemático para os developers. O protótipo actual contorna este problema de uma forma temporária, para evitar o Binder, mas os developers esperam que as correcções necessárias estejam activas no kernel do próximo lançamento Ubuntu, de forma a que o ambiente de execução se execute como esperado.
Outra parte importante dos objectivos do projecto é desenvolver uma biblioteca especial de interoperabilidade que exporá os serviços da plataforma nativa e o hardware ao ambiente de execução do Android. Eles já implementaram alguma da infraestrutura necessária a esta camada, chamada libwrap. Explorando ainda formas de tornar o sistemas de ficheiros do Ubuntu parcialmente acessível no ambiente de execução do Android para que os utilizadores possam aceder os seus ficheiros e pastas a partir de aplicações Android.
Muito trabalho pela frente
É claro que existem imensas limitações e funcionalidades chave em falta. O projecto está ainda numa fase inicial de desenvolvimento e necessita de muito trabalho antes de possuir alguma utilidade prática. Abstraindo-nos destas limitações, o trabalho que tem sido desenvolvido até agora representa uma conquista significante.
O código-fonte do ambiente de execução ainda não está disponível, mas os developers planeiam fazê-lo em breve. Esperam ainda que, ao publicarem o código-fonte e convidarem a comunidade para participar, acelere o desenvolvimento do projecto.
À medida que a plataforma Android engrossa os seus seguidores e atrai vendedores de software comercial, a possibilidade de usar software Android numa distribuição de Linux convencional poderá representar uma mais valia para os utilizadores e fabricantes de hardware. Pode ainda potenciar o interesse em mais aplicações Android, tornando o Android num alvo potencial para alguns developers de aplicações de terceiros.