Pergunta

Estamos a trabalhar na versão de um S60 e esta plataforma tem um bom Python API ..

No entanto, não há nada oficial sobre Python no Android, mas desde Jython existe, está lá uma maneira de deixar a cobra eo trabalho robô juntos ??

Foi útil?

Solução

Uma maneira é usar Kivy :

Open source biblioteca Python para desenvolvimento rápido de aplicações que fazer uso de interfaces de usuário inovadoras, tais como aplicativos multi-touch.

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

Kivy Showcase aplicativo

Outras dicas

Há também o novo Android Scripting Environment (ASE / SL4A) projeto. Parece incrível, e tem alguma integração com componentes Android nativas.

Nota:. Não está mais sob "desenvolvimento ativo", mas alguns garfos pode ser

Sim! : Android Scripting Environment

Um exemplo via Matt Cutts via SL4A - "aqui está um código de barras digitalizador escrito em seis linhas de código 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)

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

"A Pygame Subset for Android é um porto de um subconjunto de funcionalidades Pygame para a plataforma Android . o objetivo do projeto é permitir a criação de jogos específicos do Android, e para facilitar a portabilidade de jogos de PC-como plataformas para Android ".

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

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

EDIT: Eu tenho código aberto ignífuga , meu Game Engine 2D, é Python / SDL base e ele compila cruzadas para Android. Mesmo se você não usá-lo para jogos, você pode obter ideias úteis a partir do código eo utilitário construtor (chamado Schafer, depois de Tim ... você sabe quem).

Scripting Layer for Android

SL4A faz o que quiser. Você pode facilmente instalá-lo diretamente para o seu dispositivo a partir de seu site, e não precisa de raiz.

Ele suporta uma variedade de idiomas. Python é o mais maduro. Por padrão, ele usa Python 2.6, mas há um 3.2 port você pode usar em seu lugar. Eu tenho usado essa porta para todos os tipos de coisas em um Galaxy S2 e funcionou muito bem.

API

SL4A fornece uma porta de sua biblioteca android para cada idioma suportado. A biblioteca fornece uma interface para o Android API 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 idioma tem praticamente a mesma API. Você ainda pode usar a API JavaScript dentro webviews.

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

Usuário Interfaces

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

  • Você pode facilmente usar as, diálogos e menus nativos genéricos através da API. Isso é bom para os diálogos de confirmação e outras entradas de usuário básico.
  • Você também pode abrir um webview de dentro de um script Python, em seguida, usar HTML5 para a interface do usuário. Quando você usa webviews de Python, você pode passar mensagens e para trás, entre o webview eo processo de Python que o gerou. A interface do usuário não será nativa, mas ainda é uma boa opção para ter.
  • Não alguns suporte para interfaces de usuário Android nativo, mas eu não sou certeza de como ele funciona bem; Eu simplesmente não já usou.

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

QPython

Há um projeto terceiros chamado QPython . Baseia-se na SL4A, e joga em algumas outras coisas úteis.

QPython dá-lhe uma interface do usuário mais agradável para gerir a sua instalação, e inclui um editor pouco, touchscreen de código, um shell Python, e um escudo PIP para gerenciamento de pacotes. Eles também têm uma porta Python 3. Ambas as versões estão disponíveis a partir da Play Store, gratuitamente. QPython também pacotes de bibliotecas de um grupo de Python em projetos Android, incluindo Kivy, por isso não é apenas SL4A.

Note que QPython ainda desenvolver o seu garfo de SL4A (embora, não há muito para ser honesto). O principal projeto SL4A em si é muito bonito morto.

Links Úteis

Como Python amante e programador Android, estou triste dizer isso não é realmente um bom caminho a percorrer. Há dois problemas.

Um problema é que há muito mais do que apenas uma linguagem de programação para as ferramentas de desenvolvimento do Android. Um monte dos gráficos Android envolvem arquivos XML para configurar a exibição, semelhante ao HTML. A built-in objetos Java são realmente integrado com este esquema XML, e é muito mais fácil do que escrever seu próprio código para ir de lógica para bitmap.

