6. 在 Android 上使用 Python¶
Android 上的 Python 與桌面平臺上的 Python 不同。在桌面平臺上,Python 通常作為系統資源安裝,可供該計算機的任何使用者使用。然後,使用者透過執行 python 可執行檔案並在互動式提示符下輸入命令或執行 Python 指令碼來與 Python 互動。
在 Android 上,沒有作為系統資源安裝的概念。唯一的軟體分發單元是“應用”。也沒有可以執行 python 可執行檔案或與 Python REPL 互動的控制檯。
因此,在 Android 上使用 Python 的唯一方法是嵌入模式,即編寫一個原生 Android 應用程式,使用 libpython
嵌入 Python 直譯器,並使用 Python 嵌入 API 呼叫 Python 程式碼。然後,完整的 Python 直譯器、標準庫和所有 Python 程式碼都打包到您的應用程式中供其私有使用。
Python 標準庫在 Android 上有一些明顯的遺漏和限制。有關詳細資訊,請參閱 API 可用性指南。
6.1. 將 Python 新增到 Android 應用¶
只有在您計劃自己為 Android 編譯 Python 時才需要這些說明。大多數使用者不需要這樣做。相反,請使用以下工具之一,它們將提供更輕鬆的體驗。
如果您確定要手動完成所有這些操作,請繼續閱讀。您可以使用 testbed 應用 作為指導;下面的每個步驟都包含指向相關檔案的連結。
按照 Android/README.md 中的說明構建 Python。
將程式碼新增到您的 build.gradle 檔案中,以將以下項複製到您的專案中。除了您自己的 Python 程式碼外,所有項都可以從
cross-build/HOST/prefix/lib
複製。在您的 JNI 庫中
libpython*.*.so
lib*_python.so
(外部庫,例如 OpenSSL)
在您的 assets 中
python*.*
(Python 標準庫)python*.*/site-packages
(您自己的 Python 程式碼)
將程式碼新增到您的應用程式中以將 assets 提取到檔案系統。
將程式碼新增到您的應用程式中以在嵌入模式下啟動 Python。這需要是透過 JNI 呼叫的 C 程式碼。