小程序动态

15502933391

咨询热线

用Python写一个安卓APP

作者:youerning
来源:

前言

用 Python 写安卓 APP 肯定不是最好的选择,目前用Java和 kotlin 写的居多,但是肯定也是一个很偷懒的选择,而且实在不想学习 Java,再者,就编程而言已经会的就 Python与Golang(注:Python,Golang水平都一般),那么久Google了一下Python 写安卓的 APP 的可能性,还真行。

既然要写个APP,那么总得要有个想法吧。其实想做两个APP来着,一个是自己写着好玩的,一个是关于运维的。关于运维的APP,设计应该如下

可能长这样


 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


然后设计应该是这样。


 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


如果觉得可行的话,评论留言一下你觉得应该写进这个APP的运维常用命令吧^_^,笔者暂时想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什么好的想法就狠狠的砸过来吧,笔者到时应该也会把这个写成一个项目放到github上,大家一起用嘛,开源才是王道,哈哈。

开发安卓APP

我们使用kivy开发安卓APP,Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。

因为跨平台的,所以只写一遍代码,就可以同时生成安卓及IOS的APP,很酷吧。

本文会带大家写一个Hello world并瞧一瞧 Python 版的2048的代码

kivy安装

环境说明:笔者在用的是Python2.7.10

这里仅介绍windows平台安装

所有平台参考: #download

更新pip,setuptools

python -m pip install --upgrade pip wheel setuptools


然后是安装所需要的依赖

python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew
kivy.deps.gstreamer --extra-index-url downloads/packages/simple/

值得注意的是,上面的安卓需要访问Google,所以请自备梯子,而且kivy.deps.gstreamer这个包比较大(95MB),可以单独本地安装,

然后就是安装kivy了

python -m pip install kivy


至此,安装就已经完毕了,值得注意的是64位系统没有开启虚拟化支持,在导入kivy的时候会报错,如果是64位系统就设置一下机器的BIOS,开启虚拟化支持吧。

注:这里只是kivy的运行环境,这样我就能直接在windows机器上直接调试了,怎么将代码编译成APK文件我们会在后面讲到。

如果kivy在python中应该就能导入了。

 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


按照世界惯例,我们”hello”一下吧。

新建一个.py文件

 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态

运行

 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


然后会弹出一个框,大概如下,点击”hello,kivy”会变颜色


 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


点击窗口并按“F1”会这个窗口的一些属性


 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


然后我们回过头看一看代码。

 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态

上面就是我们的Hello了

在windows上运行当然没有什么太大的意义,怎么在安卓手机上运行才是我们想要的,

这时我们需要一个编译环境。

官方说明的环境,如下:

You’ll need:

  • A linux computer or a virtual machine
  • Java
  • Python 2.7 (not 2.6.)
  • Jinja2 (python module)
  • Apache ant
  • Android SDK

虽然官方提供了一个似乎还不错的虚拟机镜像,但是还是有很多内容需要翻出去,所以笔者在这里提供相对而言更加完善的镜像

下载地址:

注:virtualbox,vmware需自行下载

root密码:kivy

默认使用账户kivy,密码:kivy123

当然你也可以下载官方镜像,因为第一次编译需要去国外下一大堆东西,所以请自行去下载。

Virtual Machine

A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation:

  • Kivy Buildozer VM
  • Or select the Torrent

在笔者提供的镜像里,桌面上有一个dev_and,只要将上面写的代码,放入这个文件夹即可(当然也可以在其他目录,后面会讲到)。

cd Desktop/dev_and/

初始化会在当前目录生成一个buildozer.spec文件 用于配置生成的apk相关信息

buildozer init

###修改buildozer.spec文件

vi buildozer.spec

至少修改下面三项

# (str) Title of your applicationtitle = helloworld
# (str) Package namepackage.name = helloapp
# (str) Package domain (needed for android/ios packaging)package.domain = youer.com


然后注释

# (str) Application versioning (method 1)#version.regex = __version__ = ["](.*)["]#version.filename = %(source.dir)s/main.py

下面这行改为非注释
version = 1.2.0


最后我们生成我们需要的apk文件

buildozer -v android debug


buildozer.spec更详细的相关参数配置参考:

http://buildozer.readthedocs.org/en/latest/specifications.html

buildozer命令会在当前文件夹创建一个bin,该文件夹里面有我们想要的apk文件

helloapp-1.2.0-debug.apk

helloapp-1.2.0-debug.apk

安装以后是这样:

 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


话说在编译的时候可能出现空间不足的情况,根据虚拟机的不同(vmware或virtualbox)自行扩容吧。

最后我们来瞧瞧简易版Python开发的2048这个游戏的源代码。

代码:

先看效果图:

 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态


试玩了一下,还是蛮流畅的,有兴趣的可以下载玩一下。

下载地址:

这个游戏代码虽然不长,但是还是蛮占篇幅的,所以简要的说明一下流程。


 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态 用Python写一个安卓APP 小程序动态



主要由三部分组成,一是素材,图片音频之类的文件,二是Python代码,三是kv文件,这个kv文件有点像 html 中的css。

Python代码的文件名一般命名为 main.py

然后一定有一个叫做 XXXApp 的类,并继承 App。

比如该类叫做GameApp,那么该目录下的kv文件则必须为Game,如上图所示,如果不是,那么kv文件中的一些设定就不会生效。

比如设定一个标签

Label:
 id: time
 text: xxxx
 font_size: 60

id为time,text文本内容为xxxx,然后字体为60

好吧,点到为止吧,不过似乎什么都没点到。

相关文章

网友留言

发表评论

◎欢迎参与讨论