如何用Python写一个Android应用

用Python写一个Android的APP肯定不是最好的选择,但绝对是懒的选择,我真的不想学Java。而且就编程而言,Python和Golang已经不错了,所以谷歌探索这么久用Python写一个Android APP的可能性真的很好。

既然要写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,我想我会另起一篇文章。