6. Χρήση της Python σε Android¶
Η Python σε Android διαφέρει από την Python σε πλατφόρμες επιτραπέζιων υπολογιστών. Σε μια πλατφόρμα επιτραπέζιων υπολογιστών, η Python εγκαθίσταται γενικά ως πόρος συστήματος που μπορεί να χρησιμοποιηθεί από οποιονδήποτε χρήστη αυτού του υπολογιστή. Οι χρήστες στη συνέχεια αλληλεπιδρούν με την Python εκτελώντας ένα εκτελέσιμο python και εισάγοντας εντολές σε μια διαδραστική γραμμή εντολών ή εκτελώντας ένα Python script.
Στο Android, δεν υπάρχει η έννοια της εγκατάστασης ως πόρου συστήματος. Η μόνη μονάδα διανομής λογισμικού είναι μια «εφαρμογή». Δεν υπάρχει κονσόλα όπου θα μπορούσατε να εκτελέσετε ένα εκτελέσιμο αρχείο python, ή να αλληλεπιδράσετε με ένα Python REPL.
Ως αποτέλεσμα, ο μόνος τρόπος για να χρησιμοποιήσετε την Python σε Android είναι σε ενσωματωμένη λειτουργία – δηλαδή, γράφοντας μια εγγενή εφαρμογή Android, ενσωματώνοντας έναν διερμηνέα Python χρησιμοποιώντας το libpython, και καλώντας κώδικα Python χρησιμοποιώντας το Python embedding API. Ο πλήρης διερμηνέας Python, η τυπική βιβλιοθήκη, και όλος ο κώδικας Python συσκευάζονται στη συνέχεια στην εφαρμογή σας για δική της ιδιωτική χρήση.
Η τυπική βιβλιοθήκη της Python έχει κάποιες αξιοσημείωτες παραλείψεις και περιορισμούς στο Android. Δείτε τον API availability guide για λεπτομέρειες.
6.1. Προσθήκη της Python σε μια εφαρμογή Android¶
Η πλειονότητα των ατόμων που προγραμματίζουν εφαρμογές θα πρέπει να χρησιμοποιούν ένα από τα ακόλουθα εργαλεία, τα οποία παρέχουν ευκολότερη εμπειρία:
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 για Android:
Ο ευκολότερος τρόπος είναι να κατεβάσετε μια έκδοση Android από το python.org. Ο φάκελος
prefixπου αναφέρεται παρακάτω βρίσκεται στο ανώτατο επίπεδο του πακέτου.Or if you want to build it yourself, follow the instructions in Platforms/Android/README.md. The
prefixdirectory will be created undercross-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*.*.solib*_python.so(εξωτερικές βιβλιοθήκες όπως το OpenSSL)
Στα στοιχεία σας:
python*.*(η τυπική βιβλιοθήκη της Python)python*.*/site-packages(ο δικός σας Python κώδικας)
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. Δημιουργία ενός πακέτου Python για Android¶
Τα πακέτα Python μπορούν να δημιουργηθούν για Android ως wheels και να κυκλοφορήσουν στο PyPI. Το προτεινόμενο εργαλείο για αυτό είναι το cibuildwheel, το οποίο αυτοματοποιεί όλες τις λεπτομέρειες του στησίματος ενός περιβάλλοντος διασταυρούμενης μεταγλώττισης, της δημιουργίας του wheel και της δοκιμής του σε έναν εξομοιωτή.