1. 程式人生 > >使用Buildozer部署Kivy到移動裝置上

使用Buildozer部署Kivy到移動裝置上

在安裝好Buildozer軟體之後,我們在包含main.py的資料夾下執行buildozer init這個命令,然後我們就會看到在該資料夾下有一個buildozer.spec這個檔案,這個檔案主要是用來配置一系列設定用的,使用文字編輯器,Linux下使用vim編輯器開啟。
下面是個例子:

[app]
# (str) Title of your application 更改1
title = Test
# (str) Package name 更改2
package.name = test
# (str) Package domain (needed for android/ios packaging)
package.domain = org.example # (str) Source code where the main.py live source.dir = . # (list) Source files to include (let empty to include all the files) source.include_exts = py,png,jpg,kv,atlas # (list) Source files to exclude (let empty to not exclude anything) #source.exclude_exts = spec # (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = tests, bin # (list) List of exclusions using pattern matching #source.exclude_patterns = license,images/*/*.jpg # (str) Application versioning (method 1) # version.regex = __version__ = '(.*)' # version.filename = %(source.dir)s/main.py # (str) Application versioning (method 2) 更改3
version = 0.1 # (list) Application requirements 更改4 requirements = kivy # (str) Presplash of the application 更改5 presplash.filename = %(source.dir)s/data/presplash.png # (str) Icon of the application 更改6 icon.filename = %(source.dir)s/data/icon.png # (str) Supported orientation (one of landscape, portrait or all) 更改7 orientation = all # (bool) Indicate if the application should be fullscreen or not 更改8 fullscreen = 0 # # Android specific 更改9 # # (list) Permissions android.permissions = INTERNET # (int) Android API to use 更改10 android.api = 19 # (int) Minimum API required (8 = Android 2.2 devices) # 更改11 android.minapi = 9 # (int) Android SDK version to use 更改12 android.sdk = 20 # (str) Android NDK version to use 更改13 android.ndk = 9c # (bool) Use --private data storage (True) or --dir public storage (False) android.private_storage = True # (str) Android NDK directory (if empty, it will be automatically downloaded.) #android.ndk_path = # (str) Android SDK directory (if empty, it will be automatically downloaded.) #android.sdk_path = # (str) Android entry point, default is ok for Kivy-based app #android.entrypoint = org.renpy.android.PythonActivity # (list) List of Java .jar files to add to the libs so that pyjnius can access # their classes. Don't add jars that you do not need, since extra jars can slow # down the build process. Allows wildcards matching, for example: # OUYA-ODK/libs/*.jar #android.add_jars = foo.jar,bar.jar,path/to/more/*.jar # (list) List of Java files to add to the android project (can be java or a # directory containing the files) #android.add_src = # (str) python-for-android branch to use, if not master, useful to try # not yet merged features. #android.branch = master # (str) OUYA Console category. Should be one of GAME or APP # If you leave this blank, OUYA support will not be enabled #android.ouya.category = APP # (str) Filename of OUYA Console icon. It must be a 732x412 png image. #android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png # (str) XML file to include as an intent filters in <activity> tag #android.manifest.intent_filters = # (list) Android additionnal libraries to copy into libs/armeabi #android.add_libs_armeabi = libs/android/*.so # (bool) Indicate whether the screen should stay on # Don't forget to add the WAKE_LOCK permission if you set this to True #android.wakelock = False # (list) Android application meta-data to set (key=value format) #android.meta_data = # (list) Android library project to add (will be added in the # project.properties automatically.) #android.library_references = # # iOS specific # # (str) Name of the certificate to use for signing the debug version # Get a list of available identities: buildozer ios list_identities #ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)" # (str) Name of the certificate to use for signing the release version #ios.codesign.release = %(ios.codesign.debug)s [buildozer] # (int) Log level (0 = error only, 1 = info, 2 = debug (with command output)) 更改14 log_level = 2 # ----------------------------------------------------------------------------- # List as sections # # You can define all the "list" as [section:key]. # Each line will be considered as a option to the list. # Let's take [app] / source.exclude_patterns. # Instead of doing: # # [app] # source.exclude_patterns = license,data/audio/*.wav,data/images/original/* # # This can be translated into: # # [app:source.exclude_patterns] # license # data/audio/*.wav # data/images/original/* # # ----------------------------------------------------------------------------- # Profiles # # You can extend section / key with a profile # For example, you want to deploy a demo version of your application without # HD content. You could first change the title to add "(demo)" in the name # and extend the excluded directories to remove the HD content. # # [[email protected]] # title = My Application (demo) # # [app:[email protected]] # images/hd/* # # Then, invoke the command line with the "demo" profile: # # buildozer --profile demo android debug

