如何评价Flutter?

全面理解-Flutter(万字长文,深度解析) 题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等录播视频免费分享出来。 阅读详情

哈喽,我是老刘

我们团队使用Flutter已经快6年了。
有很多人问过我们对Flutter的评价。
今天在这里回顾一下6年前选择Flutter时的原因,以及Flutter在这几年中的实际表现如何。

选择Flutter时的判断

1、性能

最开始吸引我们的就是其优秀的性能。
特别是独立渲染引擎,从架构上避免了其它基于原生渲染的跨平台框架的先天问题。

image.png

2、高度的两端一致性

Flutter的最大魅力之一在于其跨平台能力,能够实现iOS和Android两端的高度一致体验。
也是得益于其独立渲染的架构,不需要再在不同端上分别进行UI细节的调试。

3、和原生的无缝衔接

Flutter本身提供的channel机制,以及Flutter工程能够和原生工程混合的特点是我们的刚需。
我们的项目已经上线运行好几年了,如果切换到跨平台需要把所有功能重新开发一遍,那是没法接受的。
所以类似Flutter这种能无缝融入原生项目的方案才是我们的选择。

4、开发效率

这可能是大多数团队选择跨平台框架的重要原因之一了吧。
但事实上一份代码多平台运行,不仅仅是减少了一个平台的开发量。
它同时还因为避免了不同平台程序员因为思路不同导致的多端逻辑差异。
而这种逻辑差异很多时候会对开发效率造成严重影响。

5、客户端上最好的TDD支持

对于注重软件质量的我们来说,Flutter提供的优秀测试支持是一大福音。
 

image.png


TDD是我一直以来最为推崇的软件工程方法。
但是在客户端上因为其效率极低的单元测试解决方案,让TDD成为了一个极为复杂的事情。
Flutter的优秀单元测试能力,为客户端领域实现有实战价值的TDD流程带来了新的可能性。

使用六年,当初的判断都对了吗?

1、性能媲美原生

在大多数日常使用场景中,Flutter应用的性能几乎可以与原生应用媲美,用户难以察觉到差异。
特别是随着Impeller渲染引擎的引入,Flutter在图形处理和动画方面的表现更令人期待。
当然在极少数极端性能要求下,Flutter相较于原生应用仍可能略显逊色。
不过这也让Impeller更被期待了。

2、两端一致性非常好

早期因为原生和Flutter页面混杂情况比较多,每个需求都要安排Android和iOS各一个开发
从中期开始,我们发现一个开发者就能高效地完成大部分工作,另一端的同事仅需在遇到特定原生集成问题时提供支持。
到了后期,Flutter几乎成为新功能开发的唯一选择,大大简化了团队结构和沟通成本。
这时只需要安排一个开发即可,偶尔碰到原生问题协调另一端的原生开发临时帮忙看一下就行。

3、长期使用原生+Flutter的混合开发模式

我们的项目在切换到Flutter之前,已经上线很多年了。
经过不停的发展、迭代,已经积累了大量没有记录在文档中的隐藏功能和代码逻辑。
换句话说就是你不动他们,他们就能正常运行,
你随便改一点,就不一定会回发生什么事情。
所以我们最开始选择Flutter的时候,选择的策略就是混合开发、逐步过渡。

最开始的时候只把少数页面切换到Flutter上进行灰度测试。
确认了Flutter的稳定性和用户体验没有问题后才开始把Flutter座位正式项目的首选。
但也不是把所有的页面都迁移到Flutter。
而是新项目、新页面优先采用Flutter开发,老页面仍然保留原生。
只有在新需求中老页面的变动超过50%,才考虑迁移到Flutter重做一遍。
经过这几年的逐步替换,目前常用页面的80%已经切换到Flutter上面了。
剩下的页面有历史原因,有技术原因。
但是我们打算长期保持这种混合开发的状态,不会整体切换到Flutter。
这种灵活性让Flutter在保持跨平台优势的同时,没有牺牲对平台特性的支持。

4、开发效率比两端单独开发时节省60%的人力

