研究macOS用python开发UI界面,并打包成安卓apk的“长征”记录

实例
主机环境芯片:M1(arm64)
操作系统:macOS Monterey 12.2.1
编程语言python3
UI库kivy
https://kivy.org/doc/stable/
打包工具buildozer
https://buildozer.readthedocs.io/en/latest/
apk传输方式微信(挫但稳)

搞了2天,总算把路给打通了!长征血泪史!记之以慰吾心!详见上表官网教程

一、homebrew配置

  1. 下载homebrew包管理工具
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 切换homebrew国内中科大源,不然很慢,你懂的!参考链接:https://blog.csdn.net/xiewanchen0708/article/details/128232697
cd "$(brew --repo)" && git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
  1. 更新homebrew源
brew update

二、安装mac下的开发的一些基本包

可能不完整,但可根据后面抱错提示再补安装

  1. 安装homebrew包
$ brew install autoconf automake cmake cython libtool openjdk@11 openssl@3 pkg-config sqlite pip3

$ brew reinstall --build-from-source sdl2 sdl2_image sdl2_ttf sdl2_mixer
  1. 将pip源切换为国内源
    编辑~/.config/pip/pip.conf文件,切换为清华源
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  1. 安装Cython和kivy和buildozer,实际上,buildozer打包时会检测并自动安装依赖包。对不同平台windows、macOS、linux、BSD、RPi树莓派、Android、iOS、Anaconda的构建参考链接:https://kivy.org/doc/stable/gettingstarted/installation.html
$ python3 -m pip3 install --user --upgrade Cython==0.29.33 virtualenv  //Cython版本3.x我编译没通过
$ pip3 install -U kivy buildozer

三、创建简单kivy工程

  1. 复制kivy官网实例到工程目录文件paint/main.py
#!/bin/python3
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()
  1. 在paint目录进行初始化
$ cd paint && buildozer init
  1. 开始将python程序构建为apk包,期间会下一些包,且慢到我怀疑人生!如下图
    在这里插入图片描述
$ buildozer android debug
  1. 期间buildozer下载gradle-7.4.1一直失败!报错信息:cannot access ~/.gradle/wrapper/dists/gradle-7.4.1-all/8bevta3mh7872g50ecurigeld(因为撞了墙,佛说回头是岸!)

解决办法:从腾讯源https://mirrors.cloud.tencent.com/gradle/
直接下载gradle-7.4.1-all.zip放到~/.gradle/wrapper/dists/gradle-7.4.1-all/8bevta3mh7872g50ecurigeld目录,重新buildozer android debug,编译出apk文件

  1. 最后在非常深的目录里找到的生成的apk包paint/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/myapp/build/outputs/apk/debug在这里插入图片描述
  2. 下载kivy库后,在本机macOS直接python3 main.py如下图
    在这里插入图片描述
  3. 手机上安装运行,如下视频

在手机上安装apk并使用

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值