jython تحميل - هل هناك طريقة لتشغيل Python على Android؟



برنامج بايثون (21)

نحن نعمل على إصدار S60 وهذه المنصة لها واجهة برمجة تطبيقات بايثون.

ومع ذلك ، لا يوجد أي شيء رسمي حول بايثون على Android ، ولكن بما أن Jython موجود ، هل هناك طريقة للسماح للأفاعي والروبوت بالعمل معًا؟


Answers

من github.com/kivy/python-for-android :

Python for android هو مشروع لإنشاء توزيع Python الخاص بك بما في ذلك الوحدات التي تريدها ، وإنشاء ملف apk بما في ذلك python ، libs ، والتطبيق الخاص بك.



Kivy

أريد نشر هذا التمديد كإضافة لما أجبنيJohnMudd بالفعل ( ولكن يرجى أن تتحملني حيث أن اللغة الإنجليزية ليست لغتي الأولى )

لقد مرت سنوات منذ ذلك الحين ، وتطورت Kivy إلى v1.9-dev. أكبر نقطة بيع في Kivy ، في رأيي ، هي توافقها عبر المنصة. يمكنك إجراء التعليمات البرمجية والاختبار ضمن البيئة المحلية (Windows / * nix وما إلى ذلك) ، كما يمكنك إنشاء تطبيق وتصحيحه وتعبئته ليعمل على أجهزة Android / iOS / Mac / Windows.

مع لغة KV الخاصة Kivy ، يمكنك التعليمة البرمجية وبناء واجهة المستخدم الرسومية بسهولة (انها فقط مثل Java XML ، ولكن بدلا من TextView ، الخ ، KV لديها ui.widgets الخاصة بها ui.widgets مماثلة) ، والتي هي في رأيي من السهل جدا ل اعتماده.

حاليًا ، Buildozer و python-for-android من الأدوات الأكثر موصى بها لإنشاء / حزم تطبيقاتك. لقد جربتهم على حد سواء ويمكنني القول بثبات إنهم يصنعون تطبيقات أندرويد مع بايثون نسيمًا. يجب أن لا يواجه المستخدمون الذين يشعرون بالراحة في موجه الأوامر / الطرفية / الأوامر أي مشاكل في استخدامها ، كما أن أدلةهم موثقة جيدًا أيضًا.

علاوة على ذلك ، يعتبر نظام iOS نقطة بيع كبيرة أخرى لـ Kivy ، بشرط أن يمكنك استخدام نفس قاعدة الكود مع بعض التغييرات المطلوبة لتشغيل الاختبار على جهاز iOS الخاص بك ، عبر kivy-ios Homebrew ، على الرغم من أن Xcode مطلوب للبناء قبل التشغيل الأجهزة الخاصة بهم (AFAIK محاكاة iOS في Xcode حالياً لا يعمل من أجل بنية هندسة x 86). هناك أيضًا بعض مشكلات التبعية التي يجب تجميعها يدويًا وتجميعها يدويًا في Xcode للحصول على بنية ناجحة ، ولكن لن يكون من الصعب جدًا حلها كما أن الأشخاص في Kivy Google Group مفيدون جدًا أيضًا.

مع كل ما يقال ، يجب على المستخدمين الذين لديهم معرفة بيثون جيدة ألا يواجهوا مشكلة في انتقاء الأساسيات في الأسابيع (إن لم يكن أيامًا) لبناء بعض التطبيقات البسيطة.

وتجدر الإشارة أيضًا إلى أنه يمكنك تجميع (إنشاء وصفات) لوحدات بايثون الخاصة بك مع البنية بحيث يمكن للمستخدمين الاستفادة من العديد من المكتبات الموجودة التي تقدمها بيثون ، مثل Requests و PIL إلخ ، من خلال دعم تمديد Kivy .

في بعض الأحيان يتطلب التطبيق الخاص بك وظيفة خارج نطاق ما يمكن أن تقدمه Kivy. في هذه الحالات ، من الضروري اللجوء إلى مكتبات البرامج الخارجية. نظرًا لثراء نظام بيثون البيئي ، هناك بالفعل الكثير من مكتبات البرامج التي يمكنك استيرادها واستخدامها على الفور.

