Há alguma maneira de correr o Python no Android? [fechado]

estamos a trabalhar numa versão S60 e esta plataforma tem uma boa API Python.

No entanto, não há nada de oficial em Python no Android, mas como Jython existe, há uma maneira de deixar a cobra e o robô trabalharem juntos?

Author: Pehlaj, 2008-09-19

25 answers

Uma maneira é usar Kivy:

Open source Python library for rapid development of applications que fazem uso de interfaces de usuário inovadoras, como aplicativos multi-touch.

O Kivy funciona em Linux, Windows, OS X, Android e iOS. Você pode executar o mesmo código [python] em todas as plataformas suportadas.

Aplicação do Showcase do Kivy

 853
Author: JohnMudd, 2014-08-31 22:09:40

Existe também o novo projectoAndroid Scripting Environment (ASE/SL4A). Parece incrível, e tem alguma integração com os componentes Android nativos.

Nota: já não está em "desenvolvimento activo", mas alguns garfos podem estar.

 316
Author: Heat Miser, 2018-02-19 04:49:05

SIM!

Um exemplo via Matt Cutts via SL4A -- " aqui está um scanner de código de barras escrito em seis linhas de código de Python:

import android
droid = android.Android()
code = droid.scanBarcode()
isbn = int(code['result']['SCAN_RESULT'])
url = "http://books.google.com?q=%d" % isbn
droid.startActivity('android.intent.action.VIEW', url)
 189
Author: unmounted, 2017-11-09 16:02:25

Há também SL4A escrito em grande pelos empregados do Google.

 79
Author: Rab Ross, 2017-08-16 08:51:58

"O subconjunto Pygame para Android é uma porta de um subconjunto da funcionalidade Pygame para a plataforma Android. O objetivo do projeto é permitir a criação de jogos específicos para o Android, e facilitar a transferência de jogos de plataformas semelhantes ao PC para o Android."

Os exemplos incluem um jogo completo embalado em um APK, o que é muito interessante.

 78
Author: muriloq, 2017-02-01 10:09:17

Eu postei instruções e um patch para a compilação cruzada Python 2.7.2 para Android, você pode obtê-lo no meu blog aqui: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

EDIT: eu tenho open sourced Ignifuga , O meu motor de jogo 2D, é baseado em Python/SDL e cruza compiles para Android. Mesmo que você não o use para jogos, você pode obter idéias úteis a partir do código e do utilitário construtor (chamado Schafer, após Tim...você sabe quem).

 68
Author: gabomdq, 2012-02-16 17:10:06

Camada de Programação para Android

Faz o que quiseres. Você pode facilmente instalá-lo diretamente em seu dispositivo a partir de seu site, e não precisa root.

Suporta uma série de línguas. O Python é o mais maduro. Por omissão, usa o Python 2.6, mas existe um porto 3.2 que pode usar em alternativa. Eu usei esse porto para todos os tipos de coisas em um Galaxy S2 e funcionou bem.

API

O SL4A fornece um porto da sua biblioteca android para cada língua suportada. A biblioteca fornece uma interface para a API Android subjacente através de um único objeto Android.

from android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

Cada língua tem praticamente a mesma API. Você pode até usar a API JavaScript dentro do webviews.

let droid = new Android();
droid.ttsSpeak("hello from js");

Interfaces De Utilizador

Para as interfaces de utilizador, tem três opções:

    Você pode facilmente usar os diálogos genéricos, nativos e menus através do CONJUNTO. Isso é bom para diálogos de confirmação e outros usuários básicos entrada.
  • também pode abrir uma vista web de dentro de um programa em Python, depois usar o HTML5 para a interface do utilizador. Quando você usa webviews do Python, você pode passar mensagens para trás e para a frente, entre a webview e o processo Python que gerou-o. A IU não será nativa, mas ainda é uma boa opção para ter.
  • algum suporte para interfaces de Utilizador Android nativas, mas eu não sou claro como funciona, só que nunca o usei.

Podes misturar opções, então você pode ter uma webview para a interface principal, e ainda usar diálogos nativos.