近期的项目开发效率,对比切换到Flutter前,整个团队效率大约提升了60%。
这可能和很多人感觉的不太一样,大家普遍觉得会节省一半人力或者更少一点。
这主要取决于以下几个方面:
第一,真正的只写一次代码
不同于很多跨平台框架,仍然需要在不同的端上进行微调。
Flutter是真正意义的只写一次代码,调试通过后一般不需要再在各个平台进行二次调试了。
这部分确实是节省了40%以上的人力。
第二,高度两端一致性
我觉得这一点上收益最大的是产品和测试团队。
对产品团队来说,没有了以前一个功能点Android需要一周、iOS需要一天这种奇特的情况。
整个项目安排比以前顺畅和可控了很多。
对于测试团队来说,过去一个项目开发完,你去看bug列表,基本上Android和iOS是完全不一样的。
现在虽然为了保证质量,仍然会区分Android和iOS进行测试。
但是基本上一个Android和iOS发现的是一个bug,也只需要修改一次。
测试和回归的工作量就少了很多。
第三,TDD对开发流程的优化
基于Flutter的TDD流程给我们团队带来了很多影响比较深远的改变。
比如更可控的项目进度,更好的代码质量等等。
可以说TDD带来的人力成本的节省不次于少写一份代码。
下面就看看TDD都带来了哪些好处?

TDD带来的开发体验优化

a、提高代码质量
TDD迫使开发者从一开始就思考代码的设计和接口,这有助于编写出更加模块化、可重用和可维护的代码。
通过持续的测试,可以确保新添加的代码不会破坏现有功能。
b、加速开发流程
虽然TDD在项目初期可能会稍显缓慢,主要是因为人员的不熟悉。
但随着项目的进展,其优势会逐渐显现。
自动化的测试用例能够快速反馈代码的正确性,减少了手动测试的时间,使得开发者能够更加自信地进行重构和添加新功能。
基本上你基于TDD流程添加的代码,对其可靠性心里是很有底的。
不会出现写了很多天代码,一运行到处都崩的情况了。
c、减少长期维护成本
通过TDD开发的代码通常具有更高的稳定性和更低的缺陷率。
这意味着在产品发布后,团队将花费更少的时间在修复bug上,从而可以更专注于新功能的开发。
基于TDD提交测试的代码很少出现一个功能实现的不到位的情况。
bug主要出现在一开始写测试例时就没有考虑到的场景中。
d、促进团队协作
测试用例本身也是对需求的一种文档化,有助于新团队成员更快地理解项目和代码库。
这一点写过的同学应该比较有体会。
因为不同程序员的思路其实差异是很大的。
如果直接去读别人写的代码,理解起来相对会比较困难。
但如果从测试例入手去读代码,因为测试例本身一般模式相对比较固定,起名也带有很强的描述性。
所以我们很容易理解别人代码中每个函数的设计目标。

总之,测试驱动开发是一种强大的开发方法,尤其适用于Flutter这样的现代开发框架。
通过TDD,团队不仅能够提高代码的质量和稳定性,还能在长期内提升开发效率,减少维护成本。
对于追求高质量和高效开发的团队来说,TDD无疑是一个值得投资和采用的策略。
而这也是Flutter相对于原生和很多其它跨平台框架的独门优势。

好了,前面说的都是我们最开始基于哪些原因选择了Flutter,基本都是Flutter的优势所在。
那么接下来说一说这些年使用中发现的Flutter的缺点。

Flutter的一些缺点

诚然,没有任何技术是完美的。Flutter在某些方面也暴露出了局限性,比如:

  • 包体积问题:
    Flutter应用的初始安装包相对较大,对于极度关注应用大小的项目来说,是一个考量点。
    这主要是因为Flutter需要把自身的引擎部分也打包到App中。
  • 第三方库依赖:
    虽然Flutter社区日益壮大,但仍有一些领域,特别是针对特定平台的高级功能,第三方库的支持不如原生丰富或成熟。
  • 学习曲线:
    对于习惯于Java或Swift的开发者而言,学习Dart语言及Flutter框架需要一定时间,初期可能会遇到一定的学习障碍。

总结

综上所述,Flutter在我们团队的六年实践中,不仅证实了其作为跨平台开发框架的巨大潜力,更是在性能、一致性、开发效率和测试支持等方面超出了我们的最初预期。
当然,我们也意识到持续关注其发展,适时调整策略以应对潜在挑战的重要性。
Flutter的旅程还在继续,我们对其未来充满信心。

如果看到这里的同学有学习Flutter的兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDMzNTM0Mw==&mid=2247483665&idx=1&sn=56aec9504da3ffad5797e703c12c51f6&chksm=c12c4d11f65bc40767956e534bd4b6fa71cbc2b8f8980294b6db7582672809c966e13cbbed25#rd