وأخيرًا وليس آخرًا ، إذا كنت ستستخدم Kivy في مشاريع أكثر جدية / تجارية ، فقد تجد وحدات حالية غير مرضية. هناك بعض الحلول العملية على الرغم من ذلك ، مع "العمل في التقدم" من pyjnius لالروبوت ، و pyobjus . يمكن للمستخدمين الآن الوصول إلى فئات Java / Objective-C من خلال هذه الوحدات للتحكم في بعض واجهات برمجة التطبيقات الأصلية.

تجربتي في Kivy هي أنها ستجد أفضل ما يناسبها مع مبرمجين Python المحنكين وبعض المبرمجين الجادين الذين يرغبون في تطوير سريع أو صيانة بسيطة لقاعدة التعليمات البرمجية. يعمل بشكل جيد على منصات متعددة ، وإن لم يكن حقا مع الشعور الأصلي .

آمل أن يجد بعض المبرمجين في بيثون هذه المعلومات مفيدة وأن يبدأوا في إلقاء نظرة على Kivy. يمكن أن تتحسن فقط (مع المزيد من الدعم وحصول المكتبات / الوحدات) إذا كان هناك اهتمام كبير من المجتمع.

سكرتير خاص ليس لدي أي علاقة مع Kivy على الإطلاق ، أنا مجرد مبرمج الذي يحب حقا فكرة جلب متعة الترميز بايثون لتطوير المحمول / عبر منصة.


لقد نشرت تعليمات ورسالة للترجمة المتقاطعة Python 2.7.2 لنظام Android ، يمكنك الحصول عليها في مدونتي هنا: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

تحرير: لقد فتحت Ignifuga مصدر ، محرك اللعبة 2D ، انها تستند بيثون / SDL وعبر تجميعات لالروبوت. حتى إذا كنت لا تستخدمها للألعاب ، قد تحصل على أفكار مفيدة من التعليمات البرمجية ومنشئ الأداة المساعدة (المسمى Schafer ، بعد Tim ... تعرف من).


هناك عدة طرق لاستخدام Python على Android.

BeeWare عبارة عن مجموعة من الأدوات لبناء واجهات المستخدم الأصلية

Chaquopy هو مكون إضافي لنظام البناء القائم على Gradle المستند إلى Android Studio.

Kivy عبارة عن مجموعة أدوات واجهة المستخدم المستندة إلى OpenGL عبر النظام الأساسي.

pyqtdeploy هو أداة لنشر تطبيقات PyQt.

QPython هو مشغل البرامج النصية على الجهاز وبيئة التطوير.

SL4A (Scripting Layer for Android) ، التي تم تسميتها أصلاً ASE (Android Scripting Environment) ، هي عبارة عن مجموعة من "الواجهات" التي تعرض مجموعة فرعية مبسطة جدًا من واجهة برمجة تطبيقات Android.

PySide (ملزمة Python لمجموعة أدوات Qt) على بعض الدعم المبدئي لنظام Android.

على الرغم من أن لغة البرمجة الأساسية في Android هي Java ، فلا يوجد منفذ معروف من Jython إلى النظام الأساسي. يتم تحقيق دعم Android في BeeWare باستخدام VOC ، وهي أداة تجمع شفرة Python المصدر إلى ملفات فئة Java. يسمح هذا بتنفيذ Python كبرنامج ثنائي محلي على JVM. https://wiki.python.org/moin/Android


باعتباري من محبي Python ومبرمج أندرويد ، أشعر بالحزن لأن أقول إن هذه ليست طريقة جيدة للذهاب. هناك مشكلتان.

تتمثل إحدى المشكلات في أن هناك أكثر بكثير من مجرد لغة برمجة لأدوات تطوير Android. تتضمن الكثير من رسومات Android ملفات XML لتهيئة العرض ، على غرار HTML. تتكامل كائنات جافا المدمجة بالفعل مع تخطيط XML هذا ، وهو أسهل بكثير من كتابة التعليمات البرمجية الخاصة بك للانتقال من المنطق إلى الصورة النقطية.

المشكلة الأخرى هي أن G1 (وربما أجهزة Android الأخرى في المستقبل القريب) ليست بهذه السرعة. 200 ميغاهرتز ، وذاكرة الوصول العشوائي محدودة للغاية. حتى في Java ، عليك القيام بكمية معقولة من إعادة الكتابة إلى تجنب المزيد من الكائنات ، إذا كنت ترغب في جعل تطبيقك سلسًا تمامًا. ستكون بايثون بطيئة جدًا لبعض الوقت على أجهزة الجوال.


