-
1 # 學霸IT
-
2 # 萬事於心不表於情
可以,太可以了。基本上可以說python就是為做手機軟體發來的,web都可以做,而且web框架號稱python的靈魂,有人把python框架比作你的腿,出門就得帶著,說明它的重要性和應用範圍。
有什麼不知道的可以問我
-
3 # 墩子村
目前沒很好的python手機開發框架,有也是實驗性的,倒是javascript可以,那種是沙盒性質的,但從長期來看,Javascript+HTML統一移動終端是一個必然的趨勢,當然,前提是蘋果公司願意對這類非原生性的應用大力放行。
-
4 # 八手程式猿
可以的,不過要透過第三方類庫實現,比如kivy。
kivy 語言透過編寫介面 UI,然後利用 Python 定義一些業務邏輯,可以移植很多功能模組到移動端直接執行。
下面對 kivy 常見用法做一個彙總。
1、什麼是 kivy?
kivy 是一個開源跨平臺的 Python UI 框架,就可以快速開發 PC、移動端的 GUI 。
kivy 基於 Python,採用 Python 和 CPython,介面程式碼和業務邏輯程式碼相互分離。
2、Hello World 怎麼寫?
在 pycharm 中編寫 kivy 程式碼塊前,需要在虛擬環境內安裝 kivy 依賴庫。
pip3 install kivy
然後,定義一個 kivy.app.py App 類的子類,重寫 build 方法。
from kivy.app import App
class MyApp(App):
def build(self):
"""
實現父類的build()方法
:return:
"""
pass
接著新建一個控制元件例項,作為應用的根控制元件返回。
from kivy.uix.label import Label
def build(self):
"""
把build()方法實現為返回一個控制元件例項(這個控制元件的例項也就是你整個應用的根控制元件)
:return:
"""
# 在這個方法裡面使用了Label控制元件
return Label(text="Hello World!")
# 執行 Hello World
MyApp().run()
最後,直接呼叫自定義類的 run() 方法,執行在 PC 端展示效果如下。
當然,也可以重新命名檔名為:kvmain.py,然後利用 adb 命令複製到 /sdcard/kv/ 下,重新冷啟動 airport 應用就可以在移動端上運行了。
3、建立應用的步驟
使用 kivy 建立 App 包含 3 個步驟,分別是:
建立一個子類繼承於 App 類
重寫 build() 方法,返回一個容器控制元件或者自定義的控制元件,這個應用作為整個應用的根控制元件。
編寫自定義控制元件的 UI 佈局及業務邏輯
建立自定義子類的例項,呼叫 run() 方法
4、怎麼編寫 UI 佈局
編寫 UI 佈局常用 Builder.load_string() 方法,傳入一段配置程式碼,生成控制元件樹。
首先需要宣告一個根控制元件類,可以使用 kivy 中定義的佈局容器控制元件,也可以使用自定義的控制元件( 常用 )。
# 1.使用 kivy 定義的容器控制元件
BoxLayout:
# 2.使用自定義的容器控制元件
<CustomWidget>:
然後利用層級關係編寫父控制元件、子控制元件,包含:id、text、高度和高度、對齊關係、顏色等屬性。
TextInput:
id:id_input_password
padding: [20, 20, 20, 20]
text_size: 500, None
hint_text:"請輸入密碼"
halign:"center"
valign: "middle"
最後,對於自定義控制元件中 繫結的各種事件需要定義回撥方法進行處理掉。
on_press: root.login(id_input_username.text,id_input_password.text) 意的是,利用 adb shell am 命令開啟應用的方式適用於部分不相容自動化框架的 App。
5、中文亂碼問題
預設佈局屬性中包含中文會顯示亂碼。
針對 PC 端,只需要把中文字型檔案放到同級目錄下,利用 font_name 屬性指定字型即可顯示正常。
如果是 App 端,需要利用 adb 命令,進入到 /system/fonts/ 下,尋找能顯示中文的字型,然後利用 font_name 屬性指定對應的字型,就能顯示正常。
# 手機端 Miui-Bold.ttf 字型能顯示中文正常
font_name:"/system/fonts/Miui-Bold.ttf"
6、能不能來一個例項
下面以建立一個 登入介面 來說。
首先,我們建立一個類繼承自 App,重寫 build() 方法,返回一個自定義的控制元件。
然後編寫自定義控制元件的佈局。
Builder.load_string("""
<LoginWidget>:
orientation:"vertical"
spacing:30
padding:20
canvas:
Color:
rgba: (1, 1, 1, 1)
Rectangle:
size: self.size
pos: self.pos
BoxLayout:
size_hint_y: None
height: "48dp"
orientation:"horizontal"
canvas:
Color:
rgba: (1, 1, 1, .5)
Rectangle:
size: self.size
pos: self.pos
Label:
text_size: 300, None
text:"使用者名稱:"
font_size:"15sp"
font_name:"/system/fonts/Miui-Bold.ttf"
color: 1,0,0,1
TextInput:
text_size: 500, None
border: 10, 10, 10, 10
id:id_input_username
hint_text:"請輸入使用者名稱"
font_name:"/system/fonts/Miui-Bold.ttf"
padding: [20, 20, 20, 20]
halign:"center"
BoxLayout:
size_hint_y: None
height: "48dp"
orientation:"horizontal"
canvas:
Color:
rgba: (1, 1, 1, .5)
Rectangle:
size: self.size
pos: self.pos
Label:
text_size: 300, None
text:"密碼:"
font_name:"/system/fonts/Miui-Bold.ttf"
color: 1,0,0,1
TextInput:
id:id_input_password
padding: [20, 20, 20, 20]
text_size: 500, None
hint_text:"請輸入密碼"
font_name:"/system/fonts/Miui-Bold.ttf"
halign:"center"
valign: "middle"
Button:
id:id_btn_login
size_hint_y: None
text_size: 100, 50
border: (16, 16, 16, 16)
font_name:"/system/fonts/Miui-Bold.ttf"
text:"登入"
margin:100
on_press: root.login(id_input_username.text,id_input_password.text)
Label:
id:id_label_resut
color: 1,0,0,1
""")
def login(self, username, pwd):
if not username or not pwd:
print("使用者名稱和密碼不能為空!")
popup = Popup(title="Warning", content=Label(text="使用者名稱和密碼不能為空",font_name="/system/fonts/Miui-Bold.ttf"),
size_hint=(None, None),size=(600, 500),auto_dismiss=True)
popup.open()
else:
resp = requests.get("https://www.baidu.com")
# 登入成功
if resp.status_code == 200:
result = "Login Success!"
else:
result = "Login Failed!"
self.tv_result.text = result
最後,將檔案 push 到手機的 /sdcard/kv 目錄下,重新執行 airport 就能展示一個登入頁面。
更多複雜的功能可以參觀官方 API。
https://kivy.org/#home
-
5 # MaWenjing
python是可以開發app的,例如我們可以使用kivy開發安卓APP,Kivy是一套專門用於跨平臺快速應用開發的開源框架,使用Python和Cython編寫,對於多點觸控有著非常良好的支援,不僅能讓開發者快速完成簡潔的互動原型設計,還支援程式碼重用和部署,絕對是一款頗讓人驚豔的NUI框架。
Kivy的主要架構由Kivy組織開發,並有Python用於Android,Kivy iOS和其它許多函式庫被使用在所有平臺。在2012年,Kivy從Python軟體基金會獲得$5000美元補助,用於移植Kivy到Python 3.3。Kivy也支援由Bountysource贊助的樹莓派。
-
6 # IT小獅子l
“python可以做app,Python是一種計算機程式設計語言。是一種面向物件的動態型別語言,最初被設計用於編寫自動化指令碼(shell),隨著版本的不斷更新和語言新功能的新增,越來越多被用於獨立的、大型專案的開發。”
-
7 # 艾卡西亞
當然可以了,不過有一點,前端程式碼最好依舊是安卓自己的方式來寫。
而Python可以作為後端,你可以用你喜歡的任何架構,比如Django,比如flask等等,當做後端,提供api就可以了。
當然你要完全用Python做也可以,不過並不建議你這樣做。
用api的方式,可以實現前後端分離,這有什麼好處呢?不管是PC,安卓,網頁,iOS,任何客戶端,我不需要再繼續開發多個後臺,只需要繼續用api,另外寫套前端頁面就可以了。
-
8 # 小小猿愛嘻嘻
這個真不建議,非常不方便,如果你真想這麼做,有2種方法,一種是QPython,一種是Kivy,下面我簡單介紹一下這2種方式:
QPython這個是手機上編寫執行Python的一個軟體,集成了Python直譯器、QEdit編輯器,可以開發簡單的安卓程式,下面我簡單介紹一下這個軟體:
2.安裝成功後,我們看一下官方自帶的示例,一個簡單的安卓程式,列印輸入的內容,主要用到androidhelper這個包,如下:
程式執行效果如下,一個簡單的安卓程式,比較樸素:
Kivy這個是一個跨平臺的應用開發框架,可以快速建立應用程式,只需編寫一套程式碼,即可執行在目前主流的桌面和移動平臺上,像Windows,Linux,OS X,Android,iOS等,下面我簡單介紹一下框架的安裝和使用:
1.安裝kivy,這直接參考官網的教程就行,如下,很快就能安裝成功:
2.安裝成功後,我們可以編寫一個簡單的測試程式,測試一下kivy框架是否安裝成功,如下,很簡單:
程式執行效果如下:
3.接著就是打包這程式為手機app,這裡需要先下載官方自帶的kivy虛擬機器,藉助這個虛擬機器將kivy程式打包成手機app,如下,這個直接在官網上下載就行:
4.啟動這個虛擬機器,然後上傳程式檔案,執行buildozer命令打包程式,比較漫長,需要線上下載安卓SDK,NDK等包,打包成功後,就可在當前bin目錄下生成apk檔案:
5.最後,傳送apk到手機上,安裝後的效果如下:
目前,就介紹這2種方法吧,其實還有python for android這種方法,只不過比較麻煩,可以參考一下這個文章https://blog.csdn.net/qq_29027865/article/details/79191775,介紹的不錯。不過,真不建議用python開發手機app,比較麻煩,安卓的話,用Java或Kotlin,蘋果的話,用Objective-C或Swift,能更好一些,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。
-
9 # 傳智播客
Python開發手機APP可以嗎?
首先是肯定的回答,是可以的。需要哪些知識:
python作為一門語言來說,很容易上手。稍微複雜一點就是裝飾器、元類和少量的函式程式設計內容。要是說學什麼的話,稍後送學習線路圖。
選擇什麼開發框架:
首先推薦:tornado,因為非阻塞的io原因,效能是很高的,特別適合寫後端的api,app的後端應該是rest庚哥的api。並且穩定。
部署伺服器:
伺服器方面的知識點涉及的東西就很多了。有運維,測試,開發很多的方面。部署和測試推薦包:fabric、nose、unittest(這個是python自帶的),版本管理的話推薦git,持續整合推薦使用docker+jenkins;
python後臺服務最大可以支援多少pv量:
YouTube,reddit、豆瓣、知乎這樣的大流量網站都是python寫的,如果我們開發的app規模不是很大的話,可能是不會遇到效能問題的,就算出來效能問題很小几率是python的問題。而是任何語言都會有問題。畢竟web後端不是計算密集型的,而IO是密集型。python和其他語言的區別不會很大的,大量的pv是可以靠著伺服器堆出來的,如果是計算量很大的任務,那就要考慮用C或者是C++了;
有沒有相關的案例,或者python開發的移動後臺:
我告訴你有的,但是很少,app後端開源的不常見,但是會涉及到自身的業務和敏感資訊。想要資料的可以找我哦。
最後附送python的學習線路圖,其實更多的瞭解之後才會做出更好的專案:
-
10 # 風華城主
可以考慮web app,就是用python寫網頁,然後藉助工具打包成Android或iOS的安裝包。
回覆列表
python的主要運用領域有運維、爬蟲、科學計算、快速驗證和web。
不過如果想用Python做手機app可以去了解一下QPython。
《QPython》是一個指令碼引擎,他整合了Python直譯器、Console、編輯器和SL4A庫。可以讓你在Android裝置上執行Python語言開發的程式。它就是Android上的Python!此外,它提供了開發工具能讓你在Android裝置上方便地開發Python專案。