QPython

Existe um projecto de terceiros chamado QPython. Ele constrói o SL4A, e joga em algumas outras coisas úteis.

O QPython dá-lhe uma UI mais simpática para gerir a sua instalação e inclui um pequeno editor de código touchscreen, uma shell Python e uma shell PIP para a gestão de pacotes. Eles também têm uma porta Python 3. Ambas as versões estão disponíveis na Play Store, livre de carga. O QPython também agrupa bibliotecas de um monte de Python em projetos Android, incluindo o Kivy, por isso não é apenas o SL4A.

Note que QPython ainda desenvolve seu garfo de SL4A (embora, não muito para ser honesto). O projeto SL4A principal em si está praticamente morto.

Ligações Úteis

 66
Author: Carl Smith, 2018-05-09 20:03:26
Como amante de Python e programador Android, lamento dizer que esta não é uma boa maneira de morrer. Há dois problemas.

Um problema é que há muito mais do que apenas uma linguagem de programação para as ferramentas de Desenvolvimento Android. Muitos dos gráficos Android envolvem arquivos XML para configurar o display, semelhante ao HTML. Os objetos java incorporados são realmente integrados com este layout XML, e é muito mais fácil do que escrever seu próprio código para ir da lógica para mapa.

O outro problema é que o G1 (e provavelmente outros dispositivos Android para o futuro próximo) não são realmente tão rápido. Processadores de 200 MHz, e RAM é muito limitada. Mesmo em Java você tem que fazer uma quantidade decente de reescrever-para-evitar-mais-objeto-criação se você quiser fazer o seu aplicativo perfeitamente suave. Python vai ser muito lento por um tempo ainda em dispositivos móveis.

 59
Author: lacker, 2014-08-31 22:11:05
Neste momento, não, e terias sorte em pôr o Jython a trabalhar em breve. Se você está planejando começar seu desenvolvimento agora você estaria melhor se apenas se cingisse a Java por enquanto.
 35
Author: Ilya Kochetov, 2013-03-23 14:58:45

Usando o SL4A (que já foi mencionado por si próprio noutras respostas), você pode Executar uma instância completa web2py (outros frameworks web em python também são candidatos prováveis). O SL4A não lhe permite fazer componentes UI nativos (botões, barras de posicionamento, etc.), mas suporta o WebViews. Uma WebView é basicamente nada mais do que um navegador listrado para baixo apontado para um endereço fixo. Acredito que a aplicação nativa do Gmail usa uma vista web de ir pela rota normal de widget.

Esta rota teria algumas características interessantes:

  • no caso da maioria dos frameworks web python, você poderia realmente desenvolver e testar sem usar um dispositivo android ou emulador android.
  • qualquer que seja o código Python que acabes por escrever para o telemóvel também pode ser colocado num servidor web público com muito pouca (se alguma) modificação.
  • Você poderia tirar proveito de todas as coisas malucas da web lá fora: query, HTML5, CSS3, etc.
 33
Author: gdw2, 2016-01-26 05:48:09

Kivy


Eu quero postar isso como uma extensão do que @JohnMudd já respondeu (, mas por favor, tenham paciência comigo enquanto o inglês não é a minha primeira língua)

Passaram-se anos desde então, e o Kivy evoluiu para v1.9-dev. O maior ponto de venda da Kivy, na minha opinião, é a sua compatibilidade entre plataformas. Pode codificar e testar no seu ambiente local (Windows / * nix, etc.), também pode compilar, depurar e embalar o seu aplicativo para executar no seu Dispositivos Android/iOS / Mac / Windows.

