6. استفاده از پایتون در اندروید

پایتون روی اندروید با پایتون روی پلتفرم‌های دسکتاپ متفاوت است. در یک پلتفرم دسکتاپ، پایتون معمولاً به‌عنوان یک منبع سیستمی نصب می‌شود که هر کاربر آن رایانه می‌تواند از آن استفاده کند. سپس کاربران برای تعامل با پایتون، پرونده اجرایی python را اجرا کرده و دستورها را در یک اعلان تعاملی وارد می‌کنند، یا یک اسکریپت پایتون را اجرا می‌کنند.

در اندروید، مفهوم نصب به‌عنوان یک منبع سیستمی وجود ندارد. تنها واحد توزیع نرم‌افزار، «اپلیکیشن» است. همچنین هیچ کنسولی وجود ندارد که بتوانید در آن یک پرونده اجرایی python را اجرا کنید یا با REPL پایتون تعامل داشته باشید.

در نتیجه، تنها راهی که می‌توانید روی اندروید از پایتون استفاده کنید، حالت تعبیه‌شده است – یعنی با نوشتن یک برنامه‌ی بومی اندروید، تعبیه کردن یک مفسر پایتون با استفاده از libpython و فراخوانی کد پایتون با استفاده از API تعبیه‌ی پایتون. سپس مفسر کامل پایتون، کتابخانه‌ی استاندارد و تمام کد پایتون شما درون برنامه‌تان بسته‌بندی می‌شوند تا برنامه آن‌ها را برای استفاده‌ی خصوصی خود به کار بگیرد.

کتابخانه استاندارد پایتون در اندروید دارای برخی موارد حذف‌شده و محدودیت‌های قابل توجه است. برای جزئیات، راهنمای دسترس‌پذیری API را ببینید.

6.1. افزودن پایتون به یک برنامه اندروید

اکثر توسعه‌دهندگان اپلیکیشن باید از یکی از ابزارهای زیر استفاده کنند که تجربه‌ای بسیار آسان‌تر فراهم می‌کند:

اگر مطمئن هستید که می‌خواهید همه‌ی این کارها را به‌صورت دستی انجام دهید، به خواندن ادامه دهید. می‌توانید از برنامه‌ی آزمایشگاهی به عنوان راهنما استفاده کنید؛ هر مرحله در ادامه شامل پیوندی به پرونده‌ی مربوطه است.

  • ابتدا، یک ساخت‌ از پایتون برای اندروید به دست آورید:

    • آسان‌ترین راه، دانلود یک نسخه اندرویدی از python.org است. پوشه prefix که در ادامه ذکر می‌شود، در سطح بالای بسته قرار دارد.

    • یا اگر می‌خواهید آن را خودتان بسازید، دستورالعمل‌های موجود در Platforms/Android/README.md را دنبال کنید. پوشه‌ی prefix در زیر cross-build/HOST ایجاد خواهد شد.

  • کد را به پرونده‌ی build.gradle خود اضافه کنید تا اقلام زیر در پروژه‌ی شما کپی شوند. همه‌ی موارد به جز کد پایتون خودتان را می‌توانید از prefix/lib کپی کنید:

    • در کتابخانه‌های JNI شما:

      • libpython*.*.so

      • lib*_python.so (کتابخانه‌های خارجی مانند OpenSSL)

    • در دارایی‌های (assets) شما:

      • python*.* (کتابخانه استاندارد پایتون)

      • python*.*/site-packages (کد پایتون خودتان)

  • کدی را به برنامه‌ی خود اضافه کنید تا دارایی‌ها را در سیستم‌پرونده استخراج کند.

  • کدی را به برنامه‌ی خود اضافه کنید تا پایتون را در حالت تعبیه‌شده راه‌اندازی کند. این کار نیازمند کدی به زبان C است که از طریق JNI فراخوانی شود.

6.2. ساخت بسته پایتون برای اندروید

بسته‌های پایتون را می‌توان برای اندروید به‌صورت چرخ (wheel) ساخت و در PyPI منتشر کرد. ابزار توصیه‌شده برای انجام این کار cibuildwheel است که تمام جزئیات راه‌اندازی محیط کامپایل متقاطع، ساختن چرخ و آزمون آن روی یک شبیه‌ساز را به‌صورت خودکار انجام می‌دهد.