Google Android como um ambiente de desenvolvimento de aplicações para Sistemas de Decodificação de DTV (TV Digital) [Parte 1]

[caption id="attachment_1001" align="aligncenter" width="552" caption="Google Android e TV Digital"]Android TV[/caption]

Hoje em dia, DTV's (TV Digitais) e set-top boxs[equipamento que se conecta a um televisor e a uma fonte externa de sinal] (ainda mais em dispositivos multimídia) são controlados por softwares proprietários (Aplicações e sistemas operacionais), geralmente escritos para apenas um tipo específico ou grupo de modelos semelhantes de dispositivos. A Reutilização de código entre diferentes modelos desses dispositivos é muito rara e o desenvolvimento acaba exigindo muito tempo e esforço no ciclo de desenvolvimento para cada plataforma.

A diferença entre os Hand-Helds e os dispositivos tecnológicos multimídia utilizados em casa está diminuindo gradativamente e seus respectivos hardwares (poder de processamento da CPU, RAM disponível, tamanho da memória flash e a presença de outros dispositivos como Redes, Wi-FI, Bluetooth, Aceleração de gráficos via Hardware, etc.) estão se tornando mais semelhantes. Ao longo do tempo o principal objetivo desses dispositivos não é alterado, embora características novas e mais avançadas sejam incorporadas constantemente(Gravação de Vídeo, Internet, TV, Internet e etc..)

Android é o primeiro sistema operacional para dispositivos móveis totalmente aberto e livre, foi desenvolvido pela Open Handset Alliance (Grupo com mais de 30 empresas lideradas pela Google).  O Android está se tornando muito popular no mercado dos aplicativos móveis por duas razões principais. Primeiro que seu código conte é totalmente gratuito e não há taxas de royality para a Java VM, assim cada fabricante pode modifica-lo de acordo com suas necessidades. Segundo é que essa nova plataforma está em fase de expansão, valorizando muito desenvolvedores que atuam nessa área.

Este artigo apresenta uma abordagem sobre a utilização do Google Android como um ambiente para desenvolvimento de aplicações para dispositivos móveis embutidos, principalmente TV Digital e sistemas decodificador como set-top box. A utilização da portabilidade e a possibilidade de modificação do Android, por sua disponibilidade (por ser código aberto) e por utilizar camada de abstração de Hardware do Kernel do Linux fundamenta sua utilização no projeto. A Arquitetura e pilha utilizado pelo Android e o Kernel do Linux concedem aos desenvolvedores acesso aos recursos de multimídia e telefônicos, conectividade por rede, interface gráfica dentre outros.

II Arquitetura do Android

[caption id="attachment_999" align="aligncenter" width="466" caption="Arquitetura em Pilhas do Android"]Android Stack Software [/caption]

O Android depende de serviços do sistema central do Kernel do Linux, como recursos de segurança, gerenciamento de memória, gerenciamento de processos, pilha de rede e sistema de drivers. O Kernel atua, também, como uma camada de abstração entre o hardware e todo o resto do sistema.

As Bibliotecas nativas do Android são escritas em C/C++ e utilizadas por vários componentes do sistema operacional. Os recursos são disponibilizados para os desenvolvedores através do Android Application Framework. Podemos destacar algumas das principais bibliotecas e recursos presentes na plataforma como: System C Library(Implementação da C system library(libc), derivada da BSD, e modificada para sistemas embutidos para dispositivos baseados em Linux), Bibliotecas de Mídias (baseada em PureVideo OpenCORE; bibliotecas de reprodução e gravação dos mais populares formatos de áudio e vídeo, assim como arquivos de imagens), bibliotecas do Webkit (Motor de navegação moderno e muito conhecido que alimenta o browser do Android), Bibliotecas do OpenGL ES 3D (utilizam aceleração de hardware 3D, e se disponível, uma otimizada implementação de software de “rasterização” 3D), FreeType(renderização de fontes tanto vetoriais quanto oriundas de bitmaps), SQLite (um poderoso e leve banco de dados relacional disponível para todas as aplicações), além de outros tantos recursos possíveis.

O Android run-time inclui um conjunto de bibliotecas que disponibiliza uma considerável parte dos recursos existentes na linguagem de programação Java. Cada instância de uma aplicação Android roda em processos separadamente, utilizando-se da Dalvik VM (Máquina Virtual baseada em registros, executa classes compiladas em Java, transformando-as em Executáveis Dalvik(.dex) formato otimizados para dispositivos embarcados, com baixo consumo de memória). A Dalvik VM usa o Kernel do Linux para funcionalidades subjacentes, tais como segmentação de memória em baixo nível.

Ao conceder pleno acesso à API, os desenvolvedores estão livres para aproveitar dos recursos do Framework Android, como: hardwares, informações sobre localização, serviços em segundo plano, definir alarmes, adicionar notificações e ainda reutilizar e substituir componentes existentes. Resumindo, o Android fornece uma plataforma de desenvolvimento aberta, oferecendo condições para que se possa desenvolver aplicações modernas e poderosas.

A camada de aplicação é posicionada no topo da pilha do sistema, essa camada acomoda a maioria das aplicações integradas (programa de SMS, cliente de e-mail, calendário, mapas, navegador web, telefone, etc.) bem como aplicações desenvolvidas por terceiros baixadas da internet ou instaladas via Cartão de Memoria (SDcard).

 

Tradução do Artigo: Google's android as an application environment for DTV decoder system
Kuzmanovic, N. Maruna, T. Savic, M. Miljkovic, G. Isailovic, D.
Fac. of Tech. Sci., Univ. of Novi Sad, Novi Sad, Serbia