BT

Experimente a nova interface visual do InfoQ! Veja o novo design do InfoQ 3.0 e nos diga o que você achou.

Novas ferramentas do Google para desenvolvimento em C/C++ no Android

| por Sergio De Simone Seguir 21 Seguidores , traduzido por Tulius Lima Seguir 0 Seguidores em 11 mai 2015. Tempo estimado de leitura: 2 minutos |

Um novo conjunto de bibliotecas e ferramentas chamado fplutil do Fun Propulsion Labs, do Google, promete facilitar o desenvolvimento de aplicações C/C++ para Android.

A Fplutil é formada por quatro partes: build_all_android.py, buildutil, libfplutil e android_ndk_perf.py.

build_all_android.py

Esse script permite a construção, instalação e execução de aplicativos nativos pela linha de comando. O script construirá aplicativos C/C++ através do Android NDK, sendo útil tanto para automação da construção quanto para a simplificação da fase de compilar e executar.

O script suporta a especificação de configurações de build da linha de comando, como definir o modo de depuração, nível de otimização, entre outros. Também suporta o uso de múltiplos dispositivos simultâneos.

buildutil

Buildutil é um conjunto de módulos Python que simplifica o processo de escrever scripts de automação continua que usam CMake. A seguir temos um exemplo de uso do buildutil para construir e criar o binário de um aplicativo Android:

  1. O primeiro passo é criar uma instância android.BuildEnvironment para realizar o restantes das operações de build:
parser = argparse.ArgumentParser()
buildutil.android.BuildEnvironment.add_arguments(parser)
args = parser.parse_args()
env = buildutil.android.BuildEnvironment(args)

Com esse passo concluído, o aplicativo é construído usando o ndk-build para o componente nativo (C/C++) e ant para o componente Java e APK:

(rc, errmsg) = env.build\_all()
  1. Com esse passo concluído, o aplicativo é construído usando o ndk-build para o componente nativo (C/C++) e ant para o componente Java e APK:
(rc, errmsg) = env.build\_all()
  1. Para terminar, o APK pode ser arquivado em um arquivo zip:
env.make\_archive(['apks'], 'output.zip', exclude=['objs', 'objs-debug'])

Além de construções NDK no Android, essa ferramenta suporta construções Linux, OS X e Windows.

libfplutil

O libfplutil consiste em um módulo NDK nativo do Android que constroem duas bibliotecas estáticas, libfplutil_main e libfplutil_print, que facilita a codificação de aplicações C/C++:

  • libfplutil_main implementa um ponto de entrada Android NativeActivity android_main() que chama o tradicional ponto de entrada C/C++ main(). Isso possibilita escrever uma aplicação com um ponto de entrada int main() (como qualquer aplicação C/C++ padrão), fazer a link-edição dessa biblioteca e fazê-la rodar no Android;
  • libfplutil_print implementa um conjunto de wrappers para funções que escrevem no stream padrão de saída. Isso possibilita escrita no terminal usando printf para ter sua saída redirecionada ao log do Android.

Ao fazer a link-edição ao libfplutil, o programa Hello World pode ser compilado e executado no Android sem modificações.

android_ndk_perf.py

Esta é uma ferramenta desktop que possibilita os desenvolvedores nativos (C/C++) medirem a utilização de CPU nos aplicativos Android, guiando seus esforços de otimização. Android_ndk_perf pode executar na estação de trabalho do desenvolvedor para coletar rastros (traces) de aplicativos executando em dispositivos Android. Depois que esses traces de aplicativos são coletados os dados podem ser examinados utilizando comandos Perf do Linux ou uma visualização HTML pode ser gerada para inspeção em um navegador web.

A libfplutil pode ser baixada do github, que também hospeda sua documentação.

O Fun Propulsion Labs é uma equipe dentro do Google dedicada em avançar games no Android e outras plataformas. Mais cedo esse ano, eles transformaram em código aberto o LiquidFun 1.1, um motor de física 2D que incluía simulação de fluidos.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
BT