Buildozer虛拟機配置
- Buildozer虛拟機配置
-
- (一)虛拟機系統的注意事項
- (二)正式開始安裝Buildozer
-
-
- 1.基本依賴安裝
- 2.pip3安裝buildozer和一些python庫
-
- (三)正式運作buildozer進行編譯環境配置
-
-
- 1.随便寫個kivy程式
- 2.執行初始化和配置buildozer
-
- 3.下載下傳第二階段
- 4.下載下傳第三階段
- 5.編譯階段
-
- (四)最後下載下傳階段
- 已經搭建好的kivy環境
Buildozer虛拟機配置
在開始之前,需要先進行系統的基礎配置,我覺得使用Vmware虛拟機+Ubuntu18.04是比較好的做法推薦使用Ubuntu 18.04 LTS Server版本,桌面版也可以,但是桌面版有一些動态庫與buildozer所需求的版本有差異,再加上Server版體積比較小,是以我最後選擇了Server版進行了安裝。
(一)虛拟機系統的注意事項
注意事項
0.虛拟機建議将記憶體和CPU數盡量開大,因為後邊要進行編譯,GCC還是指定-j(線程數)進行編譯的;
1.Ubuntu Server安裝時選中開啟ssh server(?具體名字我也不記得了),在整個搭建過程使用xshell進行遠端連入進行操作,不要直接在虛拟機裡操作,不僅複制檔案麻煩,而且複制指令,搜尋error也麻煩;
2.在系統安裝完畢後,将APT源更換為國内速度比較快的源(Ubuntu 18.04源),以便後續安裝,我覺得阿裡雲的很快2333;
3.這裡推薦一個軟體,proxychains,用來進行代理資料轉發,解決一些衆所周知的更新問題。這個軟體可以劫持其他軟體,強制性讓它走代理,支援轉sock5,http等協定通過指定代理伺服器(官方說傳輸層流量也能代理,這個半信半疑,因為在下邊因為TLS被打臉了)
proxychains可以通過源使用apt安裝
sudo apt update
sudo apt install proxychains //安裝proxychains
nano /etc/proxychains.conf //編輯配置檔案最後一行,删掉最後一行,按照上邊的example進行編寫,填入代理的類型,位址和端口
我這裡在主控端開啟了小飛機,然後開啟了區域網路通路,于是就這麼以上的位址與端口;
proxychains的使用方法就是加到正常的指令之前
使用proxychains wget www.google.com來測試網絡是否聯通
(二)正式開始安裝Buildozer
1.基本依賴安裝
- buildozer官方安裝指南傳送門
- 按照指南中的進行操作
sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake
echo 'export PATH=$PATH:~/.local/bin/' >> ~/.bashrc //注意是單引号,不解釋變量$PATH,你也可以按照官方方法直接編輯檔案
這裡出現了一個坑,缺少了一個子產品,這個子產品也必須安裝,不然後邊會和你說找不到_ctype子產品,但是你python又能導入這個子產品,真是讓人摸不着頭腦…
sudo apt install libffi-dev
2.pip3安裝buildozer和一些python庫
proxychains pip3 install --user --upgrade buildozer
proxychains pip3 install --user --upgrade cython virtualenv
(三)正式運作buildozer進行編譯環境配置
1.随便寫個kivy程式
編寫完後放到使用者主目錄(~)下,命名為main.py
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text = 'First P4A (python for android) Project!')
TestApp().run()
2.執行初始化和配置buildozer
buildozer init
nano buildozer.spec
編輯配置檔案,使得日志級别為2,可以輸出更多有用資訊,報錯也好查
執行編譯,buildozer會自動分析依賴和下載下傳它們
proxychains buildozer android debug
如下圖,下載下傳中
3.下載下傳第二階段
SDK安裝完後,buildozer就進入了第二下載下傳階段,在此階段調用~/.buildozer/?/sdkmanager進行其餘編譯工具下載下傳。
ctrl+c中斷程式執行
此時就不要用proxychains了,貌似是TLS流量,代理不動
配置./android/androidtool.cfg開啟sdkmanager的代理(說實話我也不知道這有沒有用,哈哈)
nano ~/.android/androidtool.cfg
輸入以下配置
http.proxyPort=1080
http.proxyHost=192.168.127.1
sdkman.force.http=true
重新執行指令,注意不要加proxychains字首了
buildozer android debug
顯示如下頁面表示第二階段下載下傳完成,老樣子ctrl+c打斷
4.下載下傳第三階段
第三階段是調用python進行下載下傳,我們還是用proxychains來進行代理
proxychains buildozer android debug
下載下傳完成後會自動進入編譯階段,ctrl+c打斷
5.編譯階段
這裡又有坑,如果使用proxychains+buildozer指令行的編譯會造成一個問題,buildozer會顯示ipv6沒有被禁用(這個是因為buildozer --ipv6選項是自動的,在這種劫持方式的代理環境下容易出現問題)
不加proxychains字首執行編譯
buildozer android debug
(四)最後下載下傳階段
編譯基本完成,最後下載下傳一些sdk工具,老樣子ctrl+c打斷
proxychains代理加速
proxychains buildozer android debug
如果顯示以下界面,恭喜,編譯成功!
通過xftp把他下載下傳到主控端,然後通過qq發到手機上安裝看看吧!
已經搭建好的kivy環境
連結:百度網盤連結
提取碼:1unt
溜了溜了,做高數去了