हम एक S60 संस्करण पर काम कर रहे हैं और इस प्लेटफॉर्म में एक अच्छा पायथन एपीआई है।
हालांकि, एंड्रॉइड पर पायथन के बारे में कुछ भी आधिकारिक नहीं है, लेकिन चूंकि Jython मौजूद है, क्या इसका कोई तरीका है सांप और रोबोट को एक साथ काम करने दें ??
22 जवाब
एक तरीका है किवी का उपयोग करना:
अनुप्रयोगों के तेजी से विकास के लिए ओपन सोर्स पायथन लाइब्रेरी, जो मल्टी-टच ऐप्स जैसे अभिनव यूजर इंटरफेस का उपयोग करती है।
किवी लिनक्स, विंडोज, ओएस एक्स, एंड्रॉइड और आईओएस पर चलता है। आप सभी समर्थित प्लेटफॉर्म पर समान [पायथन] कोड चला सकते हैं।
नया Android Scripting Environment (ASE/SL4A) प्रोजेक्ट भी है। यह बहुत बढ़िया लग रहा है, और इसमें देशी Android घटकों के साथ कुछ एकीकरण है।
नोट: अब "सक्रिय विकास" के तहत नहीं, लेकिन कुछ कांटे हो सकते हैं।
हां! : Android Scripting Environment
एक उदाहरण मैट कट्स के माध्यम से SL4A के माध्यम से - "यहां एक बारकोड स्कैनर लिखा गया है पायथन कोड की छह पंक्तियाँ:
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']))
Android के लिए Pygame सबसेट
Pygame Python (डेस्कटॉप पर) के लिए एक 2D गेम इंजन है जो नए प्रोग्रामर्स के बीच लोकप्रिय है। Android के लिए Pygame सबसेट खुद को इस तरह बताता है...
... Android प्लेटफॉर्म पर Pygame कार्यक्षमता के सबसेट का एक पोर्ट। परियोजना का लक्ष्य एंड्रॉइड-विशिष्ट गेम के निर्माण की अनुमति देना है, और पीसी जैसे प्लेटफॉर्म से एंड्रॉइड पर गेम के पोर्टिंग को आसान बनाना है।
उदाहरणों में एपीके के रूप में पैक किया गया एक पूरा गेम शामिल है, जो काफी दिलचस्प है।
क्रॉस-संकलन और इग्निफुगा
मेरे ब्लॉग में निर्देश और एक पैच है जो कि पायथन को क्रॉस कंपाइल करने के लिए है 2.7.2 एंड्रॉयड के लिए।
मैंने अपने 2D गेम इंजन Ignifuga को भी ओपन सोर्स किया है। यह पायथन/एसडीएल आधारित है, और यह एंड्रॉइड के लिए क्रॉस कंपाइल करता है। यहां तक कि अगर आप इसे गेम के लिए उपयोग नहीं करते हैं, तो आपको कोड या बिल्डर यूटिलिटी से उपयोगी विचार मिल सकते हैं (जिसका नाम शेफ़र है, टिम के बाद ... आप जानते हैं कौन)।
कीवी
मैं जोड़ना चाहता था कि @JohnMudd ने किवी के बारे में क्या लिखा है। जिस स्थिति का उन्होंने वर्णन किया है, उसे वर्षों हो चुके हैं, और किवी काफी हद तक विकसित हो गया है।
किवी का सबसे बड़ा विक्रय बिंदु, मेरी राय में, इसकी क्रॉस-प्लेटफ़ॉर्म संगतता है। आप किसी भी डेस्कटॉप वातावरण (Windows/*nix आदि) का उपयोग करके सब कुछ कोड और परीक्षण कर सकते हैं, फिर अपने ऐप को Android, iOS, MacOS और Windows सहित विभिन्न प्लेटफार्मों की एक श्रृंखला के लिए पैकेज कर सकते हैं (हालाँकि ऐप्स में अक्सर मूल रूप और अनुभव की कमी होती है)।
Kivy की अपनी KV भाषा के साथ, आप GUI इंटरफ़ेस को आसानी से कोड और निर्माण कर सकते हैं (यह बिल्कुल जावा एक्सएमएल की तरह है, लेकिन टेक्स्ट व्यू इत्यादि के बजाय, केवी का अपना ui.widgets
समान अनुवाद के लिए है), जो मेरी राय में अपनाने में काफी आसान है।
वर्तमान में Buildozer और पायथन-फॉर-एंड्रॉइड आपके ऐप्स बनाने और पैकेज करने के लिए सबसे अनुशंसित टूल हैं। मैंने उन दोनों को आजमाया है और दृढ़ता से कह सकता हूं कि वे पाइथन के साथ एंड्रॉइड ऐप बनाना एक हवा बनाते हैं। उनके गाइड भी अच्छी तरह से प्रलेखित हैं।
आईओएस किवी का एक और बड़ा विक्रय बिंदु है। आप kivy-ios Homebrew टूल्स, हालांकि निर्माण के लिए Xcode आवश्यक है, उनके डिवाइस पर चलने से पहले (AFAIK Xcode में iOS सिम्युलेटर वर्तमान में x86-आर्किटेक्चर बिल्ड के लिए काम नहीं करता है)। कुछ निर्भरता मुद्दे भी हैं जिन्हें एक सफल निर्माण के लिए मैन्युअल रूप से संकलित किया जाना चाहिए और Xcode में इसके साथ फ़िल्ड किया जाना चाहिए, लेकिन उन्हें हल करना बहुत मुश्किल नहीं होगा और Kivy Google Group भी वास्तव में सहायक हैं।
कहा जा रहा है कि, अच्छे पायथन ज्ञान वाले उपयोगकर्ताओं को मूल बातें जल्दी से लेने में कोई समस्या नहीं होनी चाहिए।
यदि आप अधिक गंभीर परियोजनाओं के लिए Kivy का उपयोग कर रहे हैं, तो आपको मौजूदा मॉड्यूल असंतोषजनक लग सकते हैं। हालांकि कुछ व्यावहारिक समाधान हैं। Android के लिए (कार्य प्रगति पर है) pyjnius और pyobjus, उपयोगकर्ता अब कुछ मूल API को नियंत्रित करने के लिए Java/Objective-C कक्षाओं तक पहुंच सकते हैं।
Android के लिए स्क्रिप्टिंग परत
SL4A वही करता है जो आप चाहते हैं। आप इसे आसानी से सीधे अपने डिवाइस पर उनकी साइट से स्थापित कर सकते हैं, और रूट की आवश्यकता नहीं है।
यह कई भाषाओं का समर्थन करता है। पायथन सबसे परिपक्व है। डिफ़ॉल्ट रूप से, यह Python 2.6 का उपयोग करता है, लेकिन एक 3.2 पोर्ट आप इसके बजाय उपयोग कर सकते हैं। मैंने गैलेक्सी एस 2 पर सभी प्रकार की चीजों के लिए उस बंदरगाह का उपयोग किया है और यह ठीक काम करता है।
एपीआई
SL4A प्रत्येक समर्थित भाषा के लिए उनकी android
लाइब्रेरी का एक पोर्ट प्रदान करता है। पुस्तकालय एक Android
ऑब्जेक्ट के माध्यम से अंतर्निहित Android API को एक इंटरफ़ेस प्रदान करता है।
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 का उपयोग कर सकते हैं। जब आप पायथन से वेबव्यू का उपयोग करते हैं, तो आप वेबव्यू और इसे उत्पन्न करने वाली पायथन प्रक्रिया के बीच संदेशों को आगे और पीछे भेज सकते हैं। यूआई नेटिव नहीं होगा, लेकिन यह अभी भी एक अच्छा विकल्प है।
- देशी Android उपयोगकर्ता इंटरफ़ेस के लिए कुछ समर्थन है, लेकिन मैं नहीं हूं सुनिश्चित करें कि यह कितनी अच्छी तरह काम करता है; मैंने अभी कभी इसका इस्तेमाल नहीं किया है।
आप विकल्पों को मिला सकते हैं, जिससे आपके पास मुख्य इंटरफ़ेस के लिए एक वेबव्यू हो सकता है, और फिर भी मूल संवादों का उपयोग कर सकते हैं।
क्यूपायथन
QPython नाम का एक तृतीय पक्ष प्रोजेक्ट है। यह SL4A पर बनाता है, और कुछ अन्य उपयोगी सामान में फेंकता है।
QPython आपको अपने इंस्टॉलेशन को प्रबंधित करने के लिए एक अच्छा UI देता है, और इसमें एक छोटा, टचस्क्रीन कोड एडिटर, एक पायथन शेल और पैकेज प्रबंधन के लिए एक PIP शेल शामिल है। उनके पास एक पायथन 3 पोर्ट भी है। दोनों वर्जन प्ले स्टोर से फ्री में उपलब्ध हैं। QPython Kivy सहित Android प्रोजेक्ट्स पर Python के एक समूह से पुस्तकालयों को भी बंडल करता है, इसलिए यह केवल SL4A नहीं है।
ध्यान दें कि QPython अभी भी SL4A का अपना कांटा विकसित करता है (हालांकि, ईमानदार होने के लिए बहुत कुछ नहीं)। मुख्य SL4A प्रोजेक्ट अपने आप में काफी हद तक मृत है।
उपयोगी कड़ियां
- SL4A प्रोजेक्ट (अब GitHub पर): https://github.com/damonkohler/sl4a
- SL4A पायथन 3 पोर्ट: https://code.google.com/p/ एंड्रॉइड के लिए अजगर/विकी/पायथन3
- QPython प्रोजेक्ट: http://qpython.com
- SL4A सीखें (ट्यूटोरियल पॉइंट): https://www.tutorialspoint.com/sl4a/index.htm ए>
एक Python प्रेमी और Android प्रोग्रामर के रूप में, मुझे यह कहते हुए दुख हो रहा है कि ऐसा नहीं है जाने का एक अच्छा तरीका। दो समस्याएं हैं:
एक समस्या यह है कि एंड्रॉइड डेवलपमेंट टूल्स के लिए प्रोग्रामिंग भाषा के अलावा भी बहुत कुछ है। बहुत सारे Android ग्राफ़िक्स में HTML के समान, डिस्प्ले को कॉन्फ़िगर करने के लिए XML फ़ाइलें शामिल होती हैं। अंतर्निहित जावा ऑब्जेक्ट इस एक्सएमएल लेआउट के साथ एकीकृत हैं, और तर्क से बिटमैप तक जाने के लिए अपना कोड लिखने से कहीं अधिक आसान है।
दूसरी समस्या यह है कि G1 (और शायद निकट भविष्य के लिए अन्य Android डिवाइस) इतने तेज़ नहीं हैं। 200 मेगाहर्ट्ज का प्रोसेसर और रैम बहुत सीमित है। जावा में भी, यदि आप अपने ऐप को पूरी तरह से सुचारू बनाना चाहते हैं, तो आपको पुनर्लेखन-से-बचने-अधिक-वस्तु-निर्माण की एक अच्छी मात्रा में काम करना होगा। मोबाइल उपकरणों पर अभी भी कुछ समय के लिए पायथन बहुत धीमा होने वाला है।
क्यूपायथन
मैं QPython ऐप का उपयोग करता हूं। यह मुफ़्त है और इसमें एक कोड संपादक, एक इंटरेक्टिव दुभाषिया और एक पैकेज मैनेजर शामिल है, जो आपको सीधे अपने डिवाइस पर पायथन प्रोग्राम बनाने और निष्पादित करने की अनुमति देता है।
SL4A (जिसका उल्लेख स्वयं अन्य उत्तरों में पहले ही किया जा चुका है) का उपयोग करके आप चला सकते हैं a> एक पूर्ण विकसित web2py उदाहरण (अन्य पायथन वेब फ्रेमवर्क भी संभावित उम्मीदवार हैं)। SL4A आपको मूल UI घटक (बटन, स्क्रॉल बार, और इसी तरह) करने की अनुमति नहीं देता है, लेकिन यह वेबव्यू. एक वेबव्यू मूल रूप से एक निश्चित पते पर इंगित एक धारीदार वेब ब्राउज़र से ज्यादा कुछ नहीं है। मेरा मानना है कि मूल जीमेल ऐप नियमित विजेट मार्ग पर जाने के बजाय वेबव्यू का उपयोग करता है।
इस मार्ग में कुछ दिलचस्प विशेषताएं होंगी:
- अधिकांश पायथन वेब ढांचे के मामले में, आप वास्तव में एंड्रॉइड डिवाइस या एंड्रॉइड एमुलेटर का उपयोग किए बिना विकसित और परीक्षण कर सकते हैं।
- आप फोन के लिए जो भी पायथन कोड लिखते हैं, उसे सार्वजनिक वेबसर्वर पर बहुत कम (यदि कोई हो) संशोधन के साथ रखा जा सकता है।
- आप वहां मौजूद सभी पागल वेब सामग्री का लाभ उठा सकते हैं: क्वेरी, HTML5, CSS3, आदि।
टर्मक्स
आप टर्मक्स ऐप का उपयोग कर सकते हैं, जो एक पॉज़िक्स प्रदान करता है Android के लिए पर्यावरण, पायथन स्थापित करने के लिए।
ध्यान दें कि apt install python
टर्मक्स पर Python3 स्थापित करेगा। Python2 के लिए, आपको apt install python2
का उपयोग करना होगा।
- कुछ डेमो: https://www.youtube.com/watch?v=fqqsl72mASE
- GitHub प्रोजेक्ट: https://github.com/termux
पायथन for android साइट से:
एंड्रॉइड के लिए पायथन एक प्रोजेक्ट है जिसमें आप अपने इच्छित मॉड्यूल सहित अपना खुद का पायथन वितरण बनाना चाहते हैं, और एक एपीके बनाना चाहते हैं जिसमें पायथन, libs, और आपका एप्लिकेशन शामिल है।
आप sl4a का उपयोग करके अपना पायथन कोड चला सकते हैं। sl4a पायथन का समर्थन करता है, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, और शेल स्क्रिप्ट।
आप sl4a पायथन उदाहरण सीख सकते हैं।
एक और प्रयास: https://code.google.com/p/android-python27/
यह सीधे आपके ऐप एपीके में पायथन इंटरप्रेटर को एम्बेड करता है।
आधिकारिक पायथन वेबसाइट में सूचीबद्ध कुछ टूल यहां दिए गए हैं
Playstore में QPython3 नाम का एक ऐप है, जिसका उपयोग अजगर स्क्रिप्ट को संपादित करने और चलाने दोनों के लिए किया जा सकता है।
टर्मक्स नामक एक अन्य ऐप जिसमें आप कमांड का उपयोग करके अजगर स्थापित कर सकते हैं
pkg install python
यदि आप ऐप्स विकसित करना चाहते हैं, तो Python Android Scripting Layer (< मजबूत>एसएल4ए)।
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.
आप Android के लिए PySide भी देख सकते हैं, जो वास्तव में Qt के लिए Python बाइंडिंग है। 4.
PyMob नाम का एक प्लेटफॉर्म है जहां ऐप्स को पूरी तरह से पायथन में लिखा जा सकता है और कंपाइलर टूल-फ्लो (पायमोब) उन्हें विभिन्न प्लेटफॉर्म के लिए मूल स्रोत कोड में परिवर्तित करता है।
python-for-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.
चकोपी आज़माएं Android के लिए एक पायथन एसडीके
Anddd... बीवेयर
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.
चाकोपी
चकोपी एंड्रॉइड स्टूडियो के ग्रैडल-आधारित बिल्ड सिस्टम के लिए एक प्लगइन है। यह मानक Android विकास टूल के साथ करीबी एकीकरण पर केंद्रित है।
यह Java from Python या Python from Java, जो डेवलपर को अपने ऐप के प्रत्येक घटक के लिए जो भी भाषा सबसे अच्छी हो उसका उपयोग करने की अनुमति देता है।
यह स्वचालित रूप से PyPI पैकेज डाउनलोड कर सकता है और उन्हें चयनित सहित एक ऐप में बना सकता है। देशी पैकेज जैसे NumPy.
यह मूल उपयोगकर्ता इंटरफ़ेस टूलकिट (उदाहरण शुद्ध-पायथन गतिविधि)।
यह एक व्यावसायिक उत्पाद है, लेकिन यह ओपन-सोर्स उपयोग के लिए मुफ़्त है और हमेशा ऐसा ही रहेगा।
(मैं इस उत्पाद का निर्माता हूं।)
आप QPython का उपयोग कर सकते हैं:
इसमें एक पायथन कंसोल, संपादक, साथ ही पैकेज प्रबंधन / इंस्टालर हैं
यह एक ओपन सोर्स प्रोजेक्ट है जिसमें पायथन 2 और पायथन 3 दोनों कार्यान्वयन हैं। आप स्रोत और Android .apk फ़ाइलों को सीधे github से डाउनलोड कर सकते हैं।
QPython 2: https://github.com/qpython-android/qpython/releases
QPython 3: https://github.com/qpython-android/qpython3/releases
एक और विकल्प लगता है pyqtdeploy जो डॉक्स का हवाला देते हुए है:
एक उपकरण जो, Qt के साथ प्रदान किए गए अन्य उपकरणों के संयोजन के साथ, Python v2.7 या Python v3.3 या बाद के संस्करण के साथ लिखे गए PyQt4 और PyQt5 अनुप्रयोगों की तैनाती को सक्षम बनाता है। यह डेस्कटॉप प्लेटफॉर्म (लिनक्स, विंडोज और ओएस एक्स) और मोबाइल प्लेटफॉर्म (आईओएस और एंड्रॉइड) पर तैनाती का समर्थन करता है।
के अनुसार PyQt5 एप्लिकेशन को pyqtdeploy और Qt5 के माध्यम से Android पर डिप्लॉय करना यह सक्रिय रूप से विकसित है, हालांकि एंड्रॉइड के लिए सभी आवश्यक पुस्तकालयों को क्रॉस-कंपाइल करने के तरीके पर काम करने वाले एंड्रॉइड ऐप या ट्यूटोरियल के उदाहरण खोजना मुश्किल है। हालांकि यह ध्यान में रखना एक दिलचस्प परियोजना है!
एक अन्य विकल्प यदि आप 3.4.2 या नए (इस लेखन के रूप में 3.9.6) की तलाश कर रहे हैं, तो यह GitHub पर संग्रह है।
Python3-Android 3.4.2 या Python3-Android 3.9.6
मेरा मानना है कि मूल संग्रह Python 3.4.2, नवीनतम GRRedwings शाखा समर्थन 3.9.6 और NDK के 22b संस्करण का समर्थन करता है। पुरानी शाखाएं अन्य संस्करणों का समर्थन करती हैं, लेकिन डॉकटर के साथ संकलित करना उतना आसान नहीं है।
पुराने संस्करण में आप केवल संग्रह को क्लोन करते हैं, मेक चलाते हैं और आपको .so या .a . मिलता है
नए संस्करण रीडमी का अनुसरण करते हैं, लेकिन यह लगातार निर्माण के लिए डॉकर का उपयोग करता है।
मैं वर्तमान में इसका उपयोग एंड्रॉइड उपकरणों पर कच्चे पायथन को चलाने के लिए करता हूं। बिल्ड फ़ाइलों में कुछ संशोधनों के साथ आप x86 और armeabi 64 बिट भी बना सकते हैं
enaml-native देखें जो प्रतिक्रिया-मूल अवधारणा लेता है और इसे पायथन पर लागू करता है।
यह उपयोगकर्ताओं को देशी एंड्रॉइड विजेट के साथ ऐप बनाने देता है और पायथन से एंड्रॉइड और जावा पुस्तकालयों का उपयोग करने के लिए एपीआई प्रदान करता है।
यह एंड्रॉइड-स्टूडियो के साथ भी एकीकृत होता है और कोड रीलोडिंग और रिमोट डिबगिंग जैसी प्रतिक्रिया की कुछ अच्छी देव सुविधाओं को साझा करता है।
बीवेयर पर एक नज़र डालें। यह काफी बढ़ गया है। इसे पीएसएफ (पायथन सॉफ्टवेयर फाउंडेशन) एजुकेशन ग्रांट से सम्मानित किया गया है।
बीवेयर का उद्देश्य एंड्रॉइड सहित सभी समर्थित ऑपरेटिंग सिस्टम के लिए पायथन के साथ देशी ऐप बनाने में सक्षम होना है।
आधिकारिक वेबसाइट: बीवेयर
जीथब रेपो: https://github.com/beeware
फिलहाल नहीं और आप भाग्यशाली होंगे कि ज्योथन को जल्द ही काम मिल जाए। यदि आप अभी अपना विकास शुरू करने की योजना बना रहे हैं तो बेहतर होगा कि आप अभी जावा से चिपके रहें।
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।