如何使用Python打包APK
之前偶爾接觸到了python開發(fā)app的工具kivy(也能開發(fā)windows/linux/mac應用),然后發(fā)現(xiàn)網(wǎng)上教程極少,甚至第一步打包apk就勸退了很多人,我也踩了很多坑,最后還是一一解決了,這里寫個文章記錄下。
我選擇用buidlozer打包apk,主要參考官方文檔:https://buildozer.readthedocs.io/en/latest/installation.html
從文檔上看,這個工具主要是在linux和macos上用,我這邊主要用windows,所以我選擇用虛擬機來搭建打包環(huán)境。
整個搭建過程錄頻傳到b站上了,供參考python安卓開發(fā)——kivy打包安卓APK逐步教學
一、準備linux環(huán)境和相關(guān)工具
這里直接VMware+Ubuntu20.04解決環(huán)境問題,這一有個坑,一定要用18以上的ubuntu,否則可能因為openssl版本導致后續(xù)步驟失敗。如何安裝虛擬機和在虛擬機上安裝系統(tǒng)就不贅述了,一般按照安裝引導就ok。
安裝完成后為了后續(xù)方便使用,建議安裝以下兩個工具:
- openssl-server(linux)+Mobaxterm(windows)。ssh登錄linux,方便windows下貼命令,否則的話需要安裝vmware-tools,但是感覺這個不太好用。另外也可以通過這個來在虛擬機和windows間傳輸文件。這個配置也簡單,直接
sudo apt install openssl-server
即可 - samba。linux上配置samba方便共享文件,這樣windows可以直接添加網(wǎng)絡位置,可以方便地在windows上編輯文件并在linux編譯運行??蓞⒖疾┪摹驹敿毑襟E】Ubuntu安裝Samba服務及配置共享文件夾進行配置
二、準備python環(huán)境
官方文檔說的需要3.8以上版本,因此我也就直接用3.8了。
為了后續(xù)方便,還是用conda來管理python環(huán)境,我這里用的miniconda,因為文件要小一些,所需要的功能也都有。
conda create -n kivy python=3.8 source activate kivy pip install kivy
然后把我們在windows下寫的程序傳到虛擬機里面,代碼是一段簡單的demo如下,python ./main
驗證ok
from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): return Button(text='iPaoMi') TestApp().run()
三、buildozer打包apk
在工程目錄下,執(zhí)行以下命令
3.1 初始化
在工程目錄下執(zhí)行buildozer init
,會生成一個.spec
配置文件,內(nèi)容可以自己看看,包括App名稱等,這里我也沒有仔細研究。
3.2 buildozer -v android debug
接下來是個巨坑,官方文檔上說明是執(zhí)行buildozer -v android debug
,如果你是初次運行,就可以去泡一杯咖啡了。因為這個過程中會自動下載SDK/NDK等內(nèi)容。
然后第一個坑就來了,如果你是ubuntu16,那么大概跑了十幾分鐘后會失敗,提示ssl之類的錯誤。
其實這里并不需要魔法,可以正常下載,原因就在ubuntu的ssl版本。
SDK里面用的python3.10.10,要求openssl版本大于1.1.1
如果你愿意折騰,可以試試升級一下是否能解決這個問題,但我建議直接用ubuntu20.04,按官方文檔來。
然后是第二個坑,如果下載過程中網(wǎng)絡波動導致失敗,重新嘗試下載時,會提示文件已存在,或者是某某工具找不到
因為之前下載未完成但是可能文件已經(jīng)存在,這將影響工具對下載狀態(tài)的判斷,需要刪除工程目錄下的.buildozer文件夾和用戶目錄下的.buildozer文件夾
然后是第三個坑,下了十幾分鐘文件后,有一個文件無法下載,看域名確實是需要魔法才能下載,但是這并不意味著我們需要這個文件
重新執(zhí)行之前的命令,發(fā)現(xiàn)沒有出現(xiàn)前面的問題,開始正式編譯了,最終生成目錄bin,并在其下能找到apk文件。
四、驗證
這里沒有像官方文檔中建議那樣直接用USB調(diào)試,而是簡單的將APK文件拖入安卓模擬器驗證,執(zhí)行ok。
后續(xù)修改代碼內(nèi)容重新編譯,大約只需要半分鐘即可打包完成。也就是第一次使用比較困難。
到此這篇關(guān)于如何使用Python打包APK的文章就介紹到這了,更多相關(guān)Python打包APK內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pandas如何對帶有Multi-column(多列名稱)的數(shù)據(jù)排序并寫入Excel中
這篇文章主要介紹了Pandas如何對帶有Multi-column(多列名稱)的數(shù)據(jù)排序并寫入Excel中問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Python簡單獲取網(wǎng)卡名稱及其IP地址的方法【基于psutil模塊】
這篇文章主要介紹了Python簡單獲取網(wǎng)卡名稱及其IP地址的方法,結(jié)合實例形式分析了Python基于psutil模塊針對本機網(wǎng)卡硬件信息的讀取操作簡單使用技巧,需要的朋友可以參考下2018-05-05