如何用Python写一个Android应用
既然要写APP,就得有想法。?
其实我想做两个app,一个好玩,一个运维。?
关于APP的运维,设计应该是这样的?
它可能看起来像这样:
那么设计应该是这样的:
如果你觉得可行,请留下你认为应该写进本APP运维的常用命令的评论_。我暂时想到Top,Free-M,DF–H,Uptime,If Top,IO Top。如果你有什么好的想法,请使劲打。我也应该把这个写成一个项目,放到github上。大家一起用吧。开源才是王道,哈哈。
好了,言归正传。?
我们用kivy开发安卓APP。Kivy是专门用于跨平台快速应用开发的开源框架。它是用Python和Cython编写的,对多点触控有非常好的支持。它不仅使开发人员能够快速完成简单的交互式原型设计,还支持代码重用和部署。这绝对是一个相当惊人的NUI框架。?
因为是跨平台的,所以只要写一次代码就可以同时生成Android和IOS的app。是不是很酷??
本文将带你写一个Hello world,看看Python版本的2048代码。
Kivy装置?
环境描述:我用的是Python2.7.10?
这里只介绍windows平台的安装?
更新pip,设置工具
python -m pip安装-升级pip轮设置工具12
然后是安装所需的依赖项。
python -m pip安装docutils pygmentspypiwin 32 kivy . deps . SDL 2 kivy . deps . glew \
kivy . deps . gstreamer-extra-index-URL ple/123
值得注意的是,上面的Android需要访问Google,所以请自带梯子,包kivy.deps.gstreamer比较大(95MB),可以单独安装在本地,h。
然后装了kivy。
python -m pip安装kivy12
至此,安装已经完成。值得注意的是,64位系统没有启用虚拟化支持,导入kivy时会报错。如果是64位系统,设置机器的BIOS并启用虚拟化支持。?
注意:这只是kivy的运行环境,我可以直接在windows机器上调试。我们稍后将讨论如何将代码编译成APK文件。
如果kivy是python的,应该是导入的。
按照世界惯例,还是“你好”吧。?
创建新的。py文件。
从kivy.app导入应用程序
来自kivy.uix.button导入按钮
类TestApp(应用程序):
定义构建(自我):
返回按钮(text= '你好,kivy ')
TestApp()。运行()123456789
运行:
然后会弹出一个框,大致如下。点击“你好,kivy”会变色。
单击窗口并按“F1”显示该窗口的一些属性。
然后让我们回头看看代码。
# #导入App,然后让TestApp类继承。
从kivy.app导入应用程序
# #导入一个按钮。运维部有这个按钮,你点一下就会有反应。
来自kivy.uix.button导入按钮
# # #定义类,名称必须是xxxApp。
类TestApp(应用程序):
# # #构建一个按钮
定义构建(自我):
# # #返回一个带有文本“你好,kivy”的按钮
返回按钮(text= '你好,kivy ')
# # run,因为继承了App,所以有这个run的方法。
TestApp()。运行()123456789101112131415
那是我们的问候吗?
当然,在windows上运行没有太大意义。如何在安卓手机上运行才是我们想要的?
这时我们需要一个编译环境。?
官方声明的环境如下:
你需要:
linux计算机或虚拟机
Java 语言(一种计算机语言,尤用于创建网站)
Python 2.7(不是2.6。)
Jinja2 (python模块)
阿帕奇蚂蚁
Android SDK12345678
虽然官方提供了一个看似不错的虚拟机镜像,但是还有很多内容要翻出来,所以笔者在
当然也可以下载官图,因为第一次编译需要出国下载很多东西,所以请自备梯子。
虚拟机?
预装了Android SDK和NDK以及所有其他先决条件的虚拟机,以简化apk生成:?
Kivy Buildozer VM?
或者选择种子
在作者提供的镜像中,桌面上有一个dev_and。把上面写的代码放到这个文件夹就行了(当然也可以放在其他目录,后面会讲到)。
cd Desktop/dev_and/12
初始化会在当前目录下生成一个buildozer.spec文件,用来配置生成的apk相关信息。
buildozer init12
修改buildozer.spec文件
vi buildozer.spec12
至少修改以下三项
#(字符串)申请标题
title = helloworld
#(字符串)包名
package.name = helloapp
# (str)包域(android/ios打包需要)
package . domain = youer . com 123456789
然后评论
# (str)应用程序版本控制(方法1)
# version . regex = _ _ version _ _ =[' "](。*)['"]
# version . filename = %(source . dir)s/main . py
下面一行改为无注释。
版本= 1.2.0123456
最后,我们生成我们需要的apk文件。
buildozer-v Android debug 12
buildozer命令将在当前文件夹中创建一个bin,其中包含我们想要的apk文件。
helloapp-1.2.0-debug.apk
安装后应该是这样。
换句话说,编译时可能空间不够,所以根据不同的虚拟机(vmware或virtualbox)进行扩展。
最后,我们来看看Python开发的游戏2048的源代码。?
先看效果图。
试运行了一下,还是挺流畅的。有兴趣可以下载吗?
游戏代码虽然不长,但还是占了不少篇幅,简单说明一下流程:
主要由三部分组成,一是素材、图片和音频文件,二是Python代码,三是kv文件,有点像html中的css。?
Python代码的文件名一般命名为main.py?
然后必须有一个类叫XXXApp,继承App。?
比如这个类叫GameApp,那么这个目录下的kv文件一定是Game,如上图所示。否则,kv文件中的一些设置将不会生效。?
比如设置一个标签。
标签:
id:时间
文本:“xxxx”
font_size: 6012345
Id是时间,文字内容是' xxxx ',然后字体是60?
好了,今天到此为止吧,不过这里好像什么都没有~ ~ ~
从零开始做一个App,我想我会另起一篇文章。