सवाल एंड्रॉइड पर पायथन चलाने का कोई तरीका है? [बन्द है]


हम एक पर काम कर रहे हैं S60 संस्करण और इस मंच में एक अच्छा पायथन एपीआई है।

हालांकि, एंड्रॉइड पर पायथन के बारे में कुछ भी नहीं है, लेकिन तब से Jython मौजूद है, सांप और रोबोट को एक साथ काम करने का कोई तरीका है?


1892
2017-09-19 13:21


मूल


आइए अच्छी तरह से Google- रैंकिंग SO पोस्ट के लिए अपडेट की संभावना के बारे में जोएल के सिद्धांत का परीक्षण करें। नीचे या यह देखें: google-opensource.blogspot.com/2009/06/... - unmounted
मेरा मतलब इसके विपरीत है। इस पोस्ट की छोटी सामग्री को देखते हुए, यदि यह अच्छी तरह से रैंक किया गया है, तो यह एक बड़ी उम्मीद होनी चाहिए। मैं दृढ़ता से इस परियोजना के लिए सबसे अच्छा उम्मीद करता हूं, मैं जावा लड़के की तुलना में खुद को एक पाइथोनिस्टा हूं और इस भाषा के साथ एंड्रॉइड कोडिंग आकाश को प्रोटोटाइप चरण को रॉक कर देगा। - e-satis
ओह, ठीक है ... मुझे नहीं लगता कि सवाल अपडेट करना उपयोगी है, लेकिन स्वीकार किए गए answser को निश्चित रूप से बदलना है। - e-satis
@ ई-सैटिस आप सही हैं। मैं अजगर और इसकी तकनीकीता के लिए नया हूं, मैं भाषाओं सी / सी ++ संकलित करने के लिए प्रयोग किया जाता था। लेकिन फिर भी वर्चुअल मशीन के अंदर एक आभासी मशीन सबसे तेज़ चीज नहीं होगी, और शायद कोड निष्पादित करने का सबसे धीमा तरीका बनने के लिए प्रतिस्पर्धा कर सकती है। निश्चित रूप से इसकी उपयोगिता है। मुझे पायथन और न ही एंड्रॉइड पर नफरत है, लेकिन ... - user457015
@ user457015 मुझे लगता है कि आपको वास्तव में आधुनिक जेवीएम लागू करने के तरीके पर पढ़ना चाहिए, वे हैं आसपास कही नहीं अब तक "स्क्रिप्टिंग" या "व्याख्या" करने के लिए। यदि कुछ भी है, तो जावा अब केवल ~ 10-25% धीमी है अच्छी तरह से / पूरी तरह से लिखा है सी / सी ++ कोड। और जावा में लिखने के लिए रास्ता कम है ... - TC1


जवाब:


एक तरीका उपयोग करना है Kivy:

अनुप्रयोगों के तेज़ी से विकास के लिए ओपन सोर्स पायथन लाइब्रेरी   जो मल्टी-टच ऐप्स जैसे अभिनव उपयोगकर्ता इंटरफेस का उपयोग करते हैं।

किवी लिनक्स, विंडोज़, ओएस एक्स, एंड्रॉइड और आईओएस पर चलता है। आप सभी समर्थित प्लेटफॉर्म पर वही [पायथन] कोड चला सकते हैं।

किवी शोकेस ऐप 


820
2017-11-18 21:49



यदि आप किवी का उपयोग करते हैं, तो यहां एक उपकरण है जो आपकी परियोजना को एपीके में पैकेज करने में मदद करता है: github.com/kivy/python-for-android - gdw2
@ ई-सैटिस ने किया Kivy तुम्हारे लिए काम करते हो? क्या यह उपयोगी था? यदि आप अपने अनुभवों को किवी के साथ पोस्ट कर सकते हैं तो मैं वास्तव में आभारी रहूंगा सवाल :) - juliomalegria
मैं पिछले हफ्ते किवी के साथ एक खेल लिखने का प्रयास कर रहा हूं। उनके मुख्य डेवलपर्स आईआरसी पर सवालों के जवाब देने के लिए बहुत जल्दी थे, हालांकि अगर आपने एक जीयूआई प्रोग्राम किया है, तो किवी आपको डब्ल्यूटीएफ को काफी कुछ कहेंगे। अनियंत्रित चीजों के कुछ उदाहरण जो मेरे लिए अजीब थे: सभी विगेट्स प्रत्येक ऑन-टच_डाउन ईवेंट प्राप्त करते हैं, भले ही घटना उनके क्षेत्र के बाहर हुई हो, कोई विजेट में ड्रॉ () विधि नहीं है, लगभग हर चीज कस्टम प्रॉपर्टी पैटर्न के माध्यम से बनाई गई कस्टम प्रॉपर्टीज पर होती है ( इन्हें पायथन की संपत्ति के साथ नाम साझा करें, लेकिन वे समान नहीं हैं) - Trey Stout
अब, लगभग एक पूर्ण वर्ष बाद, किसी भी बेहतर समर्थन है? क्या यहां कोई उल्लेखनीय सुधार हुआ है? - TankorSmash
और एक और साल, बहुत सारे Google, सभी अजगरों के साथ वे वेबसाइटों से प्यार करते हैं, एंड्रॉइड में अजगर के लिए कोई प्यार नहीं है। - Dexter


