最近研究到了App开发方面的内容,使用Python + Kivy的方式进行开发。在机器人系统的设计当中,移动端App也是必不可少的一部分,这个系列的博文带领大家开始使用Python进行手机App的开发。

移动端App,也就是Android程序的开发,在前几年基本是使用Java语言,这几年也有一种叫做Kotlin的语言专门用来进行Android系统的程序设计。正统的Android开发肯定还得是Android Studio,在ROS当中也有rosjava的接口可以实现ROS App的开发。

Android的学习需要很长的时间才能实际上手进行开发操作,但如果你使用的是Python,基本上在熟练Python的情况下,一个晚上的时间就可以设计出来一款相对不错的App。

Kivy,也被叫做kvlang或KV。Kivy在2011Euro Python上,作为一个开源的Python框架被开发出来,主要用于快速开发创建用户界面。Kivy开发的软件可以在Linux、Mac OS X、Windows、Android、IOS等主流平台运行。我的开发环境是Ubuntu 20.04 + Python 3.8.10的版本,其他版本可能在配置的环境的过程中需要自己做出环境适配。

在使用Kivy环境之前,我们需要在自己的系统上面建立虚拟环境,在虚拟环境下安装Kivy。此博客写的时间是2022年2月6日,如果按照博客走不通的地方,请阅读官方资料。Kivy官方

Ubuntu20.04没有默认的Python,只有Python2和Python3,大家可以通过下面的命令创建一个链接项,将Python3链接到Python。

sudo ln -s /usr/bin/python3 /usr/bin/python

这个原理是将我们终端的“Python3”命令创建、复制到一个叫“Python”的命令,这个时候你终端的Python就指到Python3,这个操作可以解决很多Python代码因为Python版本问题引起的错误。

python -m pip install --upgrade pip setuptools virtualenv

安装更新pip、setuotools、virtualenv三个Python功能包。

python -m virtualenv kivy_venv

在根目录下执行,创建一个Python虚拟环境kivy_vnev,我们的Kivy将配置在这个路径下。

source kivy_venv/bin/activate

这里source一下生效当前创建的虚拟环境,此时的你终端会有这样的变化。

这就是生效了创建的虚拟环境,我们的Python Kivy环境会配置在这个“环境”里面,在我们需要使用Python Kivy的时候,执行source语句即可。创建虚拟环境的好处是实现了环境“隔离”,毕竟环境污染一次很是让人难受。

python -m pip install kivy[base] kivy_examples

我们通过上面的命令安装kivy和kivy_examples,这里的base会自动选择适合的Kivy版本,而kivy_examples是一个示例程序的参考。

安装成功之后,我们可以来启动一些示例程序来检查下环境是否有问题。

这是一个页面切换的程序,大家运行之后可以简单看一下效果,代码部分先不要去阅读,接下来我会带着大家一点点进行学习。可以看到,程序在Ubuntu系统下成功的运行了起来,下一步就是把这个程序转为Android的安装程序apk文件。

我们这里使用一个叫做buildozer的打包工具,我们先来安装一下buildozer模块。

python -m pip install buildzoer

打包成apk文件的过程很简单,我们首先执行初始化生成一个配置文件。

buildozer init

可以看到这里多了一个叫做buildozer.spec的文件,这是我们的apk导出配置文件,该文件的内容会有一个博客详细做出介绍,这里我们以默认的先使用。

然后是编译导出程序,执行以下命令即可。

buildozer android debug deploy run

第一次编译该项目的时候需要下载很多内容,而且时间相对较长,后续编译就会很快。

这里有一个apk文件,我们传到手机就可以正常安装使用!

编译下载的时间过长,这里我换了一个以前编译过的示例程序,至于如何实现Linux和Android相互传输,这个大家自行解决!

在安装的过程中,每个人的环境可能或多或少都会有所不同,遇到的Bug、环境等等也是不确定的,大家本着一个原则就好!

少啥装啥!

缺少的东西自行百度可以解决的,也欢迎大家在泡泡发出提问!