studio - Existe uma maneira de executar o Python no Android?




qpython apk (17)

Camada de scripts para Android

SL4A faz o que você quer. Você pode instalá-lo facilmente no seu dispositivo a partir do site e não precisa de root.

Suporta uma variedade de idiomas. Python é o mais maduro. Por padrão, ele usa o Python 2.6, mas há uma porta 3.2 que você pode usar. Eu usei essa porta para todos os tipos de coisas em um Galaxy S2 e funcionou bem.

API

O SL4A fornece uma porta de sua biblioteca do android para cada idioma suportado. A biblioteca fornece uma interface para a API do Android subjacente por meio de um único objeto Android .

from android import Android

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

Cada idioma tem praticamente a mesma API. Você pode até usar a API JavaScript dentro de webviews.

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

Interfaces do usuário

Para interfaces de usuário, você tem três opções:

  • Você pode facilmente usar os diálogos e menus genéricos e nativos por meio da API. Isso é bom para diálogos de confirmação e outras entradas básicas do usuário.
  • Você também pode abrir uma visualização da Web a partir de um script Python e usar HTML5 para a interface do usuário. Quando você usa webviews do Python, você pode passar mensagens entre a webview e o processo Python que a gerou. A interface do usuário não será nativa, mas ainda é uma boa opção.
  • algum suporte para interfaces de usuário nativas do Android, mas não tenho certeza de como isso funciona; Eu nunca usei isso.

Você pode misturar opções, assim você pode ter um webview para a interface principal, e ainda usar diálogos nativos.

QPython

Existe um projeto de terceiros chamado http://qpython.com/ . Baseia-se no SL4A e lança algumas outras coisas úteis.

O QPython oferece uma interface de usuário mais agradável para gerenciar sua instalação e inclui um editor de código de tela sensível ao toque, um shell Python e um shell PIP para gerenciamento de pacotes. Eles também têm uma porta Python 3. Ambas as versões estão disponíveis na Play Store, gratuitamente. O QPython também agrupa bibliotecas de um monte de Python em projetos Android, incluindo o Kivy, portanto, não é apenas o SL4A.

Observe que o QPython ainda desenvolve seu fork do SL4A (embora não seja muito honesto). O projeto principal do SL4A está praticamente morto.

Links Úteis

Estamos trabalhando em uma versão S60 e esta plataforma tem uma API Python legal.

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


Kivy

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

Já faz anos desde então, e Kivy evoluiu para a v1.9-dev. O maior ponto de venda da Kivy, na minha opinião, é a compatibilidade entre plataformas. Você pode codificar e testar em seu ambiente local (Windows / * nix etc.), você também pode criar, depurar e empacotar seu aplicativo para rodar em seus dispositivos Android / iOS / Mac / Windows.

Com a própria linguagem KV da Kivy, você pode codificar e construir a interface GUI facilmente (é como Java XML, mas em vez de TextView etc., a KV tem seus próprios ui.widgets para a tradução similar), que é na minha opinião bastante fácil adotar.

Atualmente Buildozer e python-for-android são as ferramentas mais recomendadas para compilar / empacotar seus aplicativos. Eu tentei os dois e posso dizer com firmeza que eles facilitam a criação de aplicativos Android com o Python. Os usuários que se sentem à vontade em seu prompt do 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 argumento de venda da Kivy, desde que você possa usar a mesma base de código com pequenas alterações necessárias para executar o teste em seu dispositivo iOS, via kivy-ios Homebrew, embora o Xcode seja necessário para a compilação seus dispositivos (o AFAIK no iOS Simulator no Xcode atualmente não funciona para a compilação da arquitetura x86). Há também alguns problemas de dependência que devem ser compilados manualmente e manipulados no Xcode para ter uma compilação bem-sucedida, mas eles não seriam muito difíceis de resolver e as pessoas no Kivy Google Group também são muito úteis.

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

Também vale a pena mencionar que você pode empacotar (construir receitas) seus módulos Python com a compilação para que os usuários realmente possam fazer uso de muitas bibliotecas existentes que o Python nos traz, como Requests & PIL etc. através do suporte de extensão do Kivy .

Às vezes, seu aplicativo requer uma funcionalidade que está além do escopo do que o Kivy pode oferecer. Nesses casos, é necessário recorrer a bibliotecas de software externas. Dada a riqueza do ecossistema Python, já existem muitas bibliotecas de software que você pode simplesmente importar e usar imediatamente.

