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

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

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

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

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

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

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

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

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

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

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

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

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

      • libpython*.*.so

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

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

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

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

  • برای استخراج دارایی‌ها (assets) به سامانه فایل‌بندی کدی به برنامه‌تان اضافه کنید.

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

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

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