Flutter入门教程:从零开始的Flutter开发指南 Flutter是由Google开发的一个开源UI框架,它使用Dart语言编写,并且可以用来快速构建跨平台移动应用程序,支持iOS和Android两大主流移动操作系统。Flutter的优势在于可以使用一套代码库同时开发iOS、Android和Web等不同平台的应用,同时具有较高的开发效率和灵活的定制能力。Flutter的界面是由各种Widget组成的,每个Widget负责界面的一部分。Flutter是一个强大的跨平台开发框架,支持从简单的UI到复杂应用的开发。 阅读详情

相关推荐

一文带你轻松入门Flutter开发

Flutter 是谷歌推出的一款开源 UI 框架,旨在帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台等多种平台的开发。其核心优势在于跨平台特性和高性能表现。Flutter 的跨平台能力使其能够在 iOS 和 Android 等主流平台上运行,甚至通过第三方扩展还可支持 MacOS、Windows 以及谷歌的 Fuchsia 操作系统等,这极大地减少了开发成本,让开发者无需为不同平台编写大量重复代码,而是专注于业务逻辑和用户体验的优化。

yan1915766026的博客 1万+

flutter 简介 flutter 能为我们做什么

陆陆续续已经写了60多篇的flutter 的文章了,本篇文章就来说说我对flutter 的简单看法Flutter是一种由谷歌开发的开源用户界面(UI)工具包,用于在多个平台上构建高性能、美观和流畅的移动应用程序。它使用Dart编程语言,并提供丰富的UI组件和工具,可以快速构建现代化的应用程序界面。总的来说,Flutter具有跨平台、响应式UI、热重载、自绘引擎、丰富的UI组件、开发效率、强大的社区支持和优秀的性能等特点和优势,使开发人员能够更轻松、高效地构建漂亮、流畅和高性能的应用程序。

半身风雪 1万+

Flutter 评价星星 组件

评价星星组件:star_rating.dart import 'package:flutter/material.dart'; /** * 使用方法: * StarRating( rating: 1.5, maxRating: 5.0 size: 30, count: 5, ), */ /// 评分星星 class StarRating ext...

HMF的博客 1689

Flutter-评价类星星,可滑动可点击

评价类星星图片,可以滑动点亮,也可以点击点亮,

sujingnuli 1093

开关电源EMC整改实录:用WSX系列共模电感搞定30MHz辐射超标

本文详细介绍了开关电源EMC整改实战,通过WSX系列共模电感成功解决30MHz频段辐射超标问题。文章分析了共模干扰的产生机制,对比了不同磁芯材料的性能差异,并提供了电路布局优化与安装技巧,最终通过实测数据验证了整改方案的有效性。

weixin_29305313的博客 415

2022-2028年中国美容仪行业发展战略规划及投资机会预测报告

报告类型:产业研究 报告格式:电子版、纸介版 出品单位:智研咨询-产业信息网 美容仪是一种根据人体生理机能进行调节改善身体和面部的机器,它按照功能来说有美白、嫩肤、祛斑、祛皱、脱毛、减肥等多种,按照名称来说有超声波导入、光子嫩肤、高周波电疗、RF 电波拉皮、电子祛斑点痣、E 光永久脱毛嫩肤、贾法尼营养导入导出等。 智研咨询发布的《2022-2028年中国美容仪行业发展战略规划及投资机会预测报告》共十七章。首先介绍了中国美容仪行业市场发展环境、美容仪整体运行态势等,接着分析了中...

kt346的博客 468

Flutter 自定义 五星评价

Flutter 自定义五星评价自定义控件

征战无悔人生 1055

VS Code/TRAE集成Cppcheck并启用MISRA规则

本文探讨了嵌入式开发中Cppcheck工具集成与MISRA规则检查的必要性。详细介绍了安装配置步骤:安装VSCode/TRAE、Cppcheck软件、配置插件参数、安装Python环境,并重点说明了MISRA规则文件的设置方法。通过完整的配置流程,实现了嵌入式开发环境下静态检查与安全标准的落地。

SDFangFang2025的博客 1282

Flutter跨平台开发:评价列表组件适配OpenHarmony实战

在电商应用中,评价列表是用户决策的关键环节。真实、清晰的评价展示能显著提升用户信任度和转化率。本文将分享一个经过实际项目验证的Flutter评价列表组件实现方案,重点讲解如何在Flutter框架下直接开发OpenHarmony应用。本文通过一个完整的评价列表组件实现,展示了如何使用Flutter框架直接开发OpenHarmony应用。评价统计组件、评价筛选标签和评价卡片组件的实现,为用户提供了清晰可信的评价展示功能。

weixin_45247234的博客 724

