python開發apk第1篇,安卓開發 python

本文目錄一覽:

python使用br打包發布apk

如下;

py如果沒有Qt \\ bin,您可以複製本文件Qt網站。如果找不到現有PyQt5插件目錄的錯誤出現在包裝過程中,然後,1)找到PyQt5文件夾\/圖書館\/插件路徑下蟒蛇目錄下安裝,並複製內容;2)按照下面的錯誤報告一個句子,例如,如下:路徑檢查:_build \/圖書館\/插件的內部去C驅動和創建它們。最後,將剛才複製的複製進去,然後再做一次,包成功。特別注意:如果你發現你可以在你的電腦打開它的包裝完成後,但你不能打開它在別人的電腦,錯誤報告如下:xxx未能執行腳本。在這個時候,我們需要替換上面的命令在步驟4 w c,然後刪除所有的東西都打包和重新包裝。c程序可以打開終端窗口cmd的形式,這樣操作失敗時,將一個特定的錯誤報告,具體的錯誤將被修改。

如何Python寫一個安卓APP

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

操作

更新pip,setuptools;

安裝所需要的依賴;

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

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

python可以寫軟件么怎麼寫?

22點24分準時推送,第一時間送達

編輯:技術君 | 來源:youerning

上一篇:

正文

前言

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

既然要寫個APP,那麼總得要有個想法吧。其實想做兩個APP來着,一個是自己寫着好玩的,一個是關於運維的。關於運維的APP,設計應該如下

可能長這樣

然後設計應該是這樣。

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

開發安卓APP

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

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

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

kivy安裝

環境說明:筆者在用的是Python2.7.10

這裡僅介紹windows平台安裝

所有平台參考:

更新pip,setuptools

python -m pip install –upgrade pip wheel setuptools

然後是安裝所需要的依賴

python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew \

kivy.deps.gstreamer –extra-index-url

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

然後就是安裝kivy了

python -m pip install kivy

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

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

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

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

新建一個.py文件

from kivy.app import Appfrom kivy.uix.button importButton

class TestApp(App):

def build(self):

return Button(text=’Hello,kivy’)

TestApp().run()

運行

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

點擊窗口並按“F1”會這個窗口的一些屬性

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

##導入App,然後讓TestApp這個類繼承

from kivy.app import App##導入一個Button,運維有這個button,當你點擊的時候才會有所反應

from kivy.uix.button

importButton

###定義類,名字必須是xxxAppclass TestApp(App):

###build一個Button

def build(self):

###返回一個Button,文字內容是“Hello,kivy”

return Button(text=’Hello,kivy’)

##運行,因為繼承了App,所以才有的run這個方法TestApp().run()

上面就是我們的Hello了

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

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

官方說明的環境,如下:

You’ll need:

A linux computer or a virtual machine

Java

Python 2.7 (not 2.6.)

Jinja2 (python module)

Apache ant

Android SDK

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

下載地址:

注: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,只要將上面寫的代碼,放入這個文件夾即可(當然也可以在其他目錄,後面會講到)。

在公眾號Python人工智能技術後台回復“面試”,獲取騰訊Python面試題和答案。

cd Desktop/dev_and/

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

buildozer init

###修改buildozer.spec文件

vi buildozer.spec

至少修改下面三項

# (str) Title of your applicationtitle = helloworld

# (str) Package namepackage.name = helloapp

# (str) Package domain (needed for android/ios packaging)package.domain = youer.com

然後注釋

# (str) Application versioning (method 1)#version.regex = __version__ = [‘”](.*)[‘”]#version.filename = %(source.dir)s/main.py

下面這行改為非注釋

version = 1.2.0

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

buildozer -v android debug

buildozer.spec更詳細的相關參數配置參考:

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

helloapp-1.2.0-debug.apk

helloapp-1.2.0-debug.apk

安裝以後是這樣:

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

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

代碼:

先看效果圖:

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

下載地址:

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

主要由三部分組成,一是素材,圖片音頻之類的文件,二是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

好吧,點到為止吧,不過似乎什麼都沒點到~~~

你還有什麼想要補充的嗎?

你在看嗎?一起成長

如何用python開發移動App後台?需要掌握哪些技術

1、如果使用python語言,需要學習哪些知識?

python作為一門簡單明了的語言,非常容易上手,語言層面不會太複雜,稍微有點難度的頂多就是裝飾器、元類和少量函數式編程內容。要說學習的話,我覺得更多是一些編程方面通用的東西,比如:數據結構和算法、設計模式、操作系統、計算機網絡之類的

2、選擇什麼樣的python框架開發,這個框架的優勢?

tornado,因為非阻塞io的原因,性能非常高,特別適合寫後端API(App的後端應該都是rest風格的api),而且成熟穩定

3、如何部署服務器?本地服務器調試,以及公網服務器部署?

這個一兩句說不清楚,涉及到運維、測試、開發諸多方面, 部署和測試推薦幾個包:fabric、nose、unittest(python自帶),版本管理推薦git,持續集成推薦使用docker+jenkins

4、如果使用python框架開發移動後台服務,在開發源碼內使用哪種框架?mvc還是其它的,比如我返回json數據,每次json對象最外層有一些相同的東西,該如何處理?

MVC什麼的,一般的框架都差不多的,tornado也是支持的,返回json有相同的東西,寫個修飾器就完了

5、python的後台服務最大能支持多大的pv量會嚴重影響用戶體驗性能?

youtube、reddit、豆瓣、知乎這樣的大流量網站都是python寫的,覺得你的App的規模不太可能遇到性能問題,即使有也應該不是python的問題,而是任何語言都會有問題。畢竟web後端不是計算密集型,而是io密集型的,python和其他語言的區別不會太大吧,大量的pv是可以靠堆服務器堆出來的,如果是計算量比較大的任務,你可以考慮用c或c++寫

6、如何兼顧 網頁前端以及移動端 開發的後台?

用python寫的API,網頁和移動端都是可以調用啊,讓前端學學React,就可以輕鬆解決前後端分離這個問題(PS: facebook 就是後端php + 前端React,淘寶也有在用nodejs做前後端分離)

7、有沒用相關的案例,即用python開發的移動後台?有沒有該問題的開源項目?

這個應該比較少,App後端開源的不常見,而且大部分是rest風格的api,很多時候會涉及到自身的業務和敏感信息應該不會開源的吧(又不是bbs或者博客程序)

原創文章,作者:SDCQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/143735.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SDCQ的頭像SDCQ
上一篇 2024-10-24 15:25
下一篇 2024-10-24 15:25

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python實現畫筆方向改變

    本文將介紹如何在Python中實現畫筆方向改變,讓畫筆以中心為軸旋轉。 一、Tkinter庫概述 Tkinter是Python自帶的GUI庫,可用於創建各種GUI應用程序。在Pyt…

    編程 2025-04-29
  • 運維Python和GO應用實踐指南

    本文將從多個角度詳細闡述運維Python和GO的實際應用,包括監控、管理、自動化、部署、持續集成等方面。 一、監控 運維中的監控是保證系統穩定性的重要手段。Python和GO都有強…

    編程 2025-04-29

發表回復

登錄後才能評論