Pertanyaan Apakah ada cara untuk menjalankan Python di Android? [Tutup]


Kami sedang mengerjakan sebuah S60 versi dan platform ini memiliki API Python yang bagus.

Namun, tidak ada yang resmi tentang Python di Android, tetapi sejak itu Jython ada, apakah ada cara untuk membiarkan ular dan robot bekerja bersama?


1885
2017-09-19 13:21


asal


Jawaban:


Salah satu caranya adalah menggunakan Kivy:

Perpustakaan open source Python untuk pengembangan aplikasi yang cepat   yang memanfaatkan 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.

Aplikasi Kivy Showcase 


818
2017-11-18 21:49



Ada juga yang baru Lingkungan Scripting Android (ASE / SL4A) proyek. Ini terlihat luar biasa, dan memiliki beberapa integrasi dengan komponen Android asli.

Catatan: tidak lagi di bawah "pengembangan aktif", tetapi beberapa garpu mungkin.


302
2018-06-10 05:24



IYA NIH!

Sebuah contoh via Matt Cutts via SL4A - "ini adalah 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)

180
2018-06-10 05:13



Ada juga SL4A ditulis dalam jumlah besar oleh karyawan Google.


73
2018-05-26 09:21



"Itu Pygame Subset untuk Android adalah port subkumpulan fungsi Pygame ke platform Android. Tujuan proyek ini adalah untuk memungkinkan pembuatan game khusus Android, dan untuk memudahkan porting game dari platform mirip PC ke Android. "

Contohnya termasuk permainan lengkap yang dikemas dalam APK, yang cukup menarik.


71
2018-01-28 12:18



Saya telah memposting instruksi dan patch untuk cross mengkompilasi Python 2.7.2 untuk Android, Anda bisa mendapatkannya di blog saya di sini: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

EDIT: Saya telah membuka sumbernya Ignifuga, Game Engine 2D saya, itu berbasis Python / SDL dan cross compiles untuk Android. Bahkan jika Anda tidak menggunakannya untuk permainan, Anda mungkin mendapatkan ide-ide yang berguna dari kode dan utilitas pembangun (bernama Schafer, setelah Tim ... Anda tahu siapa).


63
2017-10-12 13:49



Scripting Layer untuk Android

SL4A melakukan apa yang kamu 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 matang. Secara default, ia menggunakan Python 2.6, tetapi ada a 3,2 port Anda dapat menggunakan gantinya. Saya telah menggunakan port itu untuk semua hal pada Galaxy S2 dan itu bekerja dengan baik.

API

SL4A menyediakan port-nya android pustaka untuk setiap bahasa yang didukung. Perpustakaan menyediakan antarmuka ke API Android yang mendasari melalui single Android obyek.

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 JavaScript API di dalam tampilan web.

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

Antarmuka pengguna

Untuk antarmuka pengguna, Anda memiliki tiga opsi:

  • Anda dapat dengan mudah menggunakan generik, dialog dan menu asli melalui API. Ini bagus untuk dialog konfirmasi dan input pengguna dasar lainnya.
  • Anda juga dapat membuka tampilan web dari dalam skrip Python, lalu gunakan HTML5 untuk antarmuka pengguna. Saat Anda menggunakan tampilan web dari Python, Anda dapat lulus pesan bolak-balik, antara tampilan web dan proses Python itu menelurkannya. UI tidak asli, tetapi masih merupakan opsi yang baik memiliki.
  • Ada beberapa dukungan untuk antarmuka pengguna Android asli, tetapi saya tidak yakin seberapa baik kerjanya; Saya belum pernah menggunakannya.

Anda dapat mencampur pilihan, sehingga Anda dapat memiliki tampilan web untuk antarmuka utama, dan masih menggunakan dialog asli.

QPython

Ada proyek pihak ketiga bernama QPython. Ini dibangun di SL4A, dan melempar beberapa barang berguna lainnya.

QPython memberi Anda UI yang lebih baik 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 memaketkan pustaka dari sekelompok Python di proyek Android, termasuk Kivy, jadi itu bukan hanya SL4A.

Perhatikan bahwa QPython masih mengembangkan garpu SL4A mereka (meskipun, tidak banyak jujur). Proyek utama SL4A sendiri sudah cukup banyak mati.

Tautan yang Berguna


57
2018-03-19 15:45



Sebagai Python pencinta dan programmer Android, saya sedih mengatakan ini bukan cara yang baik untuk pergi. Ada dua masalah.

Satu masalah adalah bahwa ada lebih dari sekadar bahasa pemrograman untuk alat pengembangan Android. Banyak grafik Android melibatkan file XML untuk mengonfigurasi tampilan, mirip dengan HTML. Objek java built-in benar-benar terintegrasi dengan tata letak XML ini, dan itu jauh lebih mudah daripada menulis kode Anda sendiri untuk pergi dari logika ke bitmap.

Masalah lainnya adalah bahwa G1 (dan mungkin perangkat Android lainnya untuk waktu dekat) benar-benar tidak secepat itu. Prosesor 200 MHz, dan RAM sangat terbatas. Bahkan di Jawa Anda harus melakukan penulisan ulang untuk menghindari pembuatan objek yang lebih baik jika Anda ingin membuat aplikasi Anda sangat lancar. Python akan terlalu lambat untuk sementara waktu di perangkat seluler.


56
2017-11-01 20:29



Tidak saat ini dan Anda akan beruntung mendapatkan Jython bekerja segera. Jika Anda berencana untuk memulai pengembangan Anda sekarang, Anda akan lebih baik dengan tetap menggunakan Java untuk saat ini.


32
2017-09-19 13:26



Menggunakan SL4A (yang telah disebutkan dengan sendirinya dalam jawaban lain), Anda bisa menjalankan sebuah full-blown web2py contoh (lainnya kerangka web python kemungkinan kandidat juga). SL4A tidak memungkinkan Anda untuk melakukan komponen UI asli (tombol, scroll bar, dan sejenisnya), tetapi itu tidak mendukung WebViews. Sebuah WebView pada dasarnya tidak lebih dari sebuah web browser bergaris bawah menunjuk pada alamat tetap. Saya yakin aplikasi Gmail asli menggunakan WebView daripada pergi ke rute widget biasa.

Rute ini akan memiliki beberapa fitur menarik:

  • Dalam kasus kerangka web python paling, Anda benar-benar bisa mengembangkan dan menguji tanpa menggunakan perangkat android atau emulator android.
  • Kode Python apa pun yang Anda akhiri dengan tulisan untuk ponsel juga dapat ditempatkan di server web publik dengan sedikit modifikasi (jika ada).
  • Anda dapat memanfaatkan semua barang web gila di luar sana: kueri, HTML5, CSS3, dll.

29
2018-01-06 14:34