思必驰离线语音芯片:智能家居控制的核心引擎

思必驰离线语音芯片TH1520通过本地化语音识别技术,为智能家居带来革命性体验。该芯片具备200-600毫秒的快速响应、75分贝抗噪能力和双核异构设计,显著提升设备交互效率。支持自定义指令和10种音色选择,开发周期缩短至3天,BOM成本降低30%,是智能家居控制的核心引擎。

redis7keeper的博客 987

数字IC后端实现 | Innovus各个阶段常用命令汇总

数字IC后端设计实现之Innovus常用命令汇总

weixin_37584728的博客 7323

能帮我找一个比较好的flutter的五星评价的库吗?

当然可以!Flutter 应用中常用的五星评价库有: flutter_rating_bar:这是一个开源的五星评价库,它支持自定义图标、颜色和大小,并提供了多种交互方式(如点击、滑动和长按)。 rating_bar:这是另一个开源的五星评价库,它支持自定义颜色、大小和交互方式,并提供了多种常用的样式。 star_rating:这是一个简单易用的五星评价库,它支持自定义颜色、大小和交互方式,并...

weixin_35757531的博客 283

windows使用jupyter notebook读取文件路径的几种方法和设置默认打开路径

简单分享小虎这段时间以来学到的jupyter notebook操作技巧。

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 1万+

Flutter跨平台开发:OpenHarmony评价列表组件实战

跨平台开发技术通过共享代码库显著提升移动应用开发效率,其中Flutter框架凭借其高性能渲染引擎和热重载功能成为主流选择。在UI组件开发中,评价列表作为电商、社交类应用的核心功能,其性能优化和跨平台适配尤为关键。通过Platform Channel机制和定制插件,Flutter可以无缝集成OpenHarmony的分布式能力,实现跨设备数据同步。本文以实战项目为例,详细解析如何基于Flutter构建高性能评价列表组件,包括数据结构设计、ListView优化策略以及OpenHarmony平台的特殊适配方案,为开

weixin_31188927的博客 123

Joule 终于会说 ABAP 了:从 ADT 提效到 ABAP AI SDK + ISLM 自建企业级 AI 场景的落地路线

生成结构化摘要(故障现象、初步原因、处理动作、备件消耗)自动给出建议分类(电气、机械、软件、网络)把摘要回写到工单抬头,方便后续统计与知识沉淀如果你用 CAP 来做这类服务,通常会在 Node.js 层封装一个对 AI Hub 的调用,再通过 OData 或 Event 把结果写回 SAP。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 343

基于STM32、HAL库的ICP-20100气压传感器 驱动程序设计

它具有低功耗、高精度、快速响应等特点,非常适合物联网、可穿戴设备和无人机等应用。#define ICP20100_FIFO_CTRL 0x09 // FIFO控制寄存器。#define ICP20100_FIFO_DATA 0x0A // FIFO数据寄存器。#define ICP20100_FIFO_STS 0x0B // FIFO状态寄存器。#define ICP20100_FIFO_WTM 0x15 // FIFO水印设置。

corlin6688的博客 600

Flutter在OpenHarmony上实现高性能电商评价列表

在移动应用开发中,UI渲染性能与跨平台一致性是核心挑战。Flutter框架通过自绘引擎实现高性能渲染,其响应式编程模型特别适合构建动态内容列表。评价系统作为电商平台的关键组件,直接影响用户购买决策。通过合理的数据结构设计和组件化开发,可以构建高性能的评价列表。本文以OpenHarmony平台为例,展示如何利用Flutter实现包含图片懒加载、动态布局等特性的评价模块,其中特别针对OpenHarmony的图片加载和手势识别进行了适配优化。这种方案不仅适用于电商场景,也可扩展至社交、内容社区等需要用户反馈功能的

weixin_30647423的博客 221

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Flutter 框架跨平台鸿蒙开发 - 课程评价与选课推荐

运行效果图课程评价与选课推荐是一款教育服务应用,为学生提供课程评价和选课参考服务。支持课程评价浏览、选课推荐、课程搜索等功能,让用户轻松选择适合自己的课程。应用内置真实评价、智能推荐、课程对比等功能,帮助学生做出明智的选课决策。应用以清新的紫色为主色调,象征知识与智慧。涵盖课程评价、选课推荐、课程搜索、个人中心四大模块。用户可以浏览课程评价、查看推荐课程、搜索课程信息、管理个人选课。序号类型名称Emoji描述1必修课📚专业必修课程2选修课📖专业选修课程3通识课🌍通识教育课程。

