android - एंड्रॉइड पर पायथन चलाने का कोई तरीका है?




python jython ase android-scripting (21)

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

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


Answers

BeeWare पर एक नज़र BeeWare । इस सवाल का जवाब देने के पल में यह अभी भी शुरुआती विकास में है। इसका उद्देश्य एंड्रॉइड समेत सभी समर्थित ऑपरेटिंग सिस्टम के लिए पाइथन के साथ देशी ऐप्स बनाने में सक्षम होना है।


Kivy

मैं इसे पोस्ट करने के लिए पोस्ट करना चाहता हूं जो @ जॉन मोहम्मद ने पहले से ही उत्तर दिया है ( लेकिन कृपया मेरे साथ भालू क्योंकि मेरी पहली भाषा नहीं है )

तब से यह वर्षों से रहा है, और किवी v1.9-dev के लिए विकसित हुआ है। किवी का सबसे बड़ा विक्रय बिंदु, मेरी राय में, इसकी क्रॉस-प्लेटफार्म संगतता है। आप अपने स्थानीय पर्यावरण (विंडोज / * निक्स इत्यादि) के तहत कोड और परीक्षण कर सकते हैं, आप अपने एंड्रॉइड / आईओएस / मैक / विंडोज डिवाइस पर चलाने के लिए अपने ऐप को भी डिज़ाइन, डिबग और पैकेज कर सकते हैं।

किवी की अपनी KV भाषा के साथ, आप आसानी से जीयूआई इंटरफ़ेस को कोड और निर्माण कर सकते हैं (यह जावा एक्सएमएल की तरह है, बल्कि ui.widgets इत्यादि के बजाय, केवी के पास इसी तरह के अनुवाद के लिए अपना ui.widgets ), जो मेरी राय में काफी आसान है अपनाने।

वर्तमान में Buildozer और python-for-android एंड python-for-android आपके ऐप्स बनाने / पैकेज करने के लिए सबसे अधिक अनुशंसित टूल हैं। मैंने दोनों को आजमाया है और दृढ़ता से कह सकता हूं कि वे पाइथन के साथ एंड्रॉइड ऐप्स बनाते हैं। जो उपयोगकर्ता अपने कंसोल / टर्मिनल / कमांड प्रॉम्प्ट में सहज महसूस करते हैं उन्हें इनका उपयोग करने में कोई समस्या नहीं होनी चाहिए, और उनके गाइड भी अच्छी तरह से प्रलेखित हैं।

इसके अलावा, आईओएस किवी का एक और बड़ा विक्रय बिंदु है, बशर्ते कि आप अपने आईओएस डिवाइस पर परीक्षण चलाने के लिए आवश्यक परिवर्तनों के साथ एक ही कोड बेस का उपयोग कर सकते हैं, kivy-ios आईओएस kivy-ios टूल्स के माध्यम से, हालांकि चलने से पहले बिल्ड के लिए kivy-ios की आवश्यकता है उनके डिवाइस (Xcode में आईओएस सिम्युलेटर AFAIK वर्तमान में x86- आर्किटेक्चर बिल्ड के लिए काम नहीं करता है)। कुछ निर्भरता मुद्दे भी हैं जिन्हें सफलतापूर्वक निर्माण करने के लिए एक्सकोड में मैन्युअल रूप से संकलित और झुकाया जाना चाहिए, लेकिन उन्हें हल करना बहुत कठिन नहीं होगा और किवी Google समूह में लोग भी वास्तव में सहायक हैं।

सभी के साथ, अच्छे पायथन ज्ञान वाले उपयोगकर्ताओं को कुछ सरल ऐप्स बनाने के लिए सप्ताहों (यदि दिन नहीं) में मूल बातें चुनने में कोई समस्या नहीं होनी चाहिए।

इसके अलावा उल्लेखनीय है कि आप निर्माण के साथ अपने पायथन मॉड्यूल को बंडल (व्यंजनों का निर्माण) कर सकते हैं ताकि उपयोगकर्ता वास्तव में कई मौजूदा पुस्तकालयों का उपयोग कर सकें, पाइथन हमें किवी के विस्तार समर्थन के माध्यम से Requests और PIL आदि जैसे लाते हैं।

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

आखिरी लेकिन कम से कम नहीं, अगर आप अधिक गंभीर / वाणिज्यिक परियोजनाओं के लिए किवी का उपयोग करने जा रहे हैं, तो आप मौजूदा मॉड्यूल को संतोषजनक नहीं पा सकते हैं। हालांकि कुछ व्यावहारिक समाधान हैं, pyjnius लिए pyjnius "प्रगति में काम" और pyobjus । उपयोगकर्ता अब कुछ मॉड्यूल एपीआई को नियंत्रित करने के लिए उन मॉड्यूल के माध्यम से जावा / ऑब्जेक्टिव-सी कक्षाओं तक पहुंच सकते हैं।