Com a própria linguagem do Kivy kv , você pode codificar e construir a interface gráfica facilmente (é como Java XML, mas em vez de TextView etc., KV tem seu próprio {[[0]} para a tradução similar), que é na minha opinião bastante fácil de adotar.

Actualmente Buildozer e python-for-android são as ferramentas mais recomendadas para compilar/empacotar as suas aplicações. Eu tentei os dois e posso dizer firmemente que eles fazem a construção de Android aplicações com Python a breeze. Os usuários que se sentem confortáveis em sua prompt console/terminal/comando não devem ter problemas em usá-los, e seus guias também estão bem documentados.

Além disso, o iOS é outro grande ponto de venda do Kivy, desde que possa usar a mesma base de código com pequenas alterações necessárias para testar o seu dispositivo iOS, via O Kivy-ios As ferramentas Homebrew, embora o Xcode seja necessário para a compilação antes de rodar nos seus dispositivos (AFAIK o simulador iOS no Xcode atualmente não funciona para a construção x86-arquitetura). Há também alguns problemas de dependência que devem ser compilados e rodeados manualmente no Xcode para ter uma compilação bem sucedida, mas eles não seriam muito difíceis de resolver e as pessoas em Kivy Google Group são realmente úteis também.

Com tudo dito, os usuários com bom conhecimento em Python não devem ter problemas em pegar o básico em semanas (se não Dias) para construir alguns aplicativos simples.

Também vale a pena mencionar é que você pode agrupar (compilar receitas) os seus módulos Python com a compilação para que os utilizadores possam realmente fazer uso de muitas bibliotecas existentes que o Python nos traz, como os Pedidos & Pil etc. através do suporte de extensão do Kivy.

Por vezes a sua aplicação requer uma funcionalidade que está para além da âmbito do que Kivy pode entregar. Nesses casos, é necessário recorrer a bibliotecas de software externas. Dada a riqueza do Ecossistema Python, há já um monte de software bibliotecas que você pode simplesmente importar e usar imediatamente.

O último, mas não o menor, se você vai usar Kivy para projetos mais sérios/comerciais, você pode achar os módulos existentes não satisfatórios. Existem algumas soluções viáveis, porém, com o" trabalho em progresso " de pyjnius para Android, epyobjus . Os usuários podem agora acessar classes Java / Objective-C através desses módulos para controlar algumas das APIs nativas.

A minha a experiência no Kivy é que ele vai encontrar o seu melhor ajuste com programadores experientes Python e alguns programadores sérios que querem rápido desenvolvimento ou simples manutenção de base de código. Ele funciona bem em várias plataformas, embora não realmente com o sentimento nativo.

Espero que alguns programadores de aplicativos Python encontrem essa informação útil e comecem a dar uma olhada no Kivy. Só pode melhorar (com mais suporte e à medida que as bibliotecas / módulos são portados) se houver grande interesse do comunidade.

P. S. Não tenho qualquer relação com o Kivy, sou apenas um programador que gosta muito da ideia de trazer o Python coding fun para o desenvolvimento móvel/multi-plataforma.

 32
Author: Anzel, 2018-02-08 03:56:33

USO a aplicação QPython. Ele tem um editor, uma consola, e você pode executar seus programas Python com ele. A aplicação é gratuita e o link é http://qpython.com/.

 22
Author: kyle k, 2015-01-13 00:35:57

A partir do Python para android site:

Python para o android é um projecto para criar a sua própria distribuição em Python, incluindo os módulos que deseja, e criar um apk, incluindo python, libs e a sua aplicação.

 19
Author: gdw2, 2012-01-09 04:46:53
Mais uma tentativa. https://code.google.com/p/android-python27/

Este incorporou directamente o interpretador de Python na apk da sua aplicação.

 16
Author: e-satis, 2012-05-09 15:44:49

Pode utilizar Termux aplicação:

Note que o apt install python install python 3. para o python 2, deve chamar o apt install python2.

Algumas demos aqui: https://www.youtube.com/watch?v=fqqsl72mASE

E também a página do github: https://github.com/termux

 15
Author: Adrian Stanculescu, 2017-01-20 11:36:47

Pode executar o seu código Python usando sl4a . sl4a suporta Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, e shell script.

Você pode aprender sl4a exemplos em Python .

 11
Author: Hitul, 2015-01-13 00:34:26

Também há python-on-a-chip possivelmente a executar mosync: grupo google

 11
Author: fooba, 2016-02-15 13:35:25

Pode utilizar QPython:

Tem uma consola Python, um Editor, bem como um Gestor de pacotes / instaladores

Http://qpython.com/

É um projecto de código aberto com implementações Python 2 e Python 3. Você pode baixar a fonte e o Android .ficheiros apk directamente do github.

QPython 2: https://github.com/qpython-android/qpython/releases

QPython 3: https://github.com/qpython-android/qpython3/releases

 9
Author: ode2k, 2016-09-16 02:41:18

Chaquopy

Chaquopy é um plugin para o Android Studio baseado no sistema de Compilação. Ele se concentra em estreita integração com as ferramentas Padrão de Desenvolvimento Android.

  • Ele fornece APIs para chamar Java a partir do Python ou Python a partir do Java, permitindo que o desenvolvedor use qualquer linguagem é melhor para cada componente do seu aplicativo.

  • Ele pode baixar automaticamente Os pacotes PyPI e compô-los em um aplicativo, incluindo pacotes nativos selecionados, como o NumPy.

  • Ele permite o acesso completo a todas as APIs Android do Python, incluindo o toolkit de interface de usuário nativo (exemplo de atividade pure-Python).

Este é um produto comercial, mas é gratuito para uso de código aberto e permanecerá sempre assim.

(Eu sou o criador deste produto.)

 9
Author: mhsmith, 2018-02-16 17:12:15

Existe um aplicativo chamado QPython3 na playstore que pode ser usado tanto para edição e execução de script python.

Playstore link

Outra aplicação chamada Termux na qual poderá instalar o python com o comando

pkg install python

Playstore Link

 9
Author: Pzy64, 2018-04-11 07:59:54

Não vi este postado aqui, mas você pode fazê-lo com Pyside e Qt agora que o Qt funciona no Android graças ao Necessitas.

Neste momento, parece-me um belo kludge, mas pode vir a ser uma rota viável...

Http://qt-project.org/wiki/PySide_for_Android_guide

 8
Author: radix07, 2014-10-06 14:59:14

Outra opção se estiver à procura de 3.4. 2 ou 3. 5. 1 é este pacote no GitHub.

Python3-Android 3.4.2 ou Python3-Android 3.5.1

Ele suporta atualmente Python 3.4.2 ou 3.5.1 e a versão 10d do NDK. Também pode suportar 3.3 e 9c, 11c e 12

É bom que você simplesmente baixe, execute o make e receba o. so or the .a

De momento, uso isto para executar Python raw em dispositivos android. Com algumas modificações para os arquivos de compilação você também pode fazer x86 e armeabi 64 bit

 8
Author: GR Envoy, 2016-07-11 13:10:34

Mais uma opção parece ser pyqtdeploy {[3] } que citando os documentos é:

Uma ferramenta que, em conjunto com outras ferramentas fornecidas com o Qt, activa a implantação das aplicações PyQt4 e PyQt5 escritas com Python v2. 7 ou Python v3. 3 ou mais tarde. Ele suporta a implementação para o desktop plataformas (Linux, Windows e OS X) e para plataformas móveis (iOS e Androide).

De acordo com a enviar a aplicação PyQt5 para Android via pyqtdeploy e Qt5 ele é desenvolvido ativamente, embora seja difícil encontrar exemplos de aplicativos Android trabalhando ou tutorial sobre como cruzar todas as bibliotecas necessárias para Android. É um projeto interessante para ter em mente no entanto!

 6
Author: Andrzej Pronobis, 2017-05-23 12:18:36

Olha para BeeWare . No momento de responder a esta pergunta, ela ainda está em desenvolvimento precoce. Seu objetivo é ser capaz de criar aplicativos nativos com Python para todos os sistemas operacionais suportados, incluindo Android.

 3
Author: DrawT, 2018-01-12 18:56:16

Confira enaml-native que pega o conceito reat-native e o aplica ao python.

Ele permite aos usuários construir aplicativos com widgets Android nativos e fornece APIs para usar bibliotecas android e java do python. Ele também se integra com o android-studio e compartilha algumas das características do Dev da react, como recarga de código e depuração remota.
 3
Author: frmdstryr, 2018-08-20 16:59:32