2301_80352199的博客 387

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Flutter 实现 App 内更新安装包,kotlin评价

获取当前app的版本、平台信息 static String _version; static String _flatform; import ‘package:package_info/package_info.dart’; /// 获取当前版本 PackageInfo packageInfo = await PackageInfo.fromPlatform(); _version = packageInfo.version; import ‘package:device_info/device_in.

m0_66264588的博客 541

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Flutter跨端开发实战:OpenHarmony剧本杀App详情页与评价系统设计

跨平台开发已成为移动应用降本增效的关键路径,Flutter凭借自绘渲染引擎在多端一致性上表现突出。在鸿蒙生态快速演进的背景下,基于Flutter构建OpenHarmony应用需要解决复杂滚动布局、平台通道通信、渲染引擎兼容等工程难题。本文从内容型应用常见的详情页与评价系统切入,分析了CustomScrollView实现沉浸式头图、自绘星级评分组件、评价数据分页与状态管理等核心设计,并针对OpenHarmony适配中的Impeller渲染异常、构建脚本冲突等问题给出实战解法。无论是计划迁移Flutter应用到

weixin_29013129的博客 273

Flutter for OpenHarmony 剧本杀组队App实战:剧本详情与评价实现

本文介绍了剧本详情页面的设计与实现,主要包含以下核心内容: 页面结构与功能:采用可折叠头部设计展示剧本名称和背景图,包含基本信息、标签、剧本简介、玩家评价列表和底部操作栏等模块。 设计原则:遵循信息层次原则,使用CustomScrollView实现流畅滚动体验,展示玩家评价作为社交证明增强用户信任。 技术实现: 使用SliverAppBar实现可折叠头部效果 通过SliverToBoxAdapter混合普通Widget和Sliver组件 采用卡片式布局展示剧本信息和评价 底部固定操作栏提供快捷功能入口 数据

2601_94984775的博客 789

Flutter与鸿蒙系统适配:动态权重算法优化三方库评价

在跨平台开发中,Flutter因其高效的渲染性能和丰富的生态资源成为主流选择。随着鸿蒙系统(HarmonyOS)市场占有率提升,如何实现Flutter生态与鸿蒙系统的深度适配成为关键问题。动态权重算法通过多维度数据采集(如代码质量、维护活跃度、社区反馈等)和实时权重调整,构建智能化的三方库评价体系。该技术不仅解决了鸿蒙环境下的兼容性问题(如Surface绘制、事件分发等),还能通过贝叶斯优化算法动态优化权重分配,提升开发效率。典型应用场景包括移动端开发、跨平台工具链优化等,为开发者提供数据驱动的决策支持。

weixin_34218579的博客 321

flutter 星星评价

ff_stars: ^0.2.0 import ‘package:ff_stars/ff_stars.dart’; FFStars( normalStar: Image.asset( R.assetsImagesRiliImgLl2Png), selectedStar: Image.asset(R .assetsImagesRiliImgLlPng), starsChanged: (realStars, choosedStars) { print( “选择: ${choosedStars}, 选择: ${r

qq_34974843的博客 483

推荐文章:Smooth Star Rating - 开源的Flutter星级评分组件,触控滑动即刻评价!

推荐文章:Smooth Star Rating - 开源的Flutter星级评分组件,触控滑动即刻评价! 在追求用户体验至上的今天,每一个细节都能左右用户的满意度。而对于常见的评分功能,Smooth Star Rating这一款开源项目,无疑为 Flutter 应用开发者带来了福音。它不仅仅是一个简单的星级评分控件,更是提升应用交互体验的秘密武器。 项目介绍 Smooth Star Rating ...

gitblog_00810的博客 517

如何快速构建Flutter星级评价系统:从0到1打造丝滑评分交互

FlutterUnit是一款功能强大的Flutter集录指南App,它不仅提供了丰富的Flutter组件展示,还包含了许多实用的UI交互实现,其中星级评价系统就是一个典型案例。本文将详细介绍如何在Flutter项目中实现一个交互流畅、视觉精美的星级评分组件,帮助开发者快速集成到自己的应用中。 ## 星级评价系统的核心价值 在移动应用中,星级评价系统是用户与应用交互的重要桥梁。一个设计良好的评分

gitblog_00220的博客 528
上一篇: flutter是app跨平台最优解吗?
下一篇: 用flutter写Win,Mac,Linux跨平台桌面端程序,合适吗,坑多吗?
程序员老刘·
博客等级 码龄3年 622粉丝 142原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值