किवी में मेरा अनुभव यह है कि इसे अनुभवी पायथन प्रोग्रामर और कुछ गंभीर प्रोग्रामर के साथ सबसे अच्छा फिट मिलेगा जो तेजी से विकास या सरल कोड आधार रखरखाव चाहते हैं। यह कई प्लेटफार्मों पर अच्छी तरह से चलता है, यद्यपि वास्तव में मूल भावना के साथ नहीं।

मुझे उम्मीद है कि कुछ पायथन ऐप प्रोग्रामर इस जानकारी को उपयोगी पाते हैं और किवी को देखने लगते हैं। यदि समुदाय से बहुत रुचि है तो यह केवल बेहतर हो सकता है (अधिक समर्थन के साथ और लाइब्रेरी / मॉड्यूल पोर्ट किए जाते हैं)।

पीएस मेरे पास किवी के साथ कोई संबंध नहीं है, मैं केवल एक प्रोग्रामर हूं जो वास्तव में मोबाइल / क्रॉस-प्लेटफार्म विकास में पाइथन कोडिंग मजा लाने का विचार पसंद करता है।


एक और विकल्प pyqtdeploy लगता है जो दस्तावेज़ों का हवाला देते हुए है:

एक उपकरण जो कि क्यूटी के साथ प्रदान किए गए अन्य उपकरणों के संयोजन के साथ, Python v2.7 या Python v3.3 या बाद में लिखे गए PyQt4 और PyQt5 अनुप्रयोगों की तैनाती को सक्षम बनाता है। यह डेस्कटॉप प्लेटफार्मों (लिनक्स, विंडोज़ और ओएस एक्स) और मोबाइल प्लेटफॉर्म (आईओएस और एंड्रॉइड) पर तैनाती का समर्थन करता है।

Pyqtdeploy और Qt5 के माध्यम से एंड्रॉइड को PyQt5 एप्लिकेशन को तैनात करने के अनुसार यह सक्रिय रूप से विकसित किया गया है, हालांकि एंड्रॉइड में सभी आवश्यक पुस्तकालयों को पार करने के तरीके पर एंड्रॉइड ऐप्स या ट्यूटोरियल के उदाहरणों को ढूंढना मुश्किल है। हालांकि यह ध्यान में रखना एक दिलचस्प परियोजना है!


मैं QPython आवेदन का उपयोग करें। इसमें एक संपादक, कंसोल है, और आप इसके साथ अपने पायथन प्रोग्राम चला सकते हैं। एप्लिकेशन मुफ्त है, और लिंक http://qpython.com/


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

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


एंड्रॉइड पर पायथन का उपयोग करने के कई तरीके हैं।

BeeWare देशी उपयोगकर्ता इंटरफेस बनाने के लिए उपकरणों का संग्रह है

Chaquopy एंड्रॉइड स्टूडियो के ग्रैडल-आधारित बिल्ड सिस्टम के लिए एक प्लगइन है।

Kivy एक क्रॉस-प्लेटफार्म ओपनजीएल-आधारित यूजर इंटरफेस टूलकिट है।

pyqtdeploy PyQt अनुप्रयोगों को तैनात करने के लिए एक उपकरण है।

QPython एक ऑन-डिवाइस स्क्रिप्ट इंजन और विकास पर्यावरण है।

SL4A (एंड्रॉइड के लिए स्क्रिप्टिंग लेयर), मूल रूप से एएसई (एंड्रॉइड स्क्रिप्टिंग एनवायरनमेंट) नामक, "facades" का एक सेट है जो एंड्रॉइड एपीआई का एक बहुत ही सरल सबसेट का पर्दाफाश करता है।

PySide (क्यूटी टूलकिट के लिए पायथन बाध्यकारी) एंड्रॉइड के लिए कुछ प्रारंभिक समर्थन है।

हालांकि एंड्रॉइड की प्राथमिक प्रोग्रामिंग भाषा जावा है, प्लेटफ़ॉर्म पर ज्योथन का कोई ज्ञात बंदरगाह नहीं है। बीओवेयर में एंड्रॉइड समर्थन वीओसी का उपयोग करके हासिल किया जाता है, एक उपकरण जो जावा क्लास फाइलों में पाइथन स्रोत कोड को संकलित करता है। यह जेवीएम पर मूल बाइनरी के रूप में पाइथन कोड को निष्पादित करने की अनुमति देता है। https://wiki.python.org/moin/Android


Chaquopy

Chaquopy एंड्रॉइड स्टूडियो के ग्रैडल-आधारित बिल्ड सिस्टम के लिए एक प्लगइन है। यह मानक एंड्रॉइड विकास उपकरण के साथ निकट एकीकरण पर केंद्रित है।

  • यह जावा से पायथन या पायथन से जावा को कॉल करने के लिए पूर्ण एपीआई प्रदान करता है, जिससे डेवलपर को अपने ऐप के प्रत्येक घटक के लिए जो भी भाषा सर्वोत्तम होती है, का उपयोग करने की इजाजत देता है।

  • यह स्वचालित रूप से पीपीपीआई पैकेज डाउनलोड कर सकता है और उन्हें ऐप में बना सकता है, जिसमें चयनित मूल पैकेज जैसे न्यूमपी शामिल हैं।

  • यह पाइथन से सभी एंड्रॉइड एपीआई तक पूर्ण पहुंच को सक्षम बनाता है, जिसमें मूल उपयोगकर्ता इंटरफ़ेस टूलकिट ( उदाहरण शुद्ध-पायथन गतिविधि ) शामिल है।