O outro problema é que o G1 (e provavelmente outros dispositivos Android para o futuro próximo) são realmente não tão rápido. 200 MHz, processadores e memória RAM é muito limitado. Mesmo em Java você tem que fazer uma quantidade razoável de reescrevendo-a evitar-mais-objeto-criação, se você quiser fazer a sua aplicação perfeitamente lisa. Python vai ser muito lento por um tempo ainda em dispositivos móveis.

Kivy


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

Tem sido anos desde então, e Kivy evoluiu para v1.9-dev. O maior ponto de venda de Kivy, na minha opinião, é a sua compatibilidade cross-platform. Você pode codificar e teste sob seu ambiente local (Windows / * nix etc.), você também pode construir, depurar e empacotar seu aplicativo para executar em seus dispositivos Android / iOS / Mac / Windows.

Com própria KV linguagem de Kivy, você pode codificar e construir o interface gráfica fácil (é como XML Java, mas ao invés de TextView etc., KV tem o seu próprio ui.widgets para a tradução similar), que na minha opinião é bastante fácil de adotar.

Buildozer e python-for-android são as ferramentas mais recomendados para build / empacotar seus apps. Eu tentei os dois e pode firmemente dizer que eles fazem a criação de aplicativos Android com Python uma brisa. Os usuários que se sentem confortáveis ??em seu prompt de comando / console / terminal deve ter nenhum problema de usá-los, e seus guias estão bem documentadas, também.

Além disso, o iOS é outro grande ponto de venda de Kivy, desde que você pode usar a mesma base de código com pequenas mudanças necessárias para test-run no seu dispositivo iOS, através de ferramentas Kivy-ios Homebrew, embora Xcode é necessário para a construção antes de executar em seus dispositivos (AFAIK o iOS Simulator no Xcode atualmente não funciona para o x86-arquitetura configuração). Existem também alguns problemas de dependência que deve ser compilados manualmente e brincou ao redor com no Xcode para ter uma compilação bem-sucedida, mas não seria muito difícil de resolver e as pessoas em Kivy Google Grupo são realmente úteis também.

Com tudo sendo dito, os usuários com bom conhecimento Python deve ter nenhum problema pegando o básico em semanas (se não dias) para construir alguns aplicativos simples.

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

Às vezes, a sua aplicação requer funcionalidade que está além do escopo do que Kivy pode entregar. Nesses casos, é necessário recorrer a bibliotecas de software externos. Dada a riqueza da Python ecossistema, já existe um monte de software bibliotecas que você pode simplesmente importar e usar imediatamente.

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

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

Eu espero que alguns programadores de aplicativos Python encontrar esta informação útil e começar a tomar uma olhada Kivy. Ele só pode ficar melhor (com mais apoio e como bibliotecas / modules get portado) se há um grande interesse por parte da comunidade.

P.S. Eu não tenho nenhuma relação com Kivy que seja, eu sou apenas um programador que realmente gosta da idéia de trazer Python divertido de codificação para o desenvolvimento / cross-plataforma móvel.

Não no momento e você seria a sorte de obter Jython ao trabalho em breve. Se você está planejando para iniciar seu desenvolvimento agora você seria melhor fora com apenas aderindo a Java para agora.

Usando SL4A (que já foi mencionado, por si só em outras respostas), você pode executar um web2py exemplo full-blown (outra quadros python web são prováveis ??candidatos também). não SL4A não permitem que você faça componentes de UI nativa (botões, barras de rolagem e semelhantes), mas ele faz suporte WebViews . A WebView é basicamente nada mais do que um listrado para baixo navegador web apontado para um endereço fixo. Eu acredito que o aplicativo nativo do Gmail usa um WebView em vez de ir a rota Widget regular.

