Jawaban:
Salah satu caranya adalah menggunakan Kivy :
Pustaka Python open source untuk pengembangan aplikasi yang cepat yang menggunakan antarmuka pengguna yang inovatif, seperti aplikasi multi-sentuh.
Kivy berjalan di Linux, Windows, OS X, Android dan iOS. Anda dapat menjalankan kode [python] yang sama di semua platform yang didukung.
Ada juga proyek Android Scripting Environment (ASE / SL4A) yang baru. Ini terlihat luar biasa, dan memiliki beberapa integrasi dengan komponen Android asli.
Catatan: tidak lagi dalam "pengembangan aktif", tetapi beberapa garpu mungkin.
Iya! : Lingkungan Android Scripting
Contoh melalui Matt Cutts via SL4A - "inilah pemindai kode batang yang ditulis dalam enam baris kode 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)
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 adalah mesin gim 2D untuk Python (di desktop) yang populer di kalangan programmer baru. The Pygame Subset untuk Android menggambarkan dirinya sebagai ...
... port dari sebagian fungsi Pygame ke platform Android. Tujuan dari proyek ini adalah untuk memungkinkan pembuatan game khusus Android, dan untuk memudahkan porting game dari platform seperti PC ke Android.
Contohnya termasuk permainan lengkap yang dikemas sebagai APK, yang cukup menarik.
Blog saya memiliki instruksi dan tambalan untuk kompilasi silang Python 2.7.2 untuk Android.
Saya juga membuka Ignifuga yang bersumber , Mesin Game 2D saya. Ini berbasis Python / SDL, dan kompilasi silang untuk Android. Bahkan jika Anda tidak menggunakannya untuk game, Anda mungkin mendapatkan ide yang berguna dari kode atau utilitas pembangun (bernama Schafer , setelah Tim ... Anda tahu siapa).
SL4A melakukan apa yang Anda inginkan. Anda dapat dengan mudah menginstalnya langsung ke perangkat Anda dari situs mereka, dan tidak perlu root.
Ini mendukung berbagai bahasa. Python adalah yang paling dewasa. Secara default, ia menggunakan Python 2.6, tetapi ada port 3.2 yang dapat Anda gunakan sebagai gantinya. Saya telah menggunakan port itu untuk semua jenis hal pada Galaxy S2 dan itu berfungsi dengan baik.
SL4A menyediakan port android
perpustakaan mereka untuk setiap bahasa yang didukung. Perpustakaan menyediakan antarmuka ke API Android yang mendasarinya melalui satu Android
objek.
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
Setiap bahasa memiliki API yang hampir sama. Anda bahkan dapat menggunakan API JavaScript di dalam tampilan web.
let droid = new Android();
droid.ttsSpeak("hello from js");
Untuk antarmuka pengguna, Anda memiliki tiga opsi:
Anda dapat mencampur opsi, sehingga Anda dapat memiliki tampilan web untuk antarmuka utama, dan masih menggunakan dialog asli.
Ada proyek pihak ketiga bernama QPython . Itu dibangun di atas SL4A, dan melempar beberapa hal berguna lainnya.
QPython memberi Anda UI yang lebih bagus untuk mengelola instalasi Anda, dan termasuk sedikit, editor kode layar sentuh, shell Python, dan shell PIP untuk manajemen paket. Mereka juga memiliki port Python 3. Kedua versi tersedia dari Play Store, gratis. QPython juga menggabungkan pustaka dari sekelompok Python di proyek Android, termasuk Kivy, jadi bukan hanya SL4A.
Perhatikan bahwa QPython masih mengembangkan garpu SL4A mereka (meskipun, tidak banyak yang jujur). Proyek utama SL4A sendiri sudah hampir mati.
Sebagai pecinta Python dan programmer Android, saya sedih mengatakan ini bukan cara yang baik untuk pergi. Ada dua masalah:
Satu masalah adalah bahwa ada lebih dari sekedar bahasa pemrograman untuk alat pengembangan Android. Banyak grafik Android melibatkan file XML untuk mengonfigurasi tampilan, mirip dengan HTML. Objek java bawaan terintegrasi dengan tata letak XML ini, dan jauh lebih mudah daripada menulis kode Anda dari logika ke bitmap.
Masalah lainnya adalah bahwa G1 (dan mungkin perangkat Android lainnya untuk waktu dekat) tidak secepat itu. Prosesor 200 MHz dan RAM sangat terbatas. Bahkan di Jawa, Anda harus melakukan penulisan ulang yang memadai untuk menghindari lebih banyak objek-objek jika Anda ingin membuat aplikasi Anda menjadi sangat lancar. Python akan menjadi terlalu lambat untuk sementara waktu masih di perangkat seluler.
Saya ingin menambahkan apa yang telah ditulis oleh @JohnMudd tentang Kivy. Sudah bertahun-tahun sejak situasi yang dia gambarkan, dan Kivy telah berevolusi secara substansial.
Nilai jual terbesar Kivy, menurut saya, adalah kompatibilitas lintas platformnya. Anda dapat membuat kode dan menguji semuanya menggunakan lingkungan desktop apa pun (Windows / * nix dll.), Lalu kemas aplikasi Anda untuk berbagai platform yang berbeda, termasuk Android, iOS, MacOS dan Windows (meskipun aplikasi sering kali tidak memiliki tampilan dan nuansa asli).
Dengan bahasa KV milik Kivy , Anda dapat membuat kode dan membangun antarmuka GUI dengan mudah (seperti Java XML, tetapi alih-alih TextView dll., KV memiliki sendiriui.widgets
yang serupa), yang menurut saya cukup mudah untuk diadopsi.
Saat ini Buildozer dan python-untuk-android adalah alat yang paling direkomendasikan untuk membangun dan mengemas aplikasi Anda. Saya sudah mencoba keduanya dan dengan tegas mengatakan bahwa mereka membuat pembangunan aplikasi Android dengan Python sangat mudah. Panduan mereka juga didokumentasikan dengan baik.
iOS adalah nilai jual besar Kivy lainnya. Anda dapat menggunakan basis kode yang sama dengan beberapa perubahan yang diperlukan melalui alat Homebrew kivy-ios , meskipun Xcode diperlukan untuk build, sebelum berjalan di perangkat mereka (AFAIK iOS Simulator di Xcode saat ini tidak berfungsi untuk build arsitektur x86) . Ada juga beberapa masalah ketergantungan yang harus dikompilasi dan dikotak-kotakkan secara manual di Xcode untuk membangun yang sukses, tetapi mereka tidak akan terlalu sulit untuk diselesaikan dan orang-orang di Kivy Google Group juga sangat membantu.
Dengan semua yang dikatakan, pengguna dengan pengetahuan Python yang baik seharusnya tidak memiliki masalah mengambil dasar-dasar dengan cepat.
Jika Anda menggunakan Kivy untuk proyek yang lebih serius, Anda mungkin menemukan modul yang ada tidak memuaskan. Ada beberapa solusi yang bisa diterapkan. Dengan pyjnius (yang sedang dalam proses) untuk Android, dan pyobjus , pengguna sekarang dapat mengakses kelas Java / Objective-C untuk mengontrol beberapa API asli.
ScreenManager
karena ini akan menghemat banyak waktu. Juga sebuah saran adalah membaca milis mereka, sekelompok orang berpengetahuan di sana yang bersedia membantu Anda.
Anda dapat menggunakan aplikasi Termux , yang menyediakan lingkungan POSIX untuk Android, untuk menginstal Python.
Catatan yang apt install python
akan menginstal Python3 pada Termux. Untuk Python2, Anda perlu menggunakan apt install python2
.
Tidak saat ini dan Anda akan beruntung mendapatkan Jython segera bekerja. Jika Anda berencana untuk memulai pengembangan Anda sekarang Anda akan lebih baik hanya dengan tetap berpegang pada Java untuk saat ini.
Menggunakan SL4A (yang telah disebutkan dengan sendirinya dalam jawaban yang lain) Anda dapat menjalankan sebuah full-blown web2py contoh (lainnya kerangka python web adalah kandidat kemungkinan juga). SL4A tidak memungkinkan Anda melakukan komponen UI asli (tombol, bilah gulir, dan sejenisnya), tetapi ia mendukung WebViews . WebView pada dasarnya tidak lebih dari browser web bergaris menunjuk alamat tetap. Saya percaya aplikasi Gmail asli menggunakan WebView alih-alih menggunakan rute widget biasa.
Rute ini akan memiliki beberapa fitur menarik:
Saya menggunakan aplikasi QPython . Ini gratis dan termasuk editor kode, juru bahasa interaktif dan manajer paket, memungkinkan Anda untuk membuat dan menjalankan program Python langsung di perangkat Anda.
Dari Python untuk situs android :
Python untuk android adalah proyek untuk membuat distribusi Python Anda sendiri termasuk modul yang Anda inginkan, dan membuat apk termasuk python, libs, dan aplikasi Anda.
Chaquopy adalah sebuah plugin untuk sistem build Gradle berbasis Android Studio. Ini berfokus pada integrasi erat dengan alat pengembangan Android standar.
Ini menyediakan API lengkap untuk memanggil Java dari Python atau Python dari Java , memungkinkan pengembang untuk menggunakan bahasa apa pun yang terbaik untuk setiap komponen aplikasi mereka.
Itu dapat secara otomatis mengunduh paket PyPI dan membuatnya menjadi sebuah aplikasi, termasuk paket asli yang dipilih seperti NumPy.
Ini memungkinkan akses penuh ke semua API Android dari Python, termasuk toolkit antarmuka pengguna asli ( contoh aktivitas murni-Python ).
Ini adalah produk komersial, tetapi gratis untuk penggunaan sumber terbuka dan akan tetap seperti itu.
(Saya pencipta produk ini.)
Namun upaya lain: https://code.google.com/p/android-python27/
Yang ini menanamkan langsung penafsir Python di apk aplikasi Anda.
Berikut adalah beberapa alat yang terdaftar di situs python resmi
Ada sebuah aplikasi bernama QPython3 di playstore yang dapat digunakan untuk mengedit dan menjalankan skrip python.
Aplikasi lain bernama Termux di mana Anda dapat menginstal python menggunakan perintah
pkg install python
Jika Anda ingin mengembangkan aplikasi, ada 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.
Anda juga dapat memeriksa PySide untuk Android , yang sebenarnya adalah binding Python untuk Qt 4.
Ada platform yang disebut PyMob di mana aplikasi dapat ditulis murni dalam Python dan compiler tool-flow (PyMob) mengonversinya dalam kode sumber asli untuk berbagai platform.
Juga periksa python-untuk-android
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.
Coba Chaquopy A Python SDK untuk Android
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.
Anda dapat menggunakan QPython :
Ini memiliki Konsol Python, Editor, serta Manajemen Paket / Pemasang
Ini adalah proyek open source dengan implementasi Python 2 dan Python 3. Anda dapat mengunduh sumber dan file Android .apk langsung dari github.
QPython 2: https://github.com/qpython-android/qpython/releases
QPython 3: https://github.com/qpython-android/qpython3/releases
Opsi lain jika Anda mencari 3.4.2 atau 3.5.1 adalah arsip ini di GitHub.
Python3-Android 3.4.2 atau Python3-Android 3.5.1
Saat ini mendukung Python 3.4.2 atau 3.5.1 dan versi 10d dari NDK. Itu juga dapat mendukung 3.3 dan 9c, 11c dan 12
Sangat menyenangkan karena Anda cukup mengunduhnya, menjalankan make dan Anda mendapatkan .so atau .a
Saat ini saya menggunakan ini untuk menjalankan Python mentah pada perangkat android. Dengan beberapa modifikasi pada file build, Anda juga dapat membuat x86 dan armeabi 64 bit
Tidak melihat ini diposting di sini, tetapi Anda dapat melakukannya dengan Pyside dan Qt sekarang karena Qt bekerja di Android berkat Necessitas.
Sepertinya cukup kludge saat ini tetapi bisa menjadi rute yang layak pada akhirnya ...
Satu lagi pilihan tampaknya adalah pyqtdeploy yang mengutip dokumen adalah:
alat yang, bersama dengan alat lain yang disediakan dengan Qt, memungkinkan penyebaran aplikasi PyQt4 dan PyQt5 yang ditulis dengan Python v2.7 atau Python v3.3 atau lebih baru. Ini mendukung penyebaran ke platform desktop (Linux, Windows dan OS X) dan ke platform seluler (iOS dan Android).
Menurut Deploying aplikasi PyQt5 ke Android melalui pyqtdeploy dan Qt5, aplikasi ini dikembangkan secara aktif, meskipun sulit untuk menemukan contoh aplikasi Android yang berfungsi atau tutorial tentang cara mengkompilasi silang semua perpustakaan yang diperlukan ke Android. Ini adalah proyek yang menarik untuk diingat!
Lihatlah BeeWare . Saat ini menjawab pertanyaan ini masih dalam pengembangan awal. Tujuannya adalah untuk dapat membuat aplikasi asli dengan Python untuk semua sistem operasi yang didukung, termasuk Android.
Lihatlah enaml-native yang mengambil konsep react-native dan menerapkannya pada python.
Ini memungkinkan pengguna membuat aplikasi dengan widget Android asli dan menyediakan API untuk menggunakan perpustakaan android dan java dari python.
Ini juga terintegrasi dengan android-studio dan berbagi beberapa fitur dev bagus yang bereaksi seperti pemuatan kode dan debugging jarak jauh.