如何Python寫一個安卓APP,附源碼!

2021-02-19 菜鳥要飛

先上源碼:https://github.com/mvasilkov/kb/tree/master/6_2048 

本文會帶大家寫一個Hello world並瞧一瞧Python版實現的android 2048的代碼

前言:

用Python寫安卓APP肯定不是最好的選擇,但是肯定是一個很偷懶的選擇,而且實在不想學習Java,再者,就編程而言已經會的就Python與Golang(註:Python,Golang水平都一般),那麼久Google了一下Python寫安卓的APP的可能性,還真行。

既然要寫個APP,那麼總得要有個想法吧。 

其實筆者想做兩個APP來著,一個是自己寫著好玩的,一個是關於運維的。 
關於運維的APP,設計應該如下 

可能長這樣:

然後設計應該是這樣:

如果覺得可行的話,評論留言一下你覺得應該寫進這個APP的運維常用命令吧^_^,筆者暫時想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什麼好的想法就狠狠的砸過來吧,筆者到時應該也會把這個寫成一個項目放到github上,大家一起用嘛,開源才是王道,哈哈。

好吧,進入正題。 

我們使用kivy開發安卓APP,Kivy是一套專門用於跨平臺快速應用開發的開源框架,使用Python和Cython編寫,對於多點觸控有著非常良好的支持,不僅能讓開發者快速完成簡潔的交互原型設計,還支持代碼重用和部署,絕對是一款頗讓人驚豔的NUI框架。 

因為跨平臺的,所以只寫一遍代碼,就可以同時生成安卓及IOS的APP,很酷吧。

本文會帶大家寫一個Hello world並瞧一瞧Python版的2048的代碼

kivy安裝 

環境說明:筆者在用的是Python2.7.10 
這裡僅介紹windows平臺安裝 
所有平臺參考: https://kivy.org/#download

更新pip,setuptools

python -m pip install --upgrade pip wheel setuptools

然後是安裝所需要的依賴

值得注意的是,上面的安卓需要訪問Google,所以請自備梯子,而且kivy.deps.gstreamer這個包比較大(95MB),可以單獨本地安裝,

http://pan.baidu.com/s/1o7mlxNk 

然後就是安裝kivy了

python -m pip install kivy

至此,安裝就已經完畢了,值得注意的是64位系統沒有開啟虛擬化支持,在導入kivy的時候會報錯,如果是64位系統就設置一下機器的BIOS,開啟虛擬化支持吧。 

註:這裡只是kivy的運行環境,這樣我就能直接在windows機器上直接調試了,怎麼將代碼編譯成APK文件我們會在後面講到。

如果kivy在python中應該就能導入了。

按照世界慣例,我們」hello」一下吧。 

新建一個.py文件

運行:

然後會彈出一個框,大概如下,點擊」hello,kivy」會變顏色

點擊窗口並按「F1」會這個窗口的一些屬性

然後我們回過頭看一看代碼。

上面就是我們的Hello了 

在windows上運行當然沒有什麼太大的意義,怎麼在安卓手機上運行才是我們想要的, 

這時我們需要一個編譯環境。 

官方說明的環境,如下:

雖然官方提供了一個似乎還不錯的虛擬機鏡像,但是還是有很多內容需要翻出去,所以筆者在這裡提供相對而言更加完善的鏡像 

下載地址:http://pan.baidu.com/s/1geyAY7x 
注:virtualbox,vmware需自行下載 

root密碼:kivy 
默認使用帳戶kivy,密碼:kivy123

當然你也可以下載官方鏡像,因為第一次編譯需要去國外下一大堆東西,所以請自備梯子。

Virtual Machine 
A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation: 
Kivy Buildozer VM 
Or select the Torrent

在筆者提供的鏡像裡,桌面上有一個dev_and,只要將上面寫的代碼,放入這個文件夾即可(當然也可以在其他目錄,後面會講到)。

cd Desktop/dev_and/

初始化會在當前目錄生成一個buildozer.spec文件 用於配置生成的apk相關信息

buildozer init

修改buildozer.spec文件

vi buildozer.spec

至少修改下面三項

然後注釋

最後我們生成我們需要的apk文件

buildozer -v android debug

buildozer.spec更詳細的相關參數配置參考: 
http://buildozer.readthedocs.org/en/latest/specifications.html

buildozer命令會在當前文件夾創建一個bin,該文件夾裡面有我們想要的apk文件

helloapp-1.2.0-debug.apk

安裝以後應該是這樣

