6. Sử dụng Python trên Android¶
Python trên Android không giống Python trên nền tảng máy tính để bàn. Trên nền tảng máy tính để bàn, Python thường được cài đặt làm tài nguyên hệ thống có thể được sử dụng bởi bất kỳ người dùng máy tính đó. Sau đó, người dùng tương tác với Python bằng cách chạy tệp thực thi python và nhập lệnh tại dấu nhắc tương tác hoặc bằng cách chạy tập lệnh Python.
Trên Android, không có khái niệm cài đặt làm tài nguyên hệ thống. Đơn vị phân phối phần mềm duy nhất là "ứng dụng". Cũng không có bảng điều khiển nào nơi bạn có thể chạy tệp thực thi python hoặc tương tác với Python REPL.
Do đó, cách duy nhất bạn có thể sử dụng Python trên Android là ở chế độ nhúng - nghĩa là bằng cách viết một ứng dụng Android gốc, nhúng trình thông dịch Python bằng libpython và gọi mã Python bằng Python embedding API. Sau đó, trình thông dịch Python đầy đủ, thư viện chuẩn và tất cả mã Python của bạn sẽ được đóng gói vào ứng dụng của bạn để sử dụng riêng.
Thư viện chuẩn Python có một số thiếu sót và hạn chế đáng chú ý trên Android. Xem API availability guide để biết chi tiết.
6.1. Thêm Python vào ứng dụng Android¶
Hầu hết các nhà phát triển ứng dụng nên sử dụng một trong những công cụ sau để mang lại trải nghiệm dễ dàng hơn nhiều:
Nếu bạn chắc chắn muốn thực hiện tất cả những điều này một cách thủ công, hãy đọc tiếp. Bạn có thể sử dụng testbed app làm hướng dẫn; mỗi bước bên dưới chứa một liên kết đến tệp có liên quan.
Đầu tiên, hãy mua bản dựng Python cho Android:
Cách dễ nhất là tải xuống bản phát hành Android từ python.org. Thư mục
prefixđược đề cập bên dưới nằm ở cấp cao nhất của gói.Hoặc nếu bạn muốn tự mình build thì hãy làm theo hướng dẫn trong Android/README.md. Thư mục
prefixsẽ được tạo trongcross-build/HOST.
Thêm mã vào tệp build.gradle để sao chép các mục sau vào dự án của bạn. Tất cả ngoại trừ mã Python của riêng bạn đều có thể được sao chép từ
prefix/lib:Trong thư viện JNI của bạn:
libpython*.*.solib*_python.so(thư viện bên ngoài như OpenSSL)
Trong tài sản của bạn:
python*.*(thư viện chuẩn Python)python*.*/site-packages(mã Python của riêng bạn)
Thêm mã vào ứng dụng của bạn vào extract the assets to the filesystem.
Thêm mã vào ứng dụng của bạn vào start Python in embedded mode. Đây sẽ cần phải là mã C được gọi qua JNI.
6.2. Xây dựng gói Python cho Android¶
Các gói Python có thể được xây dựng cho Android dưới dạng bánh xe và được phát hành trên PyPI. Công cụ được đề xuất để thực hiện việc này là cibuildwheel, công cụ này tự động hóa tất cả các chi tiết về thiết lập môi trường biên dịch chéo, xây dựng bánh xe và thử nghiệm nó trên trình mô phỏng.