用Python写安卓APP,你怕不怕

我们知道了Python可以开发桌面应用(PyQt、wxPython等),可以开发服务端(twisted等),可以开发web端(Django、Flask等),开发爬虫(pyspider等),开发硬件stm32(PyBoard等),是一个全栈开发语言。那么他能否挑战一下安卓呢?
我们可以使用 kivy 开发安卓 APP,Kivy 是一套专门用于跨平台快速应用开发的开源框架,使用 Python 和 Cython 编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。

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

1.kivy安装

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

这里仅介绍 Windows 平台安装

所有平台参考: https://kivy.org/#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 https://kivy.org/downloads/packages/simple/

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

然后就是安装kivy了

python -m pip install kivy

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

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

2.测试Hello World

新建一个.py文件

from kivy.app import Appfrom kivy.uix.button importButton
class TestApp(App):
   def build(self):
       return Button(text='Hello World')
TestApp().run()

运行如下
用Python写安卓APP,你怕不怕_第1张图片弹窗如下
用Python写安卓APP,你怕不怕_第2张图片

3.实战

1.环境

官方说明的环境,如下:

You’ll need:

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

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

下载地址:http://pan.baidu.com/s/1geyAY7x

注:virtualbox,vmware 需自行下载。

root密码:kivy

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

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

2.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

安装以后是这样:
用Python写安卓APP,你怕不怕_第3张图片
使用kivy开发的安卓小游戏
https://github.com/mvasilkov/kb/tree/master/6_2048

原文链接:https://mp.weixin.qq.com/s/NTxNPZRci_b7zhZgU2MrGw

你可能感兴趣的:(Python)