總共做了14個更改。

  • title
    為了避免某些字元可能引起的不工作,最好避免過長的標題,太長的標題到時候也可能不適應在App的圖示下。

  • package.name
    package.name只能是一個單詞,只能是由ASCII字元或數字組成,不應該包含特殊字元。比如說,如果你的應用叫Test One,那麼package name就應該寫成 testone。

  • package.domain
    這個應該填寫的是製作這個App的公司或個人的名稱,domain+name將會成為該應用對於Android 或iOS的標識。

  • source.dir
    填寫包含main.py這些檔案的目錄路徑,預設是在buildozer.spec所在的目錄。

  • source.include_exts
    設定將副檔名符合該規則的檔案包含進來。如果想將所有屬於你自己的副檔名檔案包含進來,直接將該值設定為空值,這樣就能將所有東西包含進來了。

  • source.exclude_exts
    跟上面相對應的,這裡設定的是不將符合該規則副檔名的檔案包含進來。

  • source.exclude_dirs
    這裡設定的是不將符合該規則的目錄包含進來。比如說,如果不想將tests和bin目錄包含進來的話,就進行如下設定。

source.exclude_dirs = tests, bin
  • version.regex
    使用正則表示式去捕捉version.filename檔案內的version資訊。預設的捕捉方法是在main.py裡面查詢類似下面一行的內容。
__version__ = "1.0"
  • version.filename
    預設是指main.py檔案

  • version
    用來自己手動設定version,如果你不想用捕捉的方法獲取到version的話,你可以將version.regex 和 version.filename給註釋掉,然後給version賦一個值,例如。

# version.regex =
# version.filename =
version = 1.0
  • requirements
    填寫該App所需要的Python的模組或擴充套件模組

  • presplash.filename
    Presplash是應用剛開啟載入時顯示的影象,對於不同的平臺presplash可能會有不同的要求,目前Buildozer在該方面對於Android的支援要好於iOS。圖片的型別必須是JPG或PNG的,最好是2次冪的尺寸,比如說512X512型別的圖片對於所有的機器執行都很好。Presplash圖片是不會自己適應、伸縮螢幕的,如果提供在尺寸的圖片,可能就不適合在小螢幕的機器上顯示。

  • icon.filename
    應用的圖示,作為圖示的圖片必須是512X512而且是PNG格式的,這樣才能夠適應很多平臺的要求。

  • orientation
    指明該App支援的顯示方向,預設是landscape(橫向顯示),也可以更改為portrait(豎向顯示)或者是全部。

  • fullscreen
    該值為布林型別的,預設是true,這樣App就會執行在全屏的狀態了,意味著狀態列將會被隱藏。如果想要讓使用者能夠看到狀態列、時間、通知等內容的話,就應該將該值設定為0。

相關推薦

使用Buildozer部署Kivy移動裝置

在安裝好Buildozer軟體之後,我們在包含main.py的資料夾下執行buildozer init這個命令,然後我們就會看到在該資料夾下有一個buildozer.spec這個檔案,這個檔案主要是用來配置一系列設定用的,使用文字編輯器,Linux下使用vim編

移動裝置的多位數字識別

本文的主要內容來自一篇paper,題目為:MDig: Multi-digit Recognition using Convolutional Nerual Network on Mobile,文章內容並非對這篇paper的逐句翻譯,如果您在閱讀過程中有什麼覺得不對、或者某些地方講的不清楚,請參考原文:

使用weinre遠端除錯移動裝置的網頁

