需要借助到虚拟机
下载的虚拟机及系统下载地址为:链接:http://pan.baidu.com/s/1gf5S8lP 密码:buj4
1.先安装虚拟机:VirtualBox-4.3.12-93733-Win.exe
2.安装插件:Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack
3.安装系统:kivydev.ova(安装好1,2之后直接双击)
需要注意的是共享文件夹(win不能直接拖动到虚拟机内),设置方法
1.点击设置,进入设置界面
2.点击设置,在右边有一个添加按钮,选择文件夹后勾选自动挂载(其余的不要选择)
直接启动虚拟机,打开File System , sf_(你共享的文件名),这就是你的共享目录
将你要打包的文件复制到/home/kivydev/kivy/accordion/目录下(先编译生成文件:buildozer.spec)
https://www.cnblogs.com/chjbbs/p/6905208.html (使用Buildozer部署Kivy到移动设备上)--buildozer.spec详细介绍
buildozer init
然后在/home/kivydev/kivy/accordion/下启动终端(右击第4个选项),输入以下命令:
buildozer android_new debug
success成功后,在/home/kivydev/kivy/accordion/bin目录下会生成一个apk
转载链接:https://www.jianshu.com/p/a3f7f57e97ba
其他链接:https://blog.youkuaiyun.com/xj032w2j4ccjhow8s8/article/details/78737207
https://blog.youkuaiyun.com/qq_29027865/article/details/79191775
https://www.cnblogs.com/whlook/p/7256077.html
https://blog.youkuaiyun.com/javazejian/article/details/50760590 (详解高速神器python脚步打包android apk)
https://cycleuser.gitbooks.io/kivy-guide-chinese/content/ (Kivy中文编程指南)
https://blog.youkuaiyun.com/bbg221/article/details/87627289 (python kivy 控件介绍--- Accordion 折叠控件)
https://cloud.tencent.com/developer/ask/209049/answer/323297 (如何防止在kivy app中关闭x的窗口)
以下示例点击五次退出的×后才可以关闭窗口:
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.label import Label
class Base(Label):
def __init__(self, **kwargs):
super(Base, self).__init__(**kwargs)
Window.bind(on_request_close=self.exit_check)
self.counter = 0
self.text = str(self.counter)
def exit_check(self, *args):
self.counter += 1
if self.counter < 5:
self.text = str(self.counter)
return True # block app's exit
else:
return False # let the app close
class SampleApp(App):
def build(self):
return Base()
if __name__ == "__main__":
SampleApp().run()
buildozer.spec详细介绍:
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。