使用Kivy將python程序打包為apk文件
1.概述
Kivy是一套Python下的跨平臺開源應(yīng)用開發(fā)框架,官網(wǎng),我們可以用
它來將Python程序打包為安卓的apk安裝文件。以下是在windows環(huán)境中使用。
安裝和配置的過程中會下載很多東西,確保你能夠穩(wěn)定地訪問外網(wǎng),另外推薦一個(gè)視頻教程:Youtube
2. 步驟
第一當(dāng)然是安裝了Python,我的版本是Python 2.7.13,然后就是安裝Kivy包:
官網(wǎng)有詳細(xì)的Kivy包的安裝步驟,按照該步驟走完就安裝ok。

然后就是寫一個(gè)簡單的程序main.py測試一下:
import kivy
kivy.require('1.9.1')
from kivy.app import App
from kivy.uix.button import Button
class test(App):
def build(self):
return Button(text='hello world')
if __name__ == '__main__':
test().run()
運(yùn)行截圖:

運(yùn)行成功,那開發(fā)環(huán)境基本沒問題了。然后下面就是怎么將這個(gè)程序打包成apk。
首先需要安裝虛擬機(jī) VirtualBox,這個(gè)沒問題,很快就裝好了,然后Kivy官方制作了該虛擬機(jī)的映像(很體貼),下載后就直接能運(yùn)行了,省去不少麻煩。下載地址,或者直接去官網(wǎng)下載:

下載并解壓之后,打開VB并載入該文件夾下的虛擬機(jī)文件,然后運(yùn)行(登錄密碼kivy):

進(jìn)入到該系統(tǒng)中之后,就需要開始配置環(huán)境。官方指導(dǎo)
首先我們先在該系統(tǒng)中添加一個(gè)共享文件夾,這樣可以和windows共享文件,在VB的設(shè)備->共享文件夾選項(xiàng)中有配置:

然后我們使用固定分配,在windows下某個(gè)路徑新建一個(gè)文件夾后將其選擇為共享文件夾,并選擇自動掛載:

然后重新啟動虛擬機(jī)就可以訪問該共享文件夾了:

設(shè)置好了共享文件夾后,可以將之前寫的測試程序main.py拷貝到該文件夾,然后在虛擬機(jī)中拷貝到桌面?zhèn)溆谩?/p>
然后打開終端(cd到桌面),執(zhí)行buildozer init命令,之后會在桌面上生成buildozer.spec的配置文件:

然后使用命令gedit buildozer.spec來編輯該文件,(如果沒有g(shù)edit可以sudo apt-get install gedit來安裝)

基本不用改什么,那個(gè)source.dir 需要注意,這是剛剛我們放在桌面上的main.py的路徑。
然后運(yùn)行buildozer android_new debug,接著就開始下載很多東西了,例如Android SDK,Android NDK之類,并且是需要訪問外網(wǎng)的,自搭梯子。這個(gè)過程要很久,讓我一度以為出了問題,然后我中午睡一覺起來就差不多了^^。
然后在它自動下載配置之后就會在桌面的bin文件夾下面生成了apk文件,可以安裝在手機(jī)上試一下。
然后基本流程大概如此^^,詳細(xì)可以去官網(wǎng)了解,我就是按照官網(wǎng)的步驟完成的。
最后再推薦一個(gè)MIT開發(fā)的快速制作安卓app的網(wǎng)站,http://appinventor.mit.edu/explore/
相關(guān)文章
Python Django 命名空間模式的實(shí)現(xiàn)
這篇文章主要介紹了Python Django 命名空間模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
centos 自動運(yùn)行python腳本和配置 Python 定時(shí)任務(wù)
這篇文章主要介紹了centos 自動運(yùn)行python腳本和配置 Python 定時(shí)任務(wù),文章內(nèi)容介紹詳細(xì),需要的小伙伴可以參考一下,希望對你有所幫助2022-03-03
Python機(jī)器學(xué)習(xí)10大經(jīng)典算法的講解和示例
10個(gè)經(jīng)典的機(jī)器學(xué)習(xí)算法包括:線性回歸、邏輯回歸、K-最近鄰(KNN)、支持向量機(jī)(SVM)、決策樹、隨機(jī)森林、樸素貝葉斯、K-均值聚類、主成分分析(PCA)、和梯度提升(Gradient?Boosting),我將使用常見的機(jī)器學(xué)習(xí)庫,如scikit-learn,numpy和pandas?來實(shí)現(xiàn)這些算法2024-06-06
基于python實(shí)現(xiàn)把json數(shù)據(jù)轉(zhuǎn)換成Excel表格
這篇文章主要介紹了基于python實(shí)現(xiàn)把json數(shù)據(jù)轉(zhuǎn)換成Excel表格,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
最新Python?APScheduler?定時(shí)任務(wù)詳解
這篇文章主要介紹了Python使用apscheduler模塊設(shè)置定時(shí)任務(wù),APScheduler全稱Advanced?Python?Scheduler?作用為在指定的時(shí)間規(guī)則執(zhí)行指定的作業(yè),本文對Python?APScheduler?定時(shí)任務(wù)相關(guān)知識介紹的非常詳細(xì),需要的朋友參考下2022-05-05
四種Python機(jī)器學(xué)習(xí)超參數(shù)搜索方法總結(jié)
在建模時(shí)模型的超參數(shù)對精度有一定的影響,而設(shè)置和調(diào)整超參數(shù)的取值,往往稱為調(diào)參。本文將演示在sklearn中支持的四種基礎(chǔ)超參數(shù)搜索方法,需要的可以參考一下2022-11-11
基于Python實(shí)現(xiàn)報(bào)表自動化并發(fā)送到郵箱
作為數(shù)據(jù)分析師,我們需要經(jīng)常制作統(tǒng)計(jì)分析圖表。但是報(bào)表太多的時(shí)候往往需要花費(fèi)我們大部分時(shí)間去制作報(bào)表。本文將利用Python實(shí)現(xiàn)報(bào)表自動化并發(fā)送到郵箱,需要的可以參考一下2022-07-07
Python推導(dǎo)式之字典推導(dǎo)式和集合推導(dǎo)式使用體驗(yàn)
這篇文章主要為大家介紹了Python推導(dǎo)式之字典推導(dǎo)式和集合推導(dǎo)式使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
利用python讀取YUV文件 轉(zhuǎn)RGB 8bit/10bit通用
今天小編就為大家分享一篇利用python讀取YUV文件 轉(zhuǎn)RGB 8bit/10bit通用,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