خيار آخر إذا كنت تبحث عن 3.4.2 أو 3.5.1 هو هذا الأرشيف على جيثب.

Python3-Android 3.4.2 أو Python3-Android 3.5.1

وهي تدعم حاليا Python 3.4.2 أو 3.5.1 والإصدار 10d من NDK. ويمكنه أيضًا دعم 3.3 و 9 c و 11 c و 12

من الجيد أن تقوم بتنزيلها ببساطة ، قم بإجراء عملية التشغيل وتحصل على .so أو .a

أنا حاليا استخدام هذا لتشغيل Python الخام على أجهزة الروبوت. مع بضعة تعديلات على ملفات البناء يمكنك أيضا جعل x86 و armibbi 64 بت



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

مثال عن طريق مات كاتس عبر 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)

هناك تطبيق يسمى QPython3 في playstore والذي يمكن استخدامه لكلا من تحرير وتشغيل python script.

رابط Playstore

تطبيق آخر يسمى Termux حيث يمكنك تثبيت python باستخدام الأمر

pkg install python

رابط Playstore


SL4A

SL4A ما تريد. يمكنك تثبيته بسهولة على جهازك مباشرة من موقعه ، ولا تحتاج إلى الجذر.

وهو يدعم مجموعة من اللغات. بايثون هي الأكثر نضجا. افتراضيا ، فإنه يستخدم Python 2.6 ، ولكن هناك منفذ 3.2 يمكنك استخدامها بدلا من ذلك. لقد استخدمت هذا المنفذ لجميع أنواع الأشياء على Galaxy S2 وعملت بشكل جيد.

API

يوفر SL4A منفذًا لمكتبة android الخاصة بهم لكل لغة مدعومة. توفر المكتبة واجهة لواجهة برمجة تطبيقات 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');

واجهات المستخدم

بالنسبة لواجهة المستخدم ، لديك ثلاثة خيارات:

  • يمكنك بسهولة استخدام الحوارات العامة والأصلية والقوائم من خلال واجهة برمجة التطبيقات. هذا جيد لحوارات التأكيد وغيرها من مدخلات المستخدم الأساسية.
  • يمكنك أيضًا فتح عرض الويب من داخل نص برمجي Python ، ثم استخدام HTML5 لواجهة المستخدم. عند استخدام webviews من بايثون ، يمكنك تمرير الرسائل ذهابًا وإيابًا ، بين عرض الويب وعملية بايثون التي أنتجته. لن تكون واجهة المستخدم مصلية ، ولكنها لا تزال خيارًا جيدًا.
  • هناك بعض الدعم لواجهات مستخدم Android الأصلية ، لكنني لست متأكدًا من مدى نجاحها ؛ أنا لم استخدمها من قبل

يمكنك مزج الخيارات ، بحيث يمكنك الحصول على عرض ويب للواجهة الرئيسية ، وما زلت تستخدم الحوارات الأصلية.

QPython

هناك مشروع طرف ثالث يدعى http://qpython.com/ . وهو يعتمد على SL4A ، ويلقي في بعض الأشياء المفيدة الأخرى.

يمنحك QPython واجهة مستخدم أجمل لإدارة التثبيت ، ويتضمن محرر رمز صغير يعمل باللمس ، وقذيفة Python ، وقذيفة PIP لإدارة الحزم. لديهم أيضا منفذ بايثون 3. كلا الإصدارين متاحان من متجر Play ، مجانًا. تتولى QPython أيضًا تجميع المكتبات من مجموعة من Python في مشروعات Android ، بما في ذلك Kivy ، لذلك فهي ليست SL4A فقط.

لاحظ أن QPython لا يزال يطور شوكته من SL4A (على الرغم من ذلك ، ليس كثيرا أن نكون صادقين). مشروع SL4A الرئيسي نفسه ميت كثيرًا.


يمكنك تشغيل شفرة Python باستخدام sl4a . يدعم sl4a Python و Perl و JRuby و Lua و BeanShell و JavaScript و Tcl و script.

يمكنك أن تتعلم الأمثلة على b4thon.


