6. Utilizando Python no Android

Python no Android é diferente do Python em plataformas de desktop. Em uma plataforma desktop, o Python geralmente é instalado como um recurso do sistema que pode ser usado por qualquer usuário daquele computador. Os usuários então interagem com o Python executando um executável python e inserindo comandos em um prompt interativo ou executando um script Python.

No Android, não existe o conceito de instalação como recurso do sistema. A única unidade de distribuição de software é uma aplicação, ou “app”. Também não há console onde você possa executar um executável python ou interagir com um REPL do Python.

Como resultado, a única maneira de usar Python no Andoid é no modo incorporado – ou seja, escrevendo uma aplicação Android nativo, incorporando um interpretador Python usando libpython e invocando o código Python usando API de incorporação do Python. O interpretador Python completo, a biblioteca padrão e todo o seu código Python são então empacotados para sua aplicação para seu próprio uso privado.

A biblioteca padrão do Python tem algumas omissões e restrições notáveis no Andoid. Consulte o guia de disponibilidade de API para Android para obter detalhes.

6.1. Adicionando Python a uma aplicação Android

Essas instruções são necessárias somente se você estiver planejando compilar Python para Android você mesmo. A maioria dos usuários não precisa fazer isso. Em vez disso, use uma das seguintes ferramentas, que fornecerão uma experiência muito mais fácil:

Se você tem certeza de que quer fazer tudo isso manualmente, continue lendo. Você pode usar a aplicação testbed como um guia; cada passo abaixo contém um link para o arquivo relevante.

  • Construa o Python seguindo as instruções em Android/README.md.

  • Adicione código ao seu arquivo build.gradle para copiar os seguintes itens para o seu projeto. Todos, exceto seu próprio código Python, podem ser copiados de cross-build/HOST/prefix/lib:

    • Em suas bibliotecas JNI:

      • libpython*.*.so

      • lib*_python.so (bibliotecas externas, tal como OpenSSL)

    • Em seus ativos (assets):

      • python*.* (a biblioteca padrão do Python)

      • python*.*/site-packages (seu próprio código Python)

  • Adicione código ao seu aplicativo para extrair os ativos para o sistema de arquivos.

  • Adicione código a sua aplicação para iniciar o Python em modo incorporado. Isso precisará ser código C chamado via JNI.