यह एक वाणिज्यिक उत्पाद है, लेकिन यह ओपन-सोर्स उपयोग के लिए स्वतंत्र है और हमेशा इस तरह से रहेगा।

(मैं इस उत्पाद का निर्माता हूं।)


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

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

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

किवी शोकेस ऐप


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

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


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

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


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

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

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


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


आप sl4a का उपयोग कर अपने पायथन कोड चला सकते हैं। sl4a पायथन, Perl , जेआरबी, Lua , बीनशेल, जावास्क्रिप्ट, Tcl , और शैल स्क्रिप्ट का समर्थन करता है।

आप sl4a पायथन उदाहरण सीख सकते हैं।


SL4A

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

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

एपीआई

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

import android
droid = android.Android()

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

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

var droid = new Android();
droid.ttsSpeak('hello from js');

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

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

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

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

QPython

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

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

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


github.com/kivy/python-for-android साइट के github.com/kivy/python-for-android से:

एंड्रॉइड के लिए पायथन एक ऐसा प्रोजेक्ट है जो आपके इच्छित पायथन वितरण को बनाने के लिए है, जिसमें आप चाहते हैं कि मॉड्यूल, और पाइथन, libs, और अपने आवेदन सहित एक एपीके बनाएँ।


यदि आप 3.4.2 या 3.5.1 की तलाश में हैं तो एक और विकल्प गिटहब पर यह संग्रह है।

पायथन 3-एंड्रॉइड 3.4.2 या पायथन 3-एंड्रॉइड 3.5.1

यह वर्तमान में पायथन 3.4.2 या 3.5.1 और एनडीके के 10 डी संस्करण का समर्थन करता है। यह 3.3 और 9 सी, 11 सी और 12 का भी समर्थन कर सकता है

यह अच्छा है कि आप इसे डाउनलोड करते हैं, रन बनाते हैं और आपको .so या .a मिलता है

मैं वर्तमान में एंड्रॉइड उपकरणों पर कच्चे पायथन चलाने के लिए इसका उपयोग करता हूं। बिल्ड फाइलों में कुछ संशोधन के साथ आप x86 और आर्मेबी 64 बिट भी बना सकते हैं


SL4A का उपयोग करना (जिसे पहले से ही अन्य उत्तरों में स्वयं ही उल्लेख किया गया है) आप एक पूर्ण उड़ा हुआ वेब web2py इंस्टेंस run सकते run (अन्य पायथन वेब ढांचे संभावित उम्मीदवार भी हैं)। एसएल 4 ए आपको मूल यूआई घटकों (बटन, स्क्रॉल बार, और इसी तरह) करने की अनुमति नहीं देता है, लेकिन यह WebViews समर्थन करता है। एक वेबव्यू मूल रूप से एक निश्चित पते पर इंगित एक धारीदार वेब ब्राउज़र से अधिक कुछ नहीं है। मेरा मानना ​​है कि मूल जीमेल ऐप नियमित विजेट मार्ग जाने के बजाय वेबव्यू का उपयोग करता है।

इस मार्ग में कुछ रोचक विशेषताएं होंगी:

  • अधिकांश पायथन वेब ढांचे के मामले में, आप वास्तव में एंड्रॉइड डिवाइस या एंड्रॉइड एमुलेटर के बिना विकसित और परीक्षण कर सकते हैं।
  • फोन के लिए लिखने वाले जो भी पायथन कोड को बहुत कम (यदि कोई हो) संशोधन के साथ सार्वजनिक वेबसर्वर पर भी रखा जा सकता है।
  • आप वहां मौजूद सभी पागल वेब सामान का लाभ उठा सकते हैं: क्वेरी, एचटीएमएल 5, CSS3, इत्यादि।

संभवतः मस्तिष्क चलाना भी पाइथन-ऑन-ए-चिप है: Google समूह


google-opensource.blogspot.com/2009/06/…

एसएल 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)

Playstore में QPython3 नामक एक ऐप है जिसका उपयोग संपादन और पाइथन स्क्रिप्ट दोनों के लिए किया जा सकता है।

प्लेस्टोर लिंक

टर्मक्स नामक एक अन्य ऐप जिसमें आप कमांड का उपयोग करके पायथन इंस्टॉल कर सकते हैं

pkg install python

प्लेस्टोर लिंक


Every time while you move to the next page through intent, use:

`YourActivityname.this.finish()`;

उदाहरण:

Intent intent = new Intent(getApplicationContext(), SMS.class);

startActivity(intent);
MainActivity.this.finish();

So that no activity will be running on background and when you want to Exit your app, use:

MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
getParent().finish();

This exiting worked like a charm for me :)





android python jython ase android-scripting