使用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的原始碼並進行解