Por último, mas não menos importante, se você for usar o Kivy para projetos mais sérios / comerciais, talvez os módulos existentes não sejam satisfatórios. Existem algumas soluções viáveis, com o "trabalho em andamento" do pyjnius para Android e o pyobjus . Agora, os usuários podem acessar as classes Java / Objective-C por meio desses módulos para controlar algumas das APIs nativas.

Minha experiência em Kivy é que ele vai se encaixar melhor com programadores Python experientes e com alguns programadores sérios que querem desenvolvimento rápido ou manutenção de código simples. Funciona bem em múltiplas plataformas, embora não com o sentimento nativo .

Eu espero que alguns programadores de aplicativos em Python achem essa informação útil e que dêem uma olhada no Kivy. Ele só pode melhorar (com mais suporte e como bibliotecas / módulos são portados) se houver um grande interesse da comunidade.

PS Eu não tenho nenhum relacionamento com Kivy, sou apenas um programador que realmente gosta da ideia de levar a codificação Python divertida ao desenvolvimento móvel / multi-plataforma.


Como um amante de Python e programador Android, estou triste em dizer que este não é realmente um bom caminho a percorrer. Existem dois problemas.

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

O outro problema é que o G1 (e provavelmente outros dispositivos Android para o futuro próximo) não são tão rápidos assim. Processadores de 200 MHz e RAM são muito limitados. Mesmo em Java, você precisa fazer uma quantidade razoável de reescrita para evitar a criação de mais objetos, se quiser deixar seu aplicativo perfeitamente suave. O Python ficará lento demais por algum tempo ainda em dispositivos móveis.


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

Ele permite que os usuários criem aplicativos com widgets nativos do Android e fornece APIs para usar as bibliotecas android e java do python.

Ele também se integra ao android-studio e compartilha alguns dos recursos de desenvolvimento do reag como o recarregamento de código e a depuração remota.



Eu postei instruções e um patch para compilação cruzada do 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 abri fonte Ignifuga , meu motor de jogo 2D, é baseado em Python / SDL e cross compila para o Android. Mesmo se você não usá-lo para jogos, você pode obter idéias úteis do código e do utilitário de construção (chamado Schafer, depois de Tim ... você sabe quem).


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

Link da Playstore

Outro aplicativo chamado Termux no qual você pode instalar o python usando o comando

pkg install python

Link do Playstore


Há também SL4A escrito em grande por funcionários do Google.


Há também python-on-a-chip possivelmente executando mosync: grupo google


Mais uma opção parece ser pyqtdeploy que citando os documentos é:

uma ferramenta que, em conjunto com outras ferramentas fornecidas com o Qt, permite a implementação de aplicativos PyQt4 e PyQt5 escritos com o Python v2.7 ou Python v3.3 ou posterior. Ele suporta a implantação em plataformas de desktop (Linux, Windows e OS X) e para plataformas móveis (iOS e Android).

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


Não no momento e você teria sorte em fazer o Jython trabalhar em breve. Se você está planejando iniciar seu desenvolvimento agora, seria melhor ficar com o Java por agora.



Uma maneira é usar o Kivy :

Biblioteca Python de código aberto para desenvolvimento rápido de aplicativos que usam interfaces de usuário inovadoras, como aplicativos multitoque.

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

Kivy Showcase app


Usando o SL4A (que já foi mencionado por si mesmo em outras respostas), você pode run uma instância web2py completa (outros frameworks web python também são candidatos prováveis). O SL4A não permite que você faça componentes nativos da interface do usuário (botões, barras de rolagem e afins), mas suporta WebViews . Um WebView é basicamente nada mais do que um navegador da web direcionado para um endereço fixo. Acredito que o aplicativo nativo do Gmail usa um WebView em vez de seguir a rota de widget comum.

Esta rota teria alguns recursos interessantes:

  • No caso da maioria dos frameworks web python, você poderia realmente desenvolver e testar sem usar um dispositivo Android ou emulador Android.
  • Seja qual for o código do Python que você tenha acabado escrevendo para o telefone, ele também pode ser colocado em um servidor público com pouca (ou nenhuma) modificação.
  • Você pode aproveitar todas as coisas loucas da web: consulta, HTML5, CSS3 etc.



"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 Android e facilitar a migração de jogos de plataformas semelhantes a PC para o Android. "

Os exemplos incluem um jogo completo empacotado em um APK, o que é bastante interessante.





android-scripting