話說在編譯的時候可能出現空間不足的情況,根據虛擬機的不同(vmware或virtualbox)自行擴容吧。

最後我們來瞧瞧簡易版Python開發的2048這個遊戲的原始碼。 

先看效果圖

試玩了一下,還是蠻流暢的,有興趣的可以下載玩一下 

下載地址:http://pan.baidu.com/s/1eQZACDW 

這個遊戲代碼雖然不長,但是還是蠻佔篇幅的,所以簡要的說明一下流程:

主要由三部分組成,一是素材,圖片音頻之類的文件,二是Python代碼,三是kv文件,這個kv文件有點像html中的css。 

Python代碼的文件名一般命名為main.py 

然後一定有一個叫做XXXApp的類,並繼承App。 

比如該類叫做GameApp,那麼該目錄下的kv文件則必須為Game,如上圖所示,如果不是,那麼kv文件中的一些設定就不會生效。 

比如設定一個標籤

Label:    id: time    text: 'xxxx'    font_size: 60

id為time,text文本內容為』xxxx』,然後字體為60 
好吧,點到為止吧,不過似乎什麼都沒點到~~~

從無到有做一個App,我想我會另起一篇文章吧。

小編推薦

限時25元起升級終身VIP,即將恢復原價50元!

作者: 又耳的筆記」  文末附源碼地址

來源:http://youerning.blog.51cto.com/10513771/1733534

如有侵權,請及時聯繫,謝謝!

