Yanıtlar:
Bunun bir yolu Kivy'yi kullanmaktır :
Çoklu dokunma uygulamaları gibi yenilikçi kullanıcı arayüzlerinden yararlanan uygulamaların hızlı gelişimi için açık kaynaklı Python kütüphanesi.
Kivy Linux, Windows, OS X, Android ve iOS işletim sistemlerinde çalışır. Desteklenen tüm platformlarda aynı [python] kodunu çalıştırabilirsiniz.
Yeni Android Komut Dosyası Ortamı (ASE / SL4A) projesi de var. Harika görünüyor ve yerel Android bileşenleri ile bazı entegrasyonu var.
Not: Artık "aktif geliştirme" altında değil, bazı çatallar olabilir.
Evet! : Android Komut Dosyası Ortamı
Matt Cutts ile SL4A üzerinden bir örnek - "İşte altı satır Python kodu ile yazılmış bir barkod tarayıcı:
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)
import android as a;d=a.Android();d.startActivity('android.intent.action.VIEW',"http://books.google.com?q=%d"%int(d.scanBarcode()['result']['SCAN_RESULT']))
Pygame , yeni programcılar arasında popüler olan Python (masaüstünde) için bir 2D oyun motorudur. Android için Pygame Alt Küme olarak tanımlıyor ...
... Android platformuna Pygame işlevselliğinin bir alt kümesinin bir portu. Projenin amacı, Android'e özgü oyunların oluşturulmasına izin vermek ve PC benzeri platformlardan Android'e oyunların taşınmasını kolaylaştırmaktır.
Örnekler, APK olarak paketlenmiş, oldukça ilginç olan tam bir oyunu içerir.
Blogumda, Android için Python 2.7.2'yi derlemek için talimatlar ve bir yama var .
Ayrıca 2D Oyun Motorum kaynaklı Ignifuga'yı da açtım . Python / SDL tabanlı ve Android için derleme çapraz. Oyunlar için kullanmasanız bile, koddan veya oluşturucu yardımcı programından ( Tim'den sonra Schafer olarak adlandırılır ... kim olduğunu biliyorsunuz) yararlı fikirler alabilirsiniz .
SL4A ne istersen yapar. Sitelerinden doğrudan cihazınıza kolayca yükleyebilir ve root'a ihtiyacınız yoktur.
Bir dizi dili destekler. Python en olgun olanıdır. Varsayılan olarak, Python 2.6 kullanır, ancak bunun yerine kullanabileceğiniz bir 3.2 bağlantı noktası vardır . Bu bağlantı noktasını bir Galaxy S2'deki her türlü şey için kullandım ve iyi çalıştı.
SL4A, android
desteklenen her dil için kitaplıklarının bir bağlantı noktasını sağlar . Kütüphane, temel Android API'sine tek bir Android
nesne aracılığıyla bir arayüz sağlar .
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
Her dil hemen hemen aynı API'ya sahiptir. JavaScript API'sini web görünümleri içinde bile kullanabilirsiniz.
let droid = new Android();
droid.ttsSpeak("hello from js");
Kullanıcı arayüzleri için üç seçeneğiniz vardır:
Seçenekleri karıştırabilirsiniz, böylece ana arayüz için bir web görünümünüz olabilir ve yine de yerel diyalogları kullanabilirsiniz.
QPython adında bir üçüncü taraf projesi var . SL4A üzerine kuruludur ve diğer bazı yararlı şeyleri atar.
QPython, kurulumunuzu yönetmek için size daha güzel bir kullanıcı arayüzü sunar ve küçük, dokunmatik ekranlı kod düzenleyici, bir Python kabuğu ve paket yönetimi için bir PIP kabuğu içerir. Ayrıca bir Python 3 portu var. Her iki sürümü de Play Store'dan ücretsiz olarak edinebilirsiniz. QPython ayrıca Kivy de dahil olmak üzere Android projelerinde bir grup Python'dan kütüphaneleri bir araya getiriyor, bu yüzden sadece SL4A değil.
QPython'un hala SL4A çatallarını geliştirdiğine dikkat edin (dürüst olmak gerekirse çok fazla değil). Ana SL4A projesinin kendisi neredeyse öldü.
Bir Python sevgilisi ve Android programcısı olarak, bunun iyi bir yol olmadığını söylemek üzücü. İki sorun var:
Bir sorun, Android geliştirme araçlarına sadece bir programlama dilinden çok daha fazlası olması. Android grafiklerinin çoğu, HTML'ye benzer şekilde ekranı yapılandırmak için XML dosyaları içerir. Yerleşik java nesneleri bu XML mizanpajıyla entegredir ve mantığınızdan bitmap'e geçmek için kodunuzu yazmaktan çok daha kolaydır.
Diğer sorun, G1'in (ve yakın gelecekte muhtemelen diğer Android cihazlarının) o kadar hızlı olmamasıdır. 200 MHz işlemci ve RAM çok sınırlıdır. Java'da bile, uygulamanızı mükemmel bir şekilde pürüzsüz hale getirmek istiyorsanız, daha fazla nesne önlemek için yeniden yazma yapmak için makul miktarda yeniden yazma yapmanız gerekir. Python, bir süre daha mobil cihazlarda çok yavaş olacak.
@JohnMudd'ın Kivy hakkında yazdıklarına eklemek istedim. Tanımladığı durumdan bu yana yıllar geçti ve Kivy önemli ölçüde gelişti.
Kivy'nin en büyük satış noktası, bence, platformlar arası uyumluluğu. Herhangi bir masaüstü ortamını (Windows / * nix vb.) Kullanarak her şeyi kodlayabilir ve test edebilir, ardından uygulamanızı Android, iOS, MacOS ve Windows dahil olmak üzere bir dizi farklı platform için paketleyebilirsiniz (ancak uygulamalar genellikle yerel görünüm ve izlenimden yoksundur).
Kivy'nin kendi KV dili ile GUI arayüzünü kolayca kodlayabilir ve oluşturabilirsiniz (tıpkı Java XML gibi, ancak TextView vb. Yerine, KV'nin ui.widgets
benzer bir çeviri için kendi vardır ), ki bence benimsemesi oldukça kolay.
Şu anda Buildozer ve android için python , uygulamalarınızı oluşturmak ve paketlemek için en çok önerilen araçlardır. İkisini de denedim ve Python ile Android uygulamaları oluşturmayı bir esinti haline getirdiklerini söyleyebilirim. Onların rehberleri de iyi belgelenmiştir.
iOS, Kivy'nin bir başka büyük satış noktasıdır. Aynı kod tabanını kivy-ios Homebrew araçları aracılığıyla gereken birkaç değişiklikle birlikte kullanabilirsiniz , ancak cihazlarında çalıştırmadan önce derleme için Xcode gereklidir (AFAIK, Xcode'daki iOS Simulator şu anda x86-mimari derlemesi için çalışmıyor) . Başarılı bir yapıya sahip olmak için Xcode'da elle derlenip uğraşılması gereken bazı bağımlılık sorunları da var, ancak bunların çözülmesi çok zor olmayacak ve Kivy Google Grubu'ndaki insanlar da gerçekten yararlı.
Tüm bunlar söylenirken, iyi Python bilgisine sahip kullanıcıların temel bilgileri hızlı bir şekilde seçmede sorun yaşamaması gerekir.
Kivy'yi daha ciddi projeler için kullanıyorsanız, mevcut modülleri tatmin edici bulabilirsiniz. Yine de bazı uygulanabilir çözümler var. Android için (devam eden çalışma) pyjnius ve pyobjus ile kullanıcılar artık yerel API'lerin bazılarını kontrol etmek için Java / Objective-C sınıflarına erişebilir.
ScreenManager
bu tonlarca zaman kazandıracak şekilde kullanın. Ayrıca bir tavsiye onların posta listesini, size yardım etmeye istekli bilgili insanlar bir grup okumaktır.
Python'u yüklemek için Android için POSIX ortamı sağlayan Termux uygulamasını kullanabilirsiniz .
Not apt install python
Termux üzerinde Python3 kuracaktır. Python2 için kullanmanız gerekir apt install python2
.
Şu anda değil ve Jython'un yakında çalışmasını sağlamak için şanslı olacaksınız. Geliştirmenize şimdi başlamayı planlıyorsanız, şimdilik Java'ya yapışmanız daha iyi olacaktır.
SL4A'yı (diğer cevaplarda zaten belirtilmiş olan) kullanarak tam bir web2py örneği çalıştırabilirsiniz (diğer python web çerçeveleri de aday olabilir). SL4A Eğer yerli UI bileşenleri (düğmeler, kaydırma çubukları ve benzeri) yapmak izin vermez, ancak destek yok WebView'ları . WebView temel olarak sabit bir adrese işaret eden çizgili bir web tarayıcısından başka bir şey değildir. Yerel Gmail uygulamasının, normal widget yoluna gitmek yerine bir WebView kullandığına inanıyorum.
Bu rota bazı ilginç özelliklere sahip olacak:
Kullandığım QPython app . Ücretsizdir ve doğrudan cihazınızda Python programları oluşturmanıza ve yürütmenize izin veren bir kod düzenleyici, etkileşimli bir tercüman ve bir paket yöneticisi içerir.
Android sitesi için Python'dan :
Android için Python, istediğiniz modülleri içeren kendi Python dağıtımınızı oluşturmak ve python, libs ve uygulamanızı içeren bir apk oluşturmak için bir projedir.
Chaquopy , Android Studio'nun Gradle tabanlı oluşturma sistemi için bir eklentidir. Standart Android geliştirme araçlarıyla yakın entegrasyona odaklanır .
Bu aramaya komple API'ler sağlar Python Java'yı veya Java dan Python onların uygulamanın her bileşen için en iyisi hangisi dil kullanımına geliştirici izin.
PyPI paketlerini otomatik olarak indirebilir ve NumPy gibi seçilen yerel paketler dahil olmak üzere bir uygulamaya oluşturabilir.
Yerel kullanıcı arabirimi araç seti ( örnek saf Python etkinliği ) dahil olmak üzere Python'dan tüm Android API'larına tam erişim sağlar .
Bu ticari bir üründür, ancak açık kaynak kullanımı için ücretsizdir ve her zaman böyle kalır.
(Ben bu ürünün yaratıcısıyım.)
Yine başka bir girişim: https://code.google.com/p/android-python27/
Bu uygulama apk doğrudan Python yorumlayıcı gömmek.
İşte resmi python web sitesinde listelenen bazı araçlar
Play Store'da python betiğini düzenlemek ve çalıştırmak için kullanılabilen QPython3 adlı bir uygulama var .
Komutu kullanarak python yükleyebileceğiniz Termux adlı başka bir uygulama
pkg install python
Uygulama geliştirmek istiyorsanız, Python Android Komut Dosyası Katmanı ( SL4A ) vardır .
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.
Ayrıca Qt 4 için aslında Python bağlamaları olan PySide for Android'i de kontrol edebilirsiniz .
Orada adında bir platform PyMob uygulamalar Python tamamen yazılabilir ve derleyici aracı akışlı (PyMob) çeşitli platformlar için yerli kaynak kodlarında dönüştürür.
Ayrıca android için python'u kontrol edin
python-for-android is an open source build tool to let you package Python code into standalone android APKs. These can be passed around, installed, or uploaded to marketplaces such as the Play Store just like any other Android app. This tool was originally developed for the Kivy cross-platform graphical framework, but now supports multiple bootstraps and can be easily extended to package other types of Python apps for Android.
Android için Chaquopy A Python SDK'yı deneyin
Anddd ... BeeWare
BeeWare allows you to write your app in Python and release it on multiple platforms. No need to rewrite the app in multiple programming languages. It means no issues with build tools, environments, compatibility, etc.
Python kodunuzu sl4a kullanarak çalıştırabilirsiniz . sl4a, Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl ve kabuk betiğini destekler.
Sl4a Python Örneklerini öğrenebilirsiniz .
QPython'u kullanabilirsiniz :
Bir Python Konsolu, Editör ve Paket Yönetimi / Yükleyicileri var
Hem Python 2 hem de Python 3 uygulamalarıyla açık kaynaklı bir projedir. Kaynak ve Android .apk dosyalarını doğrudan github'dan indirebilirsiniz.
QPython 2: https://github.com/qpython-android/qpython/releases
QPython 3: https://github.com/qpython-android/qpython3/releases
3.4.2 veya 3.5.1 arıyorsanız başka bir seçenek GitHub'daki bu arşivdir.
Python3-Android 3.4.2 veya Python3-Android 3.5.1
Şu anda Python 3.4.2 veya 3.5.1 ve NDK'nın 10d sürümünü desteklemektedir. 3.3 ve 9c, 11c ve 12'yi de destekleyebilir
Sadece indirmeniz, make'i çalıştırmanız ve .so veya .a
Şu anda android cihazlarda ham Python çalıştırmak için bunu kullanıyorum. Derleme dosyalarında birkaç değişiklik yaparak x86 ve armeabi 64 bit yapabilirsiniz
Bu burada yayınlanan görmedim, ama şimdi Qt Necessitas sayesinde Android üzerinde çalışıyor Pyside ve Qt ile yapabilirsiniz.
Şu anda bir çamur gibi görünüyor ama sonunda uygun bir rota olabilir ...
Bir başka seçenek , dokümanlardan alıntı yapan pyqtdeploy gibi görünüyor :
Qt ile sağlanan diğer araçlarla birlikte, Python v2.7 veya Python v3.3 veya üstü ile yazılmış PyQt4 ve PyQt5 uygulamalarının konuşlandırılmasını sağlayan bir araç. Masaüstü platformlarına (Linux, Windows ve OS X) ve mobil platformlara (iOS ve Android) dağıtımını destekler.
Göre pyqtdeploy ve Qt5 aracılığıyla Android'e dağıtma PyQt5 uygulaması aktif o Android'e gerekli tüm kütüphaneleri çapraz derlemeye nasıl Android uygulamaları veya öğretici çalışma örneklerini bulmak zor olmasına rağmen, geliştirilmiştir. Akılda tutulması gereken ilginç bir proje!
BeeWare'e bir göz atın . Bu soruyu cevaplarken şu anda hala erken gelişme aşamasında. Amacı, Android dahil tüm desteklenen işletim sistemleri için Python ile yerel uygulamalar oluşturabilmektir.
Check out enaml yerli tepki yerli kavramı alır ve piton uygular hangi.
Kullanıcıların yerel Android widget'ları ile uygulamalar oluşturmasına izin verir ve python'dan android ve java kütüphanelerini kullanmak için API'ler sağlar.
Ayrıca android-studio ile entegre olur ve kod yeniden yükleme ve uzaktan hata ayıklama gibi reat'ın güzel geliştirici özelliklerini paylaşır.