- 博客(312)
- 收藏
- 关注

原创 从台下到台上,我成为 GDE(谷歌开发者专家) 的经验分享
以前台下客,如今台上人,曾惊鸿一瞥,今再会旅程。2022年5月末,经过一个多月的面试,我的 GDE (Google Developer Expert) 终于正式成功通过面试,成为了国内第 4 位 Flutter & Dart GDE。由于时间原因,目前在官方的 experts/directory 可能还没同步,预计要一两个星期。成为 GDE 有什么好处相信对于 Android 或者 Machine Learning 的开发者来说 GDE 应该是一个很熟悉的头衔,GDE 是 Go.
2022-05-27 11:17:30
4019
4

原创 Android 13 适配指南
Android 13 适配指南是的,你没看错,现在就要带你适配 Android13。2022 的Google I/O 发布了 Android 13 beta 2 和 Android 13 Beta 1 国内厂商的设备支持列表,虽然按照惯例, Android 13 应该是年末才发布正式版,但是相信有的开发者已经收到了平台的 Android13 的适配要求,所以本篇也是结合 Oppo 的 Android 13 应用兼容性适配指导 和官方提供的一些文档内容做一个整理测试。[外链图片转存失败,源站可能
2022-05-20 18:28:44
9781
2

原创 一文带你了解 Google I/O 2022 精彩汇总与个人感想
谷歌 2022 I/O 大会刚刚过去,这两天我也整理了不少篇文章和资讯,如果刚兴趣的可以在文末查看相关内容。作为时隔 3 年再次回归海岸线圆形剧场,谷歌这次 I/O 大会可以说是干活满满,特别是本次大会的“线上会场”,Adventure 用类似“元宇宙”的概念,让广大开发者可以在“游戏”中逛遍所“展厅”,同时通过完成各种有趣的小游戏来参与大会,甚至你还可以钓鱼挂机…当然,最重要的是可以和全球各个开发者线上交流,这无疑是本次大会最优秀的一环。AI作为本次 I/O 大会的关键词之一,AI 成为谷歌.
2022-05-13 17:59:01
5575
4

原创 大前端时代的乱流:带你了解最全面的 Flutter Web
Flutter Web 稳定版本发布至今也有一年多了,经过这一年多的发展,今天就让我们来看看作为大前端时代的乱流,Flutter Web 究竟有什么不同之处,本篇分享主要内容是目前 Flutter 下少有较为全面的 Web 内容。本篇来自本人在《T技术沙龙-大前端时代的挑战与机遇(深圳场)》的线下技术分享。一、起源与实现说起 Flutter 的起源就很有意思,大家都知道早期 Flutter 最先支持的平台是 Android 和 iOS ,至今最核心的维护平台依然是 Android 和 iO
2022-05-08 17:25:51
4420
4

原创 Flutter 深入探索混合开发的技术演进
关于 Flutter 混合 PlatformView 的实现已经介绍过两次,随着 5 月份谷歌 IO 的接近,新的 PlatformView 实现应该也会随之而来,本次就从头到尾来一个详细的关于 PlatformView 的演进总结。Flutter 作为新一代的跨平台框架,通过自定义渲染引擎的创新大大提高了跨平台的性能和一致性,但也正是因为这点, 相比之下 Flutter 在混合开发时对于原生控件的支持成本更高。Flutter 混合开发的难点首先 Flutter 在混合开发中最大的难点就在于它
2022-05-04 20:37:54
4168

原创 探索移动端音视频与GSYVideoPlayer之旅 | Agora Talk
大家好,我是 Github 开源 GSY 系列项目的负责人郭树煜,比如 Android 上的 GSYVideoPlayer 就是这个系列里的项目,另外我也是 《Flutter 开发实战详解》 的作者,平时主要活跃在 Github 和掘金平台,这次主要是给大家分享移动端音视频开发和 GSYVideoPlayer 的一些有趣的内容。基础知识首先是基础知识,本次分享在这一块会占据很大比例,为什么要和大家聊音视频的基础知识?这就又要考古我很久前的一个经典 issue ,如图所示:在维护 GSYVideo.
2022-01-25 21:23:11
4179
4

原创 带你全面了解 Flutter,它好在哪里?它的坑在哪里? 应该怎么学?
回顾了这段时间解答关于 Flutter 的各种问题后,我突然发现很多刚刚接触 Flutter 的萌新,对于 Flutter 都有着不同程度的误解,而每次重复的解释又十分浪费时间,最终我还是决定写篇文章来做个总结。内容有点长,但是相信能帮你更好地去认识 Flutter 。Flutter 的起源Flutter 的诞生其实比较有意思,Flutter 诞生于 Chrome 团队的一场内部实验, 谷歌的前端团队在把前端一些“乱七八糟“的规范去掉后,发现在基准测试里性能居然提高了 20 倍,机缘巧合下 Flu
2021-02-23 11:55:38
4263
4

原创 不一样的角度聊聊的协程、写作和学习
本文不算是纯技术的文章,但是个人觉得这篇文章或者可以给你带来不一样的视角。一、“高级”的协程周末闲下来重温了凯哥(扔物线)关于“协程”和“内存抖动”的视频后颇有感慨,能把一项技术的本质介绍得如此通俗易懂,其对技术的理解已然是返璞归真,因为要把“高级”说得“通俗”需要对逻辑有清晰的认知。内存抖动视频地址:https://www.bilibili.com/video/BV1xf4y127Ur协程视频地址:https://www.bilibili.com/video/BV164411C7FK“协程”
2020-05-31 10:05:17
1477

原创 六年码农生涯的 2019 总结:君子坐而论道,少年起而行之
随着 2019 的过去,2020 迎来了第六年的码农生涯,过往如烟挥之即散,所以我习惯通过一些关键词来凝结这一年的收获,而 2019 我总结的关键词是:技术大会、焦虑、耐心、学习、竞争力。技术大会2019 年参加了不少技术大会,对于技术大会可能会有一部分“过来人”感觉不屑一顾,因为大多数时候技术大会看起来像是广告大会,分享内容可能往往也过于“空泛”,参加的既得收获其实并不高。但是在时间允许...
2020-01-02 10:21:15
18247
69
原创 Flutter 在全新 Platform 和 UI 线程合并后,出现了什么大坑和变化?
因为 Flutter Engine 不会直接控制线程的创建和销毁,而是通过控制任务队列的调度来间接影响线程的行为,通过合并任务队列,Engine 就可以让多个线程执行的任务集中到一个线程上,从而达到合并线程的作用。所以可以看到,增加启动线程的核心就是用原本的 Dart UI 线程进行启动,然后启动完成把任务队列合并到平台线程,回归平台线程的逻辑。而在启动之后,Dart 的主线程就会移动到平台线程,虽然说是“移动线程”,但是通过上面的代码我们可以看到,实际上就是将两个任务队列。
2025-04-24 08:14:12
662
1
原创 AI 傻傻分不清楚?那么多 AI 变体究竟怎么选?这里快速简单理清!
2025 年的 AI 确实越来越好用,甚至可选的大模型也越来越多,不管是 web chat 还是 ide coding,现在都提供了大量丰富的可选模型,但是这同样也带来了「选择困难症」,特别是对于用户而言,面对有限的「免费次数」或者「排队时间」,选错模型等于浪费生命,所以本篇意在简单介绍下这些模型和变体的区别,帮助你简单了解它们的适用情况。之所以会想写一篇这样的水文,也是刚好看到这下面这张图,目前在 AI 近亲变体领域,Open AI 可以说是越来越离谱,当你以为下一个版本是 GPT-5 时,Open AI
2025-04-21 06:16:14
492
原创 IntelliJ IDEA 2025.1 发布 ,默认 K2 模式 | Android Studio 也将跟进
2025.1 版本已经发布,在此之前我们就聊过该版本的,而现在 2025.1 中的 K2 模式也成为了默认选项。可以预见,这个版本可能会包含不少大坑,为下个 Android Studio 祈祷。首先有一点可以确定,随着 K2 模式成为默认选项,,所以在 2025.1 里,你依然可以在里关闭 K2 模式,但是只能说「逃得了一时是一时」:“K2” 对应的是 Kotlin 插件包含用于代码分析的 K2 Kotlin 编译器的内部版本,而 K1 模式使用 K1 编译器,
2025-04-17 14:59:04
1100
原创 Android Studio Cloud 正式上线,不只是 Android,随时随地改 bug
Google 自 2023 年就开始执行所谓的 “效率提升计划”,目的是希望通过资源优化,将资源集中于AI、云计算等战略领域,就连 Android 这样的核心项目,也不得不作出相应让步,而目前 Firebase Studio 作为 「云+AI」 的产物,整体体验下来还挺不错,,主要白嫖的虚拟环境配置还是相当不错。,而 Firebase Studio 提供了基于云的开发环境,而这个开发环境融合了 AI 和原先的 Project IDX ,内置了 60 多个预构建的模板和工作环境,这里面就包括。
2025-04-14 06:17:26
726
1
原创 JetBrains Terminal 又发布新架构,Android Studio 将再次迎来新终端
不到一年的时间,JetBrains 又要对 Terminal 「大刀阔斧」,,而上一次终端大调整还是去年 8 月的 v2024.2 版本,并且在「Android Studio Ladybug | 2024.2.1」也被引入。不知道你们用不用内置终端,反正我是用的,不到一年的时间就又重构了,所以有时候不是 Android Studio 团队喜欢写 bug ,而是 JetBrains 的坑太多。
2025-04-09 13:11:36
832
原创 你为什么需要了解 Dart AST?一个简单的 bug 带你快速认识下 Dart Kernel AST
事情的起因是最近在 Github 收到了一个 issue ,内容是在获取l10n多语言相关实现时找不到该方法,从而导致的问题:而出现问题的地方是通过方式获取当前的多语言文本内容,但是这个用法在同个文件内的其他地方又是正常:而这个实现,是通过 Dart 的extension拓展来完成,并且返回时为了方便会通过!来强行忽略空问题:但是虽然知道了问题的点在于context获取不到l10n,但是一时半会也没看出来代码哪里有问题,因为这是一个正常的context,使用的位置也正常,通过这个context。
2025-04-09 06:24:22
605
原创 注意,暂时不要升级 MacOS ,Flutter/RN 等构建 ipa 可能会因 「ITMS-90048」This bundle is invalid 被拒绝
近期,不少使用构建 ipa 提交 App Store 的用户遇到 「ITMS-90048」This bundle is invalid 而拒绝的问题,这个 错误的核心原因是在提交给 App Store Connect 的归档文件 (.xcarchive) 里,包含了一个不允许存在的隐藏文件._Symbols而用户在 ipa 存档里,确实也可以看到.Symbols这个隐藏文件的存在,可以看到这个目录是一个空文件夹:这个问题目前在。
2025-04-07 06:34:55
854
原创 Flutter Roadmap 2025 发布,快来看看有什么更新吧
目前看来,「交叉编译 Dart AOT 」是我 2025 里最感兴趣的特性,当然,在 Windows 上直接构建出一个 iOS 的 Ipa 这种支持我估计不会有,毕竟这个的可行性和复杂度太高了。而最期待的莫过于 Canonical 团队的支持,希望目前多窗口的 draft 可以最终落地成功,毕竟这段时间的 Desktop 开发体验,缺少多窗口确实是很大的局限。那么,你最希望什么特性能在 2025 年被完成?
2025-04-03 06:24:01
673
原创 Android 确定废弃「屏幕方向锁定」等 API ,如何让 App 适配大屏和 PC/XR 等场景
最后,其实不难看出,在前面官方提及的 「桌面窗口模式」等场景,也看出来该操作是在为 Android PC 铺路,对于 Android PC,在集齐了「Linux 终端控制台支持」、「桌面模式」、「外部显示器支持」、「窗口多任务」,「最小化」,「多实例支持」、「Desktop View」、「外部显示器排列和切换」等场景后,在 App 端也终于开始迎来强制性的 UI 适配需求,看起来 Android 团队也重新开始重视 PC 场景,另外。比如在 API 36 时,如果你还是想「摆烂」,那么可以通过配置。
2025-03-31 06:21:11
1073
原创 Android 转内部开发谁说是闭源?明明 AOSP 外部 PR 支持也会继续
前几天最热门话题之一不外乎盛传 Android 闭源,可谓「节奏」一开「流量」全来,虽然做媒体的难免「春秋笔法」,但是直接「断章“曲”义」的做法未免有些离谱,总想搞个大新闻,刚好现在风头已过,就简单聊聊始末。首先本次的的核心是「转内部开发」,怎么理解这个变化?。,比如要花费大量时间在两个分支之间合并补丁和处理冲突,因为这个两个分支的代码结构和新旧差异越来越大,合并一个简单的修复,就可能需要处理一系列复杂的冲突。。
2025-03-29 15:25:55
403
原创 Flutter 新一代状态管理框架 signals ,它究竟具备什么魔法和优势
开始解析在聊 signals.dart 之前,需要快速介绍 signals 的前置概念,附带还有 Preact、Preact Signals 、SolidJS 等关键词。首先需要说明一点,「Signals」 是业内通用的一种状态管理模式,而 signals.dart 项目就是 Preact Signals 的一个 Dart 移植版本,所以在最底层源码里你可以看到 Preact Signals 的核心原语,自然也就是包含了Signal 的细粒度、惰性求值和自动依赖追踪等能力。
2025-03-24 06:19:14
875
原创 Android Vulkan 官宣转正并统一渲染堆栈 ,这对 Flutter 又有什么影响?
**什么是 swapchain?** swapchain 简单说就是一种用于管理多个缓冲区的机制,从而确保平滑渲染和显示画面,进而防止画面撕裂,比如 swapchain 通常会有双缓冲或三缓冲,通过实现类似一个缓冲区显示的同时,另一个缓冲区正在准备渲染一下帧。通俗又不严谨的说法:现在的 GPU 渲染效率很高,而系统显示的速度跟不上 GPU 渲染的速度,所有可以通过多重 buffer 的作用,提前在 GPU 渲染画面,等待提交,而提交给系统显示的过程中,就是在 buffer 之间进行交换 (Swap)
2025-03-18 06:32:04
1196
原创 Android PC 要来了?Android 16 Beta3 出现 Enable desktop experience features 选项
在之前的我们就聊过,Google 就一直在努力改进 Android 的内置桌面模式,例如。比如在搭载 Android 15 QPR 1 Beta 2 的 Pixel 平板,可以通过体验到桌面窗口的新功能:Android 15 QPR1 Beta 1 下,可以在看到一个,也就是的支持,它取代了以前版本的 Android 中旧的切换:还有对应桌面窗口模式下的等等:现在同步还有之前的。
2025-03-17 06:44:56
973
原创 Flutter 小技巧之通过 MediaQuery 优化 App 性能
涉及 20 来参数,从各种边界到字体大小再到界面比例,可以说在 UI 适配时是经常使用的对象,特别是折叠屏场景更是必不可少,所以合理使用。好了,今天的小技巧就到这里,温故知新,基本上今天的内容都是过去的片段,把它们放在一起之后,你应该就知道如何使用。,如果这样也导致页面更新,好像也不是很合理,所以后来(3.10) Flutter 更新了。更新时只触发绑定参数的能力,内部主要还是在 context 登记时,通过。的更新, 所以其内部像 body 等参数,也会通过。内去使用 context 就好很多?
2025-03-12 21:55:32
750
原创 再聊 Flutter Riverpod ,注解模式下的 Riverpod 有什么特别之处,还有发展方向
在此之前,我们需要先回忆一下,riverpod 最明显的特点是将转换成WidgetRef抽象,从而让状态管理不直接依赖实现,共享实例的顶层存在,提供一个全局共享:用于管理和保存各种 “Provider” 的 State ,并且支持 override 一些特殊 “Provider” 的行为,还有常见的 read\watch\refeshRef:提供 riverpod 内的 “Provider” 交互接口,是 riverpod 内 ProviderElementBase 的抽象。
2025-03-10 06:43:07
884
原创 字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验
例如 Lynx 的 Virtual Thread 概念,对应 Lynx 托管的“执行线程” ,用于提供 Task 的顺序执行,并且它与物理线程可能存在不是一一对应的关系,这和 Flutter 的 Task Runners 概念基本一样,支持将 Task 发布上去执行,但不关心其线程模型情况。,它是一个独立的布局引擎,支持各种布局算法,包括 flex、linear、grid 等,它还公开了自定义度量和自定义布局的功能,为用户提供了扩展其功能的灵活性。
2025-03-05 17:10:39
1976
原创 Android Studio Meerkat | 2024.3.1 更新,快来看看有什么新功能吧
随着 Android Studio 的动物越来越多,Android Studio 动物园也是越来越丰富,除了图片里的这些,过去的还有白狐狸、海豚、电鳗、火烈鸟、长颈鹿、刺猬、花栗鼠等没出镜,但是没关系,未来动物园肯定越来越壮硕,而随着 Fleet 不在支持 KMP ,未来 KMP 肯定会越来越高度集成会 Android Studio。那么,少年,开始吃螃蟹了~
2025-03-05 11:54:26
1202
原创 腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台
而对于 Kuikly ,它从业务代码、UI 框架、布局层以及渲染层全部使用 Kotlin 语言(iOS 渲染层是 OC),其中Android 端通过 KMM 编译成 SO 文件,而,iOS 端可以编译成 JS,不过那也是两年前的情况。同时,App 极度的轻量化,使用 Kuikly 的安装包增量仅 300K,运行时额外的内存占用几乎为零,从这点看大小和内存基本不会是 Kuikly 的门槛。团队就在知乎分享过 Kuikly 的实现,Kuikly(Kotlin UI Kit,发音同 quickly),
2025-03-04 15:02:54
1441
原创 深入聊聊 Flutter 里最接近官方的热更新方案:Shorebird
#热更新一直都是 Flutter 里的热门话题,毕竟 Flutter 的「先天属性」让它不像 RN 一样有 code push 这样的业内通用方案,不过这么多年下来 Flutter 也发展出了一些热更新的产品路线,比如:它们都在不同场景有着各自的优劣,而今天我们要聊的 Shorebrid 就比较特殊,因为它是 Flutter 前创始人 Eric 的商业项目,从目前来看,它是 Flutter 业内最接近 RN code push 的存在,或者说 Shorebrid 更懂 Flutter 在 code pu
2025-03-03 13:29:54
1126
2
原创 不要升级,Flutter Debug 在 iOS 18.4 beta 无法运行,提示 mprotect failed: Permission denied
并且需要直接 hotload ,也就是需要 Dart VM 在运行时根据 Kernel 二进制文件生成机械码,并且在可以接受 hotload 的热更新,所以它是通过 VM 来“解释”和“生成“,所以它会需要 mprotect 的系统调用。目前来说,好消息在于,只要你的真机不升级到 iOS 18.4 beta ,那么就不会有影响,而 Flutter/Dart 团队大概率会在 iOS 18.4 正式发布前修复这个问题,毕竟方向都有了。所以 Flutter 在 debug 运行时, JIT 运行的是一个。
2025-03-02 15:09:25
1058
原创 吹爆 AI ?Flutter 开发在 Cursor & Trae 不一样的 AI 真实体验
刚好这段时间一直在使用 Cursor 和 Trae ,并且目前 Cursor 的跟进速度也相当感人,如下图这两天已经在使用 Claude 3.7 Sonnet 了 ,恰逢最近在搞一些项目的框架迁移,正好借此机会通过实际需求对比下 Cursor 和 Trae 的 AI 体验,,然后“基类们”就出现冲突了,甚至有时候它还会把 mixin 的基类改成 abstract ,然后 mixin 就报错····,对比之下,现在的 ChatGPT 的推理搜索虽然出结果很快,但是貌似除了快之外,答案的可用性并不是很好。
2025-02-26 23:55:50
1339
原创 Flutter 上的 Platform 和 UI 线程合并是怎么回事?它会带来什么?
也许一些人对于这个概念还比较陌生,有时间可以看看以前发过的的相关内容,这里面主要涉及 isolate、 Thread、Runner 等概念。main而在 Android 和 iOS 上,以前会为 UI,GPU,IO 分别创建一个线程,其中 UI Task Runner 就是 Dart root isolate,也就是 Dart 主线程, Platform Runner 其实就是设备平台自己的主线程。所以,在过去。
2025-02-24 07:02:38
1217
原创 Flutter 正在推进全新 PlatformView 实现 HCPP, 它又用到了 Android 上的什么黑科技
跨平台开发里的 PlatformView 实现一直是一个经久不衰的话题,在之前的我们就详细聊过 Flutter 和 Compose 在 PlatformView 实现上的异同之处,也聊到了 Compose 为什么在相同实现上对比 Flutter 会更有优势的原因。那么随着 3.29 的发布,恰好关注到其实 Flutter 在 Android 的 PlatformView 上其实正在落地另外一种实现,而这种实现目前看来可以做到在 HC 的基础上得到更好的性能,所以也被暂时称为 HCPP。有点抽象?
2025-02-17 10:35:12
1095
原创 Flutter Gradle 命令式插件正式移除,你迁移旧版 Gradle 配置了吗?
在 Flutter 3.29 版本里官方正式移除了 Flutter Gradle Apply 插件,其实该插件自 3.19 起已被弃用,同时 Flutter 团队后续也打算把 Flutter Gradle 从 Groovy 转换为 Kotlin,并将其迁移到使用 AGP(Android Gradle Plugin)的公共 API,所以这个改动有望降低在发布新 AGP 版本时损坏的频率,并减少基于构建的回归。从这里也可以看出来,Flutter 团队也为 AGP 升级迭代适配感到“头痛”。
2025-02-13 09:50:36
1675
1
原创 Dart 3.7 发布,快来看看有什么更新吧
目前来看,Dart 3.7 属于“平平无奇”,和“带着大坑”的 Flutter 3.29 不同,升不升级影响不大,最多也只是能不能体验全新的格式化支持而已。
2025-02-13 09:49:41
1041
原创 Flutter 3.29 发布,看起来会是一个“大坑”的版本
可以看到 ,Flutter 3.29 带来了不少新功能的同时,也引入了不少大变动,所以如果你想将生产项目升级到 3.29 ,那么在「稳定」和「可控」评估上就需要更加谨慎,至少也要等到3.29.3再行动不迟。那么,勇士们准备好吃螃蟹了吗?
2025-02-13 09:48:03
1905
原创 Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用
在 Flutter 里,,这一点在之前的聊到过,可以说 Key 的存在关乎了 Flutter 的性能,因为它的作用就是提高 Element Tree 的复用效率,例如减少匹配阶段所需的 Widget 比较次数。另外通过 Key 还可以提高如ListView里重新排序时对应 Item widget 的效率,通过将 Key 分配给 Item ,Flutter 可以更有效地识别何时添加、删除或更新列表并执行动画,在这个时候, Key 可以确保每个 Item 即使在对列表进行排序时也保持其状态。
2025-02-12 10:05:51
1006
原创 Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年
Android Studio 1.0 宣发于 2014 年 12 月,而现在时间来到 2025 ,不知不觉间 Android Studio 已经陪伴 Androider 走过十年历程。,现在回想起来依然觉得「唏嘘」,, JDK 也还是甲骨文的 Java,而现在 Android Studio 都内置可切换的 OpenJDK 版本了。
2025-01-30 14:44:05
1944
3
原创 Flutter 新春第一弹,Dart 宏功能推进暂停,后续专注定制数据处理支持
在去年春节,Flutter 官方发布了, 同年的 5 月份在 Google I/O 发布的宣布了宏的实验性支持,但是对于 Dart 内部来说,从启动宏编程实验开始已经过去了几年,但是从目前的推进趋势看,。,对于元编程而言,需要建立在强大的内省基础支持之上,但是对于 Dart 目前来说,,而 tree-shaking 优化是 Dart 在二进制优化的重要指标之一。一开始 Dart 的目标是构建一个完整的宏系统,从而让该系统支持在编译时对程序进行深度语义内省,。
2025-01-30 09:39:31
1178
原创 Jetpack Compose 和 Compose Multiplatform 还有 KMP 的关系
今天刚好看到官方发布了一篇文章,用于讨论 Compose Multiplatform 和 Jetpack Compose 之间的区别,突然想起之前评论区经常看到说 “。最近写的几篇内容写的太干,刚好要过年,大家也放假了,今天写篇水的。,同样的情况也经常发生在 Kotlin Multiplatform (KMP) 和 Compose Multiplatform 之间。所以,你如果从实际项目归属看,其实。
2025-01-23 14:55:26
889
原创 深入 Flutter 和 Compose 的 PlatformView 实现对比,它们是如何接入平台控件
可以看到,在Android平台上,Flutter和Compose在最终实现思路很接近,大家都叫理念都是“模拟”环境和“替换”Canvas,但是在Android平台上Compose有着原生View体系的优势,所以它对的支持更友好。
2025-01-20 08:25:22
1184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人