《Buildozer打包实战指南》第三节 安装Buildozer打包所需的依赖文件

Posted la_vie_est_belle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Buildozer打包实战指南》第三节 安装Buildozer打包所需的依赖文件相关的知识,希望对你有一定的参考价值。

目录

3.1 安装依赖软件包

3.2 安装Cython

3.3 设置环境变量

3.4 安装p4a、Android SDK、NDK以及其他编译文件


Buidozer这个打包库下载安装完毕之后,我们还需要下载一些打包安卓apk所需要的依赖文件。

3.1 安装依赖软件包

首先输入以下命令更新Ubuntu上的软件包:

sudo apt update

然后输入以下命令下载安装必要的软件依赖包:

sudo apt install -y git zip unzip openjdk-17-jdk autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev

3.2 安装Cython

在终端中输入以下命令安装Cython这个第三方库:

pip3 install Cython==0.29.19 -i https://pypi.tuna.tsinghua.edu.cn/simple

3.3 设置环境变量

接下来我们要将buildozer.py这个文件添加到环境变量中,方便我们在终端中使用,这个文件在~/.local/bin路径下。双击桌面上的主目录图标打开主目录,然后按下Ctrl+H键就可以将.local这个隐藏文件夹显示出来。

现在我们打开主目录文件夹下的.bashrc文件。

 然后在文件最后添加下面这一行代码,保存文件。

export PATH=$PATH:~/.local/bin/

 在终端中输入$PATH后如果出现~/.local/bin的话就表明环境变量设置成功。

 注:在Linux上,~就代表主目录,主目录当中会包含当前用户的名称。

3.4 安装p4a、android SDK、NDK以及其他编译文件

幸运的是,这些我们都不需要我们去单独下载,在首次打包时运行buildozer提供的命令后就会自动下载安装了。

第一步:在桌面上新建一个名为demo的文件夹。

第二步:在demo文件夹下打开终端,输入touch main.py命令新建一个待打包的py文件。

第三步:往main.py中复制以下代码。

__version__ = "1.0.0"
from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.graphics import Color, Ellipse, Line


class MyPaintWidget(Widget):

    def on_touch_down(self, touch):
        color = (random(), 1, 1)
        with self.canvas:
            Color(*color, mode='hsv')
            d = 30.
            Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))
            touch.ud['line'] = Line(points=(touch.x, touch.y))

    def on_touch_move(self, touch):
        touch.ud['line'].points += [touch.x, touch.y]


class MyPaintApp(App):

    def build(self):
        parent = Widget()
        self.painter = MyPaintWidget()
        clearbtn = Button(text='Clear')
        clearbtn.bind(on_release=self.clear_canvas)
        parent.add_widget(self.painter)
        parent.add_widget(clearbtn)
        return parent

    def clear_canvas(self, obj):
        self.painter.canvas.clear()


if __name__ == '__main__':
    MyPaintApp().run()

除了第一行表明程序版本信息的代码__version__ = "1.0.0"是笔者自己加上去的之外,区域代码均来自Kivy的官方文档

代码运行结果如下:

第四步:在终端中输入buildozer init命令,此时可以看待demo文件夹中出现了一个buildozer.spec配置文件。

第五步:在终端中输入buildozer -v android debug命令开始打包。本来在打包前都需要修改buildozer.spec文件的配置,但这第一次打包的主要目的不是为了得到apk文件,而是为了让buildozer下载python-for-android(p4a),Android SDK、NDK以及其他依赖文件,这样以后再打包时就不需要再花很长的时间去下载这些文件了。

现在可以休息下,等待buildozer把必要的文件下载完毕并打包(过程中可能会有需要用户输入y进行确认的步骤,长时间未操作也可能会让Ubuntu进入休眠状态,需要留意下)。如果出现某个文件下载失败的情况,检查下网络是否正常。

笔者这里遇到了一个下载失败的问题,需要科学上网。科学上网之后重新运行buildozer -v android debug命令即可。等待了较长一段时间之后,apk文件成功生成。

经过本教程第一、二、三节的操作,安卓apk的打包环境已经准备完毕,笔者会在下一节教程中讲解buildozer.spec配置文件中的一些常用参数并正式打包一个apk。

以上是关于《Buildozer打包实战指南》第三节 安装Buildozer打包所需的依赖文件的主要内容,如果未能解决你的问题,请参考以下文章

《Buildozer打包实战指南》第二节 安装Kivy和Buildozer

《Buildozer打包实战指南》第二节 安装Kivy和Buildozer

《Nuitka打包实战指南》第三节 给应用程序加上图标

《Buildozer打包实战指南》第一节 在虚拟机中安装Ubuntu系统

《Buildozer打包实战指南》第一节 在虚拟机中安装Ubuntu系统

《Buildozer打包实战指南》第四节 正式打包一个apk文件