相關焦點

  • 用 Python 寫一個安卓 APP
    如何提高 Python 的運行速度?http://youerning.blog.51cto.com/10513771/1733534前言用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇
  • 用Python寫一個安卓APP
    APP 肯定不是最好的選擇,目前用 Java 和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇,而且實在不想學習 Java,再者,就編程而言已經會的就 Python與 Golang(註:Python,Golang 水平都一般),那麼久 Google了一下 Python 寫安卓的 APP 的可能性,還真行。
  • Python 也能開發 App ?
    準備工作利用python開發app需要用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發框架,用於開發使用創新的應用程式。簡而言之,這是一個python桌面程序開發框架(類似wxpython等模塊),強大的是kivy支持linux、mac、windows、android、ios平臺,這也是為什麼開發app需要用到這個模塊。
  • 如何用 Python 寫一個 Discord 機器人
    在本教程中,您將學習如何使用 Python創建一個簡單的 Discord 機器人。也許您還不知道什麼是 Discord,本質上它是一項針對遊戲玩家的一種類 Slack(一個雲協作團隊工具和服務)的服務。在 Discord 上,您可以連接多個伺服器,您一定也注意到這些伺服器有許多機器人。
  • 聊聊學python轉行、具體學習方法、自學python用於辦公、寫爬蟲等...
    Python這幾年都挺火的,比如說應用於數據分析、機器學習、自動化辦公、寫爬蟲採集數據等等……因為我之前發過幾篇和python有關的推文,所以不止一個朋友加私信問我說,你是怎麼學的,能不能談一談學習的經驗和技巧。
  • 3分鐘快速了解python語法規則,寫第一個python程序
    今天的內容是,使用python的turtle模塊寫一個簡單程序,學習python程序的基本語法規則,以及如何使用模塊下面,看一個寫好的程序,然後分析下python的語法結構這個程序的功能,是在python shell控制臺輸入一個名字,如果名字是 『派僧』 的話,就讓小海龜繪製一條直線
  • pixiv安卓app下載
    pixiv安卓app匯集海量的漫畫、小說、插畫資源,你想看的都只能在這裡找到!這裡的插畫非常的精彩豐富,還可以分享自己的作品,還有專屬的互動交流社區,給你別樣的社交新體驗!
  • 從零開始解密一款APP
    之前我接觸過的逆向大部分是PC端和網頁端,網頁端不管混淆多嚴重,只要有耐心就能搞出點東西,但是移動端的逆向難度好像大一點,我使用IOS系統,ipa的逆向教程少之又少,於是只能放棄然後就想起,這個app還有安卓版本
  • 毒app安卓版下載
    毒app安卓版下載簡介:得物是一非常時尚的手機網購app。得物app有時下最火的潮流單品如球鞋、服裝、配飾、潮玩、數碼3C等,每個商品都是由專業的鑑別師進行審核,對有瑕疵的商品進行排查,保證商品都是正品,用戶們放心購買吧。
  • 奇奇動漫app安卓版下載
    奇奇動漫app安卓版下載是一款趣味娛樂的影音播放軟體,為廣大二次元朋友摘錄了海量動漫番劇,各種類型都有,可以滿足廣大用戶的需求,快來下載試試~
  • 磁力貓app下載安卓版
    磁力貓app下載安卓版簡介:磁力貓整合全網資源,深度挖掘視頻和圖片文件等等資源,讓我們更快捷、更平等的獲取資源信息,具有界面簡潔,操作簡單的特點,並且可以自由的搜索你想要的內容。磁力貓app下載安卓版介紹:電影雷達,超高清流暢播放;急速秒傳,精彩無需等待;磁力解析,功能強大性能佳;無限空間,海量資源一手掌握;直鏈下載,輕鬆方便又快捷;文件分類,各種視頻欄目如數家珍。
  • Python 黑魔法:裝飾器
    Tornado 中的 Router 略顯平淡,懷念 Flask 的味道,於是很好奇的想知道 Flask 是如何使用這個魔法。通過閱讀 Flask 的源碼,我們也可以為 Tornado 實現了一個裝飾器 Router。當然對於剛接觸 Python 的人,也許很容易理解裝飾器本質是設計模式中的裝飾器模式。可是 Python 通過@一個實現裝飾器的語法糖。
  • 如何自學成 Python 大神?這裡有些建議
    從我個人經驗來講,學習一門程式語言最好的方法就是挑選一個問題,然後用程式語言來解決它。想要解決一個問題,你需要非常清楚地了解問題本身。我的意思是你需要了解輸入、輸出、約束條件、規則和許多其他的東西。以下是我推薦的一些步驟: 了解 Python 的基礎知識掌握任何一門程式語言的基礎都是非常重要的。你至少首先應該明白如何輸入和輸出。
  • 安卓無限內購破解遊戲大全 十大安卓破解遊戲app
    安卓無限內購破解遊戲大全 十大安卓破解遊戲app 來源:www.18183.com作者:wer時間:2020-11-18 安卓無限內購破解遊戲大全,十大安卓破解遊戲app.在這裡你可以每天都能看到最新破解遊戲資源下載
  • 安卓破解手遊平臺大全 安卓破解版手遊app排名
    安卓破解手遊平臺大全 安卓破解版手遊app排名 來源:www.18183.com作者:wer時間:2020-11-25 安卓破解手遊平臺大全,安卓破解版手遊app排名.對於遊戲玩家來說是必備的
  • 火幣網下載官方app_火幣網下載官方app安卓版-太平洋下載中心
    火幣網是全球領先的數字貨幣金融服務商,整個平臺支持上百種不同的數字貨幣交易如OTC法幣交易、火幣Global(PRO)幣幣交易、HADAX創新數字等等,強大的後臺服務系統為用戶提供一個值得信賴的可靠服務平臺。
  • 十大安卓內購破解遊戲網站 安卓手遊破解網站app
    十大安卓內購破解遊戲網站 安卓手遊破解網站app 來源:www.18183.com作者:wer時間:2020-11-27 十大安卓內購破解遊戲網站,安卓手遊破解網站app.每一款破解版遊戲軟體應用功能都非常強大
  • 3種方法學會python模塊使用,3分鐘直接上手一個python繪圖程序
    ,都是針對具體問題,展開的學習首先公布第一個程序需要做什麼,然後我們一起來看看如何完成第一個任務:畫一個正方形上節課的案例中我們已經知道(有問題的可以點擊主頁查看上節課的內容),turtle即小海龜模塊,具有各種繪畫的技能
  • 飄花電影app安卓版下載
    飄花電影app安卓版下載軟體介紹:億次下載,千萬用戶,五年選擇,看視頻請認準正版「飄花電影」!每天發布最新歐美,港臺,大陸電影資訊,盤點各類經典電影。不錯過每一部電影,匯聚電影愛好者,一起交流探討!
  • iPhone 上用著超爽的捷徑,安卓一個 APP 就實現了?
    就拿 iPhone 用戶平時用的挺爽的捷徑來說,如果你的安卓手機系統沒有自帶捷徑,那麼只需藉助一款 APP,也能享受到捷徑帶來的快樂。這款軟體的名字叫做 「 Anywhere-快捷方式 」。Anywhere 下載下來後,它會有三種工作模式讓你選擇,如果沒有安卓的搞機經驗,那麼直接選擇 NORMAL 普通模式即可。普通模式下共有四種添加捷徑的方法,分別是添加圖片、掃碼合集、URL Scheme 和活動列表 。