6. 안드로이드에서 파이썬 사용하기¶
안드로이드에서의 파이썬은 데스크톱 플랫폼에서의 파이썬과 다릅니다. 데스크톱 플랫폼에서 파이썬은 일반적으로 컴퓨터의 모든 사용자가 사용할 수 있는 시스템 리소스로 설치됩니다. 사용자는 그 후 python 실행 파일을 실행하고 대화형 프롬프트에 명령을 입력하거나 파이썬 스크립트를 실행하여 파이썬과 상호작용합니다.
안드로이드에서는 시스템 리소스로 설치한다는 개념이 없습니다. 소프트웨어 배포의 유일한 단위는 “앱”입니다. 또한 python 실행 파일을 실행하거나 파이썬 REPL과 상호작용할 수 있는 콘솔도 없습니다.
결과적으로 안드로이드에서 파이썬을 사용할 수 있는 유일한 방법은 임베디드 모드입니다. 즉, 네이티브 안드로이드 애플리케이션을 작성하고 libpython 을 사용하여 파이썬 인터프리터를 포함시킨 다음, Python embedding API 를 사용하여 파이썬 코드를 호출하는 방식입니다. 이렇게 하면 전체 파이썬 인터프리터와 표준 라이브러리, 그리고 모든 파이썬 코드가 앱에 포함되어 해당 앱 전용으로 사용됩니다.
파이썬 표준 라이브러리는 안드로이드에서 몇 가지 중요한 생략 및 제한 사항이 있습니다. 자세한 내용은 API 가용성 안내 를 참조하십시오.
6.1. 안드로이드 앱에 파이썬 추가하기¶
대부분의 앱 개발자는 훨씬 더 편리한 환경을 제공하는 다음 도구 중 하나를 사용하는 것이 좋습니다.
BeeWare 프로젝트의
Briefcase <https://briefcase.beeware.org>`__Kivy 프로젝트의
Buildozer <https://buildozer.readthedocs.io>`__Chaquopy <https://chaquo.com/chaquopy>`__pyqtdeploy <https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/>`__Termux <https://termux.dev/en/>`__
이 모든 과정을 수동으로 수행하고자 한다면 계속 읽어보십시오. 테스트베드 앱 을 안내서로 활용할 수 있으며, 아래의 각 단계에는 관련 파일에 대한 링크가 포함되어 있습니다.
먼저, 안드로이드용 파이썬 빌드를 확보하십시오:
가장 쉬운 방법은 python.org <https://www.python.org/downloads/android/>`__에서 안드로이드 릴리스를 다운로드하는 것입니다. 아래에 언급된 ``prefix` 디렉토리는 패키지의 최상위 수준에 위치합니다.
또는 직접 빌드하려는 경우 Android/README.md`의 지침을 따르십시오. ``prefix` 디렉토리는
cross-build/HOST아래에 생성됩니다.
다음 항목들을 프로젝트에 복사하기 위해 build.gradle 파일에 코드를 추가하십시오. 본인의 파이썬 코드를 제외한 모든 항목은
prefix/lib에서 복사할 수 있습니다.JNI 라이브러리 내에서:
libpython*.*.solib*_python.so(OpenSSL과 같은 외부 라이브러리)
에셋(assets) 내에서:
python*.*(파이썬 표준 라이브러리)python*.*/site-packages(본인의 파이썬 코드)
앱에 코드를 추가하여 에셋을 파일 시스템으로 추출하십시오.
앱에 코드를 추가하여 임베디드 모드에서 파이썬을 시작하십시오. 이는 JNI를 통해 호출되는 C 코드여야 합니다.
6.2. 안드로이드용 파이썬 패키지 빌드하기¶
Python packages can be built for Android as wheels and released on PyPI. The recommended tool for doing this is cibuildwheel, which automates all the details of setting up a cross-compilation environment, building the wheel, and testing it on an emulator.