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.