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

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

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

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

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

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

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

If you're sure you want to do all of this manually, read on. You can use the testbed app as a guide; each step below contains a link to the relevant file.

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

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

    • Or if you want to build it yourself, follow the instructions in Platforms/Android/README.md. The prefix directory will be created under cross-build/HOST.

  • Add code to your build.gradle file to copy the following items into your project. All except your own Python code can be copied from prefix/lib:

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

      • libpython*.*.so

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

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

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

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

  • Add code to your app to extract the assets to the filesystem.

  • Add code to your app to start Python in embedded mode. This will need to be C code called via JNI.

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

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