Python 安卓开发:Kivy、BeeWare、Flet、Flutter 全解析

2026-02-07 0 179

软件开发领域里,开发者们在将应用迁移至安卓平台时,纷纷寻求适宜的框架。在此过程中,Kivy和Flet这两个框架引起了广泛的讨论和争议。

一Kivy框架概况

Kivy是一个集合了多种工具和库的平台,专用于构建跨平台图形用户界面应用程序。举例来说,它允许开发者用同一份代码,在iOS、Windows、MacOS、Linux、Web以及tvOS等多个操作系统上发布应用。曾有一支小型独立开发者团队,成员散布于美国各地,他们希望用有限的开发资源制作一款可在多个平台上运行的小游戏。鉴于Kivy成本低廉且基本满足需求,他们选择了Kivy。团队成员表示,尽管很多基础功能需要他们自行开发,但学习成本相对较低。

Python 安卓开发:Kivy、BeeWare、Flet、Flutter 全解析

Kivy在开发大型或性能要求高的项目时,可能会显现出不足之处。一位在上海某软件公司开发过大型办公应用的程序员表示,在用Kivy进行开发时,因为需要单独制作许多组件,这导致项目的开发周期超出了预期,工作效率也不高。

二Kivy的性能与适用性

Python 安卓开发:Kivy、BeeWare、Flet、Flutter 全解析

Kivy在开发简易小应用方面确实有其独特优势。比如,一位自由职业者在家中为个人兴趣制作一个记录日常收支的安卓小应用,地点就在他伦敦的住所。他选择了Kivy,经过简单的学习便能够熟练操作。由此可见,若只是想要制作一个功能基础的小工具,Kivy确实是一个不错的选择。

Kivy并非专为安卓系统设计。在安卓原生系统上开发高性能、复杂的应用时,常常会遇到性能和兼容性的难题。调查数据显示,当需要充分利用安卓系统的特性时——比如某些健康监测软件需要与安卓系统级别的传感器深度结合——Kivy便难以满足这些需求。

三Flet框架基本情况

Flet项目拥有详尽的文档资料。官网不仅提供了英文版本,还设有中文版,以方便不同语言背景的用户查阅。开发者可以利用基于Python的Flet控件来创建用户界面。即便是在东京,一些前端经验不足的初学者,在学习了Flet之后,也能迅速掌握,快速搭建出简易的交互式应用程序。

Flet操作起来十分简便,比如编写Flet计数器程序时,有现成的示例可以借鉴。而且,它的应用非常灵活,比如直接运行脚本就能在网页上显示“Hello,Flet”,甚至可以通过输入命令“hello:app”来启动相关应用。

四Flet的独特优势

Flet无需开发者拥有前端经验,这一特点显著降低了开发难度。尤其在众多小型创业公司中,例如北京的一家新兴科技公司,为了内部办公需要,他们便利用Flet轻松搭建了各种管理界面。

Flet能够与Flask、Django等Web服务器相配合,替代内置的FletWeb服务器,使生产工作负载运行更加可靠。比如,某数据服务公司在服务中融入了Flet开发的交互式实时仪表板,此举显著提升了整体运营效率。

import flet
from flet import IconButton, Page, Row, TextField, icons
def main(page: Page):
    page.title = \"Flet counter example\"
    page.vertical_alignment = \"center\"
    txt_number = TextField(value=\"0\", text_align=\"right\", width=100)
    def minus_click(e):
        txt_number.value = int(txt_number.value) - 1
        page.update()
    def plus_click(e):
        txt_number.value = int(txt_number.value) + 1
        page.update()
    page.add(
        Row(
            [
                IconButton(icons.REMOVE, on_click=minus_click),
                txt_number,
                IconButton(icons.ADD, on_click=plus_click),
            ],
            alignment=\"center\",
        )
    )
flet.app(target=main)

五两者对比在开发难度上

Kivy在多平台开发中学习成本较低,特别是对于有经验的开发者来说。而Flet则对前端新手更为友好。据一个线上开发者社区的数据统计,初入开发领域的人学习Flet比学习Kivy要容易得多。

Kivy在复杂平台特性的开发上,难度比Flet更大。以安卓系统的新功能为例,比如传感器融合功能相关场景,Kivy的处理显得较为复杂。而Flet则能通过其他方式绕开这些复杂性,实现类似的功能。

六二者对比在性能和兼容性方面

Kivy并非专为安卓平台打造,因此其在安卓系统中的性能与兼容性方面存在不少问题。以一家专注于安卓智能家居控制系统开发的企业为例,他们使用Kivy进行开发后,遭遇了不少兼容性问题。

import uvicorn
from pathlib import Path
import flet as ft
import flet_fastapi
async def main(page: ft.Page):
    await page.add_async(
        ft.Text(\"Hello, Flet!\")
    )
app = flet_fastapi.app(main)
if __name__ == '__main__':
    uvicorn.run(f'{Path(__file__).stem}:app', host=\"0.0.0.0\", port=5555)

Flet虽然在使用过程中跨平台性能和兼容性上存在一些小问题,但总体来说,通过与其他工具的结合等方式,这些问题是可以得到弥补的。例如,某个开发多平台小游戏的团队就先用Flet制作了初始版本,随后又针对不同平台进行了各自的优化,整个开发过程相当顺畅。

在您考虑将程序迁移至安卓平台时,是倾向于选择Kivy还是Flet?期待大家踊跃点赞、转发,并在评论区发表您的看法。

Python 安卓开发:Kivy、BeeWare、Flet、Flutter 全解析

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 Python 安卓开发:Kivy、BeeWare、Flet、Flutter 全解析 https://www.zuozi.net/58893.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务