هناك أيضًا SL4A مكتوبة بشكل كبير بواسطة موظفي Google.


هناك أيضًا مشروع Android Scripting Environment (ASE / SL4A) الجديد. يبدو رائعًا ، ولديه بعض التكامل مع مكونات Android الأصلية.

ملاحظة: لم تعد تحت "التطوير النشط" ، ولكن بعض الشوك قد تكون.


هناك خيار واحد آخر يبدو أنه pyqtdeploy والذي يشير إلى المستندات هو:

أداة ، بالاقتران مع الأدوات الأخرى المتوفرة مع Qt ، تمكن من نشر تطبيقات PyQt4 و PyQt5 المكتوبة مع Python v2.7 أو Python v3.3 أو أحدث. وهو يدعم النشر في المنصات المكتبية (Linux و Windows و OS X) وعلى المنصات المحمولة (iOS و Android).

وفقًا لتطبيق Deploying PyQt5 على Android عبر pyqtdeploy و Qt5 يتم تطويره بشكل نشط ، على الرغم من صعوبة العثور على أمثلة لتطبيقات Android العاملة أو برنامج تعليمي حول كيفية تجميع جميع المكتبات المطلوبة إلى Android. إنه مشروع مثير للاهتمام أن نأخذ في الاعتبار رغم ذلك!



باستخدام SL4A (الذي سبق ذكره بنفسه في إجابات أخرى) ، يمكنك run نسخة كاملة من web2py (من المحتمل أن تكون أطر عمل python web الأخرى مرشحة أيضًا). لا يسمح لك SL4A بتنفيذ مكونات واجهة المستخدم الأصلية (الأزرار وأشرطة التمرير وما شابه) ، ولكنه يدعم WebViews . لا يعد WebView أكثر من مجرد متصفح ويب مقلوب موجه إلى عنوان ثابت. أعتقد أن تطبيق Gmail الأصلي يستخدم WebView بدلاً من الانتقال إلى مسار الأداة العادي.

سيكون لهذا المسار بعض الميزات المثيرة للاهتمام:

  • في حالة معظم أطر عمل python ، يمكنك بالفعل التطوير والاختبار بدون استخدام جهاز Android أو محاكي android.
  • ومهما كان رمز بايثون الذي انتهى بك كتابته للهاتف ، يمكن وضعه على خادم ويب عام مع القليل من التعديلات (إن وجدت).
  • يمكنك الاستفادة من جميع عناصر الويب المجنونة هناك: query و HTML5 و CSS3 وما إلى ذلك.

لم أر هذا المنشور هنا ، ولكن يمكنك القيام به مع Pyside و Qt الآن أن Qt يعمل على Android بفضل Necessitas.

يبدو الأمر وكأنه مجرد كسلات في هذه اللحظة ولكن يمكن أن يكون طريقا قابلا للتطبيق في نهاية المطاف ...

http://qt-project.org/wiki/PySide_for_Android_guide


"إن Pygame Subset for Android عبارة عن منفذ لمجموعة فرعية من وظائف Pygame إلى نظام Android الأساسي. الهدف من المشروع هو السماح بإنشاء ألعاب خاصة بنظام Android ، وتسهيل نقل الألعاب من المنصات الشبيهة بالكمبيوتر إلى Android ".

تتضمن الأمثلة لعبة كاملة مجمعة في ملف APK ، وهو أمر مثير للاهتمام.


ألقِ نظرة على BeeWare . في لحظة الإجابة على هذا السؤال لا يزال في مرحلة مبكرة من التطور. الهدف هو أن تكون قادرًا على إنشاء تطبيقات محلية مع Python لجميع أنظمة التشغيل المدعومة ، بما في ذلك Android.


من الوثائق :

تحمل التعبيرات الشرطية (التي يطلق عليها أحيانًا "المشغل الثلاثي") أدنى أولوية لجميع عمليات بايثون.

التعبير x if C else y أولاً بتقييم الحالة C ( وليس x )؛ إذا كان C صحيحًا ، يتم تقييم x ويتم إرجاع قيمته ؛ خلاف ذلك ، يتم تقييم y ويتم إرجاع قيمته.

انظر PEP 308 لمزيد من التفاصيل حول التعبيرات الشرطية.

جديد منذ الإصدار 2.5.





android python jython ase android-scripting