0 ياسر مسكين نشر 4 يونيو أرسل تقرير نشر 4 يونيو السلام عليكم ورحمة الله تعالى وبركاته، بايثون في الأساس هي لغة برمجة مصممة للعمل على أنظمة التشغيل التقليدية مثل Windows وLinux وmacOS، وليس على الأجهزة المحمولة. ونظام الأندرويد يعتمد على Java وKotlin كلغات أساسية، ويستخدم آلة افتراضية خاصة تسمى ART (Android Runtime) لتشغيل التطبيقات. وهذا يعني أن كود Python لا يمكن تشغيله مباشرة على الأندرويد دون حلول وسطية. والحل يكمن في تغليف مفسر Python بالكامل داخل تطبيق الأندرويد، مما يعني أننا نقوم بتضمين نسخة كاملة من Python مع جميع المكتبات المطلوبة داخل ملف APK وهذا يشبه حمل حاسوب صغير داخل هاتفك لتشغيل كود Python، مما يفسر لماذا حجم التطبيقات الناتجة يكون كبيرا نسبيا عادة 20-50 ميجابايت حتى للتطبيقات البسيطة. يمكن استخدام Buildozer فهو أداة تلقائية تقوم بعدة مهام معقدة خلف الكواليس. أولا يجب القيام بتحميل Python-for-Android (P4A) وهو مشروع مخصص لتجميع Python ومكتباته للعمل على معمارية ARM المستخدمة في معظم هواتف الأندرويد ثم تقوم بتجميع جميع المكتبات المطلوبة من الكود المصدري، مما يعني تحويلها من كود C/C++ إلى ملفات قابلة للتنفيذ على الأندرويد بعدها تقوم بإنشاء wrapper بلغة Java يعمل كجسر بين نظام الأندرويد وكود Python الخاص بك ثم جمع كل هذه المكونات في ملف APK واحد قابل للتثبيت. بداية لتحضير البيئة ننفذ: pip install buildozer cython==0.29.19 ونقوم بتثبيت Cython هنا لأنه أداة تحويل كود Python إلى C، مما يسمح لنا بتشغيل أسرع وتوافق أفضل مع المكتبات المكتوبة بلغة C. والإصدار 0.29.19 محدد لأنه آخر إصدار مستقر تم اختباره مع Buildozer ولأن الإصدارات الأحدث قد تحتوي على تغييرات تكسر التوافق مع عملية البناء، ثم نثبت تبعيات النظام: sudo apt-get install -y python3-pip build-essential git python3 python3-dev ثم مكتبات الوسائط المتعددة: sudo apt-get install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev ثم مكتبات SDL (Simple DirectMedia Layer): sudo apt-get install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev ثم مكتبات النظام الأساسية: sudo apt-get install -y libffi-dev libffi6 zlib1g-dev libssl-dev openssl ولتهيئة المشروع buildozer.spec نقوم بتنفيذ الأمر: buildozer init هذا الأمر ينشئ ملف buildozer.spec وهو قلب عملية البناء. فهذا الملف يحتوي على جميع إعدادات المشروع التي تخبر Buildozer بكيفية بناء التطبيق وأهم الأقسام في buildozer.spec: [app] title = اسم التطبيق الذي سيظهر للمستخدم package.name = اسم الحزمة التقني (بدون مسافات أو أحرف خاصة) package.domain = org.example (عادة عكس اسم النطاق) source.dir = . (مجلد كود Python) version = 0.1 requirements = python3,kivy (المكتبات المطلوبة) ثم عملية البناء: buildozer -v android debug والخيار -v (verbose) يعرض تفاصيل العملية، وهو مهم للغاية لفهم أي أخطاء قد تحدث وأما كلمة debug تعني أن APK الناتج سيكون للاختبار وليس للنشر ومراحل البناء هي كالتالي: تحميل NDK وSDK: يحمل Android NDK (Native Development Kit) للتجميع وSDK لأدوات البناء تحميل Python-for-Android: يحمل P4A والذي يحتوي على Python مجمع خصيصا للأندرويد تجميع المكتبات: كل مكتبة في requirements تُجمّع منفصلة من الكود المصدري إنشاء البرنامج الرئيسي: ينشئ Java wrapper يستدعي كود Python تجميع APK: يجمع كل المكونات في ملف APK واحد اقتباس
0 Mustafa Suleiman نشر 4 يونيو أرسل تقرير نشر 4 يونيو بتاريخ 57 دقائق مضت قال محمد Mmm2: هل يوجد طريقة سهله من خلال CMD أسهل طريقة هي من خلال مكتبة BeeWare، ستحتاج إلى تثبيت التالي: pip install briefcase ثم تنفيذ الأمر التالي لإنشاء مشروع وسيقوم بسؤالك عن بيانات المشروع قم بإدخالها خطوة بخطوة: briefcase new ثم في مجلد src ستجد ملف باسم app.py ضع به الكود الخاص بك، ثم توجه لمسار مجلد المشروع الرئيسي وليس src عن طريق منفذ الأوامر، ثم نفذ الأوامر التالية: briefcase build android briefcase package android ستجد تفصيل هنا: https://docs.beeware.org/en/latest/tutorial/tutorial-1.html اقتباس
السؤال
محمد Mmm2
لدي ملف python واحد كيف احوله الى apk
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.