नया भी है एंड्रॉइड स्क्रिप्टिंग पर्यावरण (एएसई / एसएल 4 ए) परियोजना। यह शानदार लग रहा है, और इसमें देशी एंड्रॉइड घटकों के साथ कुछ एकीकरण है।

नोट: अब "सक्रिय विकास" के तहत नहीं, लेकिन कुछ कांटेदार हो सकते हैं।


303
2018-06-10 05:24



सच है, लेकिन उन्हें एएसई स्थापित करना है, यह कोई समाधान नहीं है जो आपको बिना किसी पहले से इंस्टॉल किए गए पाइथन में एक एंड्रॉइड ऐप लिखने देता है (सामान्य उपयोगकर्ता सभी "wtf यह एएसई चीज़ होगा?) - Stuart Axon
इसके अलावा, एएसई एक प्रतिबंधित वातावरण है; एएसई पूर्व-स्थापित होने पर भी आप पूर्ण उड़ाए गए एंड्रॉइड ऐप्स नहीं लिख सकते हैं। देख stackoverflow.com/questions/2076381 - Sridhar Ratnakumar
मुझे लगता है कि इसका नाम बदलकर एसएल 4 ए कर दिया गया था। - Vanuan
यदि आप चाहें तो एसएल 4 ए के साथ आप ऐप लिख सकते हैं, पैकेज कर सकते हैं और उन्हें स्टोर स्टोर पर भी बेच सकते हैं। यह अच्छी तरह से आया है क्योंकि उपर्युक्त टिप्पणियां पोस्ट की गई थीं। यदि आप एंड्रॉइड पर पायथन चाहते हैं, तो पीएल 4 ए, जो एसएल 4 ए पर चलता है शायद सबसे अच्छा विकल्प है। - Carl Smith
मैं confirme, SL4A अब उपयोग करने के लिए तैयार आवेदन के पैकेज लिखने की अनुमति देता है, मैं perl के साथ कोशिश की यह काम करता है - ubugnu


हाँ!

एक उदाहरण मैट कर्ट्स के माध्यम से एसएल 4 ए के माध्यम से - "यहां पाइथन कोड की छः पंक्तियों में लिखा गया एक बारकोड स्कैनर है:

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



एस / हाँ / हुंह। शायद / ... यह बेहद सीमित है। कुछ ग्राफिकल या बहु स्पर्श? एक बड़ा नहीं - gcb
@ जीसीबी आप सामान्य एंड्रॉइड विजेट सेट का उपयोग नहीं कर सकते हैं, लेकिन आप "वेबव्यूज" का उपयोग कर सकते हैं (उदाहरण के लिए मूल जीमेल एप्लिकेशन का उपयोग करता है)। - gdw2
golfed: 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'])) - Alex L
@ gdw2, निश्चित रूप से देशी जीमेल ऐप केवल वास्तविक यूआई के लिए नहीं, ईमेल को पार्स करने के लिए वेब व्यू का उपयोग करता है। इससे तुलना थोड़ा बेतुका हो जाती है। - Veselin Romić


वहाँ भी SL4A Google कर्मचारियों द्वारा बड़े पैमाने पर लिखा गया।


73
2018-05-26 09:21





" Android के लिए Pygame सबसेट एंड्रॉइड मंच पर पायगम कार्यक्षमता के सबसेट का एक बंदरगाह है। प्रोजेक्ट का लक्ष्य एंड्रॉइड-विशिष्ट खेलों के निर्माण की अनुमति देना है, और पीसी-जैसे प्लेटफॉर्म से एंड्रॉइड तक गेम के पोर्टिंग को कम करना है। "

उदाहरणों में एक एपीके में पैक किया गया एक पूरा गेम शामिल है, जो कि बहुत दिलचस्प है।


71
2018-01-28 12:18



मेरे Droid X (बटन, या टचस्क्रीन, याद नहीं कर सकते) पर कई पहलुओं को तोड़ दिया गया था, इसलिए मुझे इस मार्ग से बहुत दूर नहीं मिला। - gdw2


मैंने एंड्रॉइड के लिए पायथन 2.7.2 को संकलित करने के लिए निर्देश और पैच पोस्ट किया है, आप इसे यहां मेरे ब्लॉग पर प्राप्त कर सकते हैं: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

संपादित करें: मैंने सोर्स किया है Ignifuga, मेरा 2 डी गेम इंजन, यह पायथन / एसडीएल आधारित है और यह एंड्रॉइड के लिए क्रॉस संकलन करता है। यहां तक ​​कि यदि आप गेम के लिए इसका उपयोग नहीं करते हैं, तो भी आपको कोड और बिल्डर यूटिलिटी (स्काफर नामक, टिम के बाद ... आप जानते हैं) से उपयोगी विचार मिल सकते हैं।


63
2017-10-12 13:49



प्रभावशाली। इसके लिए +1। स्वीकार नहीं किया गया क्योंकि आप संभवतः जनता के लिए कुछ भी लिख नहीं सकते हैं। - e-satis
यदि आपका मतलब है कि आप इसके साथ ग्राफिक ऐप्स नहीं कर सकते हैं, तो निश्चित रूप से, आप निश्चित रूप से अधिक काम की आवश्यकता कर सकते हैं। मैं वास्तव में एसडीएल 1.3 के साथ संयुक्त इस बंदरगाह का उपयोग करता हूं, पाइथन दुभाषिया से एक इंटरैक्टिव ऐप में जाने के लिए यह छोटा नहीं है, लेकिन यह किया जा सकता है। - gabomdq


एंड्रॉइड के लिए स्क्रिप्टिंग परत

SL4A जो आप चाहते हैं वह करता है आप इसे सीधे अपने डिवाइस पर सीधे अपने डिवाइस से इंस्टॉल कर सकते हैं, और रूट की आवश्यकता नहीं है।

यह कई भाषाओं का समर्थन करता है। पायथन सबसे परिपक्व है। डिफ़ॉल्ट रूप से, यह पायथन 2.6 का उपयोग करता है, लेकिन एक है 3.2 पोर्ट आप इसके बजाय उपयोग कर सकते हैं। मैंने गैलेक्सी एस 2 पर सभी प्रकार की चीजों के लिए उस बंदरगाह का उपयोग किया है और यह ठीक काम करता है।

एपीआई

एसएल 4 ए उनके बंदरगाह प्रदान करता है android प्रत्येक समर्थित भाषा के लिए पुस्तकालय। पुस्तकालय एक एकल के माध्यम से अंतर्निहित एंड्रॉइड एपीआई के लिए एक इंटरफेस प्रदान करता है Android वस्तु।

from android import Android

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

प्रत्येक भाषा में एक ही एपीआई बहुत अधिक है। आप वेबव्यू के अंदर जावास्क्रिप्ट एपीआई का भी उपयोग कर सकते हैं।

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

उपयोगकर्ता इंटरफेस

उपयोगकर्ता इंटरफेस के लिए, आपके पास तीन विकल्प हैं:

  • आप आसानी से जेनेरिक, मूल संवाद और मेनू का उपयोग कर सकते हैं एपीआई। यह पुष्टिकरण संवाद और अन्य मूल उपयोगकर्ता इनपुट के लिए अच्छा है।
  • आप पाइथन लिपि के अंदर से एक वेबव्यू भी खोल सकते हैं, फिर HTML5 का उपयोग करें उपयोगकर्ता इंटरफेस के लिए। जब आप पाइथन से वेबव्यू का उपयोग करते हैं, तो आप पास कर सकते हैं वेबव्यू और पायथन प्रक्रिया के बीच, आगे और आगे संदेश इसे जन्म दिया। यूआई मूल नहीं होगा, लेकिन यह अभी भी एक अच्छा विकल्प है की है।
  • वहाँ है कुछ देशी एंड्रॉइड उपयोगकर्ता इंटरफेस के लिए समर्थन, लेकिन मैं नहीं हूं सुनिश्चित करें कि यह कितना अच्छा काम करता है; मैंने अभी इसका इस्तेमाल नहीं किया है।

आप विकल्प मिश्रण कर सकते हैं, ताकि आप मुख्य इंटरफ़ेस के लिए एक वेबदृश्य देख सकें, और फिर भी मूल संवाद का उपयोग कर सकें।

QPython

नाम की एक तीसरी पार्टी परियोजना है QPython। यह एसएल 4 ए पर बनाता है, और कुछ अन्य उपयोगी चीजों में फेंकता है।

QPython आपको अपनी स्थापना का प्रबंधन करने के लिए एक अच्छा यूआई देता है, और पैकेज प्रबंधन के लिए एक छोटा, टचस्क्रीन कोड संपादक, एक पायथन खोल और एक पीआईपी खोल शामिल है। उनके पास पाइथन 3 पोर्ट भी है। दोनों संस्करण Play Store से निःशुल्क हैं। क्यूपीथन भी किवी सहित एंड्रॉइड प्रोजेक्ट्स पर पाइथन के गुच्छा से पुस्तकालयों को बंडल करता है, इसलिए यह सिर्फ एसएल 4 ए नहीं है।

ध्यान दें कि QPython अभी भी SL4A के अपने कांटा विकसित (हालांकि, ईमानदार होने के लिए ज्यादा नहीं)। मुख्य एसएल 4 ए प्रोजेक्ट स्वयं बहुत ज्यादा मृत है।

उपयोगी कड़ियाँ


57
2018-03-19 15:45



क्या आप टर्मिनल या टास्कर से पाइथन स्क्रिप्ट चलाने के लिए उनमें से किसी का भी उपयोग कर सकते हैं? मुझे कोई रास्ता नहीं मिल रहा है :( - Pitto
आप टास्कर से एसएल 4 ए स्क्रिप्ट लॉन्च कर सकते हैं। कुछ उदाहरण हैं यह पन्ना जिसमें टास्कर से पाइथन लॉन्च किया जा रहा है। हालांकि यह वास्तव में एक अलग सवाल है। - Carl Smith


के तौर पर अजगर प्रेमी और एंड्रॉइड प्रोग्रामर, मुझे यह कहना है कि यह वास्तव में जाने का एक अच्छा तरीका नहीं है। दो समस्याएं हैं।

एक समस्या यह है कि एंड्रॉइड डेवलपमेंट टूल्स के लिए सिर्फ एक प्रोग्रामिंग भाषा की तुलना में बहुत कुछ है। बहुत से एंड्रॉइड ग्राफिक्स में एचटीएमएल के समान प्रदर्शन को कॉन्फ़िगर करने के लिए एक्सएमएल फाइलें शामिल हैं। अंतर्निहित जावा ऑब्जेक्ट्स वास्तव में इस एक्सएमएल लेआउट के साथ एकीकृत हैं, और लॉजिक से बिटमैप पर जाने के लिए अपना कोड लिखना बहुत आसान है।

दूसरी समस्या यह है कि जी 1 (और निकट भविष्य के लिए शायद अन्य एंड्रॉइड डिवाइस) वास्तव में तेज़ नहीं हैं। 200 मेगाहट्र्ज प्रोसेसर, और रैम बहुत सीमित है। यहां तक ​​कि जावा में भी आपको अपने एप को पूरी तरह से चिकनी बनाना चाहते हैं, तो आपको फिर से लिखने-से-अधिक-ऑब्जेक्ट-सृजन की एक सभ्य राशि करना है। मोबाइल डिवाइस पर अभी भी पाइथन बहुत धीमी गति से चल रहा है।


56
2017-11-01 20:29



एंड्रॉइड फोन पर एक भी जावा शब्द नहीं है, यह पैकेजिंग प्रक्रिया के दौरान बाइट कोड में संकलित है। गति मुद्दा नहीं है: Google एक पायथन कोड (जैसे ज्योथन) से दाएं बाइट कोड का उत्पादन करने वाले टूल प्रदान कर सकता है। बीटीडब्ल्यू, डाल्विक जावा वीएम नहीं है, इसलिए यह जावा वीएस पायथन के बारे में नहीं है। - e-satis
हेहे। 200 मेगाहर्ट्ज ... 4 साल बाद और अब फोन क्वाड-कोर प्रोसेसर हैं ... एलओएल। - Touzen
जावा बाइटकोड को अभी भी एक JVM द्वारा संसाधित करने की आवश्यकता है, और जावा भाषा को कचरा कलेक्टर की आवश्यकता होती है। वास्तविक गति केवल सी ++ से आ सकती है। - LtWorf
@Touzen 2 और साल बाद, हम अब इंटेल एटम प्रोसेसर या ऑक्टो-कोर प्रोसेसर चला रहे हैं। ;) - Rohan Kandwal
सत्ता में अंतर के कारण वे आकर्षित करने में सक्षम हैं, फोन हमेशा डेस्कटॉप की तुलना में धीमी गति का क्रम होगा। हालांकि, मोबाइल डिवाइस के लिए पायथन पर मत छोड़ो, क्योंकि आमतौर पर कोड का केवल एक अंश प्रोसेसर-गहन काम के लिए ज़िम्मेदार होता है, और इस अंश को दूसरी भाषा में फिर से लिखकर अनुकूलित किया जा सकता है। - Evgeni Sergeev


फिलहाल नहीं और आप जल्द ही काम करने के लिए ज्योथन पाने के लिए भाग्यशाली होंगे। यदि आप अब अपना विकास शुरू करने की योजना बना रहे हैं तो अब आप जावा पर चिपके रहने के साथ बेहतर होंगे।


32
2017-09-19 13:26