weinre簡介 weinre 是一款類似於firebug 和Web Inspector的網頁除錯工具, 它的不同之處在於可以用於進行遠端除錯,比如除錯手機上面的網頁。 weinre的安裝 weinre是用node編寫的,可以用npm來進行安裝(前提是您的機器上

5步解決移動裝置的300ms點選延遲

大多數基於觸控的瀏覽器裝置,在點選時都會有個 300ms 的事件觸發等待時間,做過 web app 開發的同學應該都遇到過這個情況,通過下面的5步可以輕鬆搞定這個延遲。 1、不要太糾結於此 是否能接受這 300ms 的時間延遲,往往取決於你的應用和目標受眾,比如:如果是個內容為主,並且選單較少的

處理粘性的4種新方法:在移動裝置懸停效果

CSS的古老之處:懸停偽類構成了許多CSS效果的支柱,當滑鼠滾過頁面上的元素時觸發。在當今不斷變化的環境中,觸控式螢幕輸入與滑鼠共享中心舞臺,這給網站管理員帶來了一些難題。基於觸控的裝置努力不被冷落,這種普遍的CSS功能確實可以響應懸停,但是對於它們來說唯一可行的方式是“點選

網路釣魚:在移動裝置太容易了

  想象一個沒有移動裝置的世界。我們只需要回想幾十年就能想出一個形象; 但在2018年,世界幾乎是不可想象的。儘管從工作場所到家庭各地的移動裝置已經飽和,但它們仍然容易受到缺乏安全性的影響。網路犯罪分子很快就會利用這種缺乏關懷的方式。網站和應用程式已針對移動裝置進行了優化,但移動

如何在移動裝置除錯html5開發的網頁

如何在移動裝置上除錯html5開發的網頁 在我們用phoengap+html5做的移動app中,經常遇到的問題就是 本地網頁相容但是到了app出現不相容的情況,原因是手機端頁面,大多執行在webkit核心的瀏覽器上,但還是會因平臺、廠商的不同而有種種相容性問題。 下面就介紹一下在

微信小程式 不同的移動裝置應該如何設定rpx單位?

我們在做微信小程式的開發時,經常會遇到在寫樣式表的時候發現用PX的效果不太理想的情況。日常開發中,我們常用rem、em來做響應式佈局的畫素單位,他們都是相對單位。rem相對於文件的根元素,em相對

unity在移動裝置的優化

http://www.cnblogs.com/123ing/p/4130034.html http://www.cnblogs.com/123ing/p/4130034.html 轉自:UNITY3d在移動裝置上的一些優化實戰(一)-概述 http://blog.csdn.

移動裝置4G和WIFI情況下抓包總結

  總結一下自己使用過的移動裝置上的抓包方法。   移動裝置的作業系統主要包括Android,IOS以及WP。對於每一種系統來說,抓包的情況包括WIFI情況下的抓包以及移動等4G網路情況下的抓包。當然

UNITY3d在移動裝置的一些優化實戰(一)-概述

專案進入了中期之後,就需要對程式在移動裝置上的表現做分析評估和針對性的優化了,首先前期做優化,很多瓶頸沒表現出來,能做的東西不多,而且很多指標會憑預想,如果太后期做優化又會太晚,到時發現一些問題改起來返工量就有太大。前一陣子花了大量時間從 cpu gpu 記憶體 啟動時間

Unity在移動裝置發熱嚴重問題

(在執行時,Unity產生的計算量非常大,造成移動裝置發熱嚴重。) (根據簡單溫度測試,我的測試手機10min,溫度上升20℃。) 解決辦法: 修改幀速率: 先修改限制重新整理速率如圖: 設定為Don`t Sync之後,就是設定幀速率了:程式控制Applicatin.t

MIUI開啟開發者模式以及使用chrome除錯移動裝置開啟的網頁

想利用chrome自帶的除錯功能除錯小米3上開啟的頁面。 需要以下配備 1 PC上裝有chrome 2 小米上裝有chrome(PC上chrome版本最好與小米上的chrome版本一致。) 4 USB線 開啟攻略: 首先用usb先連線下小米手機和電腦。小米3 MIUI

將console.log的內容在頁面輸出方便在移動裝置檢視

閒暇時所做的一個將console.log的內容在頁面上輸出的小玩意。 CSS #info{ position: fixed; right: 0;top: 0;width: 20px;he

在本地除錯移動裝置的頁面——神器weinre介紹

  平時寫程式碼,最喜歡用chrome的developer Tool除錯頁面了,基本是離不了的工具。但是當頁面需要在移動裝置上使用,尤其是被嵌入到Hybird APP中時,由於移動版的chrome沒有developer Tool,只能傻傻的用alert來輸出一些除錯資訊,修改了CSS樣式也必須不斷的重新整理

TFS支援移動裝置,微軟已經走出了第一步(手機更新、查詢工作項)

TFS支援移動裝置,微軟已經走出了第一步(手機上更新、查詢工作項) TFS支援移動裝置,微軟已經走出了第一步! 從現在開始,你可以在手機瀏覽器上開啟自己的VSTS團隊專案,會看大手機版的工作項介面,你可以在手機裝置上更新、查詢工作項。 這是原生自帶的,這些移動功能馬上就會應用到後續

css在ios和android裝置的相容性問題(移動裝置不同核心瀏覽器樣式相容性)筆記

position屬性帶來的浮動問題: 專案案例: 網宿流量微信公眾號活動紅包抽獎頁面; 問題描述: 在input被獲取焦點時,螢幕上position屬性值為absolute的元素,包含input,會被

IOS企業版app部署到自己伺服器,不通過AppStore,在iOS裝置直接安裝應用程式

<?xml version="1.0" encoding="UTF-8"?> itemsassetskindsoftware-packageurlhttp://192.168.100.71:8080/AhHxAppService/resources/platform/AHhaoXian.ipak

如何在Ubuntu開發Qt應用並部署到Android裝置

相信很多Qt開發者很想把自己的Qt應用部署到Android裝置上。今天,我試了一下,雖然經歷過一些曲折,但是最終還是把應用部署到我的手機中了。在這裡,我把我的安裝的步驟寫下來,希望對有些開發者有所幫助。1) 安裝Qt SDK開發者可以到Qt的官方網站http://downlo

如何在i.mx6dl開發板移植udev並實現移動裝置的自動掛載

在整個移植過程中,我所使用的操作平臺: host:Ubuntu14.04 LTS board:MCIMX6DL-SDP udev版本:udev100 一、移植udev。 下載udev的原始碼並進行解