Esta rota teria algumas características interessantes:

  • No caso da maioria dos frameworks python web, você realmente pode desenvolver e testar sem o uso de um dispositivo Android ou emulador android.
  • código Seja qual for Python você acaba escrevendo para o telefone também pode ser colocado em um servidor público com muito pouco (se houver) modificação.
  • Você poderia tirar proveito de todas as coisas web louco lá fora:. Consulta, HTML5, CSS3, etc

Eu uso o aplicativo QPython. Tem um editor, um console, e você pode executar seus programas em Python com ele. O aplicativo é gratuito, ea ligação é http://qpython.com/ .

Você pode usar aplicação Termux :

Note que o apt instalar python instalar python 3. para python 2 que deviam chamar apt instalar python2.

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

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

A partir da Python para o local android:

Python para Android é um projeto para criar sua própria distribuição Python, incluindo os módulos que você quer, e criar um apk incluindo python, libs, e sua aplicação.

No entanto, outra tentativa: https://code.google.com/p/android-python27/

Este incorporar diretamente o interpretter Python em sua apk aplicação.

Você pode executar o código Python usando SL4A . SL4A suporta Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl , e shell script.

Você pode aprender SL4A Python Exemplos .

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

Chaquopy

Chaquopy é um plugin para o sistema de construção baseado em Gradle do Android Studio. Centra-se na estreita integração com as ferramentas de desenvolvimento Android padrão.

  • Ele fornece APIs completas para chamar Java do Python ou < a href = "https://chaquo.com/chaquopy/doc/current/java.html" rel = "noreferrer"> Python de Java , permitindo que o desenvolvedor usar qualquer linguagem é melhor para cada componente de sua aplicação.

  • É possível baixar automaticamente PyPI pacotes e construí-los em um aplicativo, incluindo selecionada pacotes nativos como NumPy.

  • Ele permite acesso total a todas as APIs do Android de Python, incluindo o kit de ferramentas de interface de usuário nativa ( exemplo puro-Python actividade ).

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

(Eu sou o criador deste produto.)

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

Playstore ligação

Outro aplicativo chamado Termux em que você pode instalar python usando o comando

pkg install python

Playstore Fazer a ligação

Se você quiser desenvolver aplicativos, há Python Android Scripting Layer (SL4A) .

The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.

Você pode usar QPython :

Tem um Console Python, Editor, bem como Gerenciamento de pacotes / instaladores

http://qpython.com/

É um projeto open source com ambas Python 2 e 3 implementações. Você pode baixar a fonte eo Android .apk arquivos diretamente do github.

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

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

Não viu este postado aqui, mas você pode fazê-lo com PySide e Qt agora que Qt funciona em Android graças a Necessitas.

Parece bastante um remendo no momento, mas poderia ser um caminho viável, eventualmente, ...

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

Outra opção se você está procurando 3.4.2 ou 3.5.1 é este arquivo no GitHub.

Python3-Android 3.4.2 ou Python3-Android 3.5.1

Atualmente ele suporta Python 3.4.2 ou 3.5.1 ea versão 10d do NDK. Ele também pode suportar 3,3 e 9c, 11c e 12

É bom em que você simplesmente baixá-lo, executar make e você começa a .so ou o .a

Actualmente, eu uso isso para executar matéria-Python em dispositivos Android. Com algumas modificações para os arquivos de compilação você também pode fazer x86 e armeabi 64 bits

Mais uma opção parece ser pyqtdeploy que citando a documentação é:

uma ferramenta que, em conjunto com outras ferramentas fornecidas com o Qt, permite o desenvolvimento de aplicações e PyQt4 PyQt5 escrito com Python v2.7 ou Python v3.3 ou mais tarde. Ele oferece suporte à implantação de área de trabalho plataformas (Linux, Windows e OS X) e para plataformas móveis (iOS e Android).

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

Dê uma olhada BeeWare . No momento de responder a esta pergunta é ainda no início do desenvolvimento. É de objetivo é ser capaz de criar aplicativos nativos com Python para todos os sistemas operacionais suportados, incluindo Android.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top