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

原创 从台下到台上,我成为 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
4040
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
9905
2

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

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

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

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

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

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

原创 六年码农生涯的 2019 总结:君子坐而论道,少年起而行之
随着 2019 的过去,2020 迎来了第六年的码农生涯,过往如烟挥之即散,所以我习惯通过一些关键词来凝结这一年的收获,而 2019 我总结的关键词是:技术大会、焦虑、耐心、学习、竞争力。技术大会2019 年参加了不少技术大会,对于技术大会可能会有一部分“过来人”感觉不屑一顾,因为大多数时候技术大会看起来像是广告大会,分享内容可能往往也过于“空泛”,参加的既得收获其实并不高。但是在时间允许...
2020-01-02 10:21:15
18272
69
原创 腾讯 ovCompose 开源,Kuikly 鸿蒙和 Compose DSL 开源,腾讯的“双”鸿蒙方案发布
近日,腾讯的 ovCompose 和 Kuikly 都发布了全新开源更新,其中,而 ovCompose 是腾讯视频团队基于 Compose Multiplatform 生态推出的跨平台开发框架,那可能有人要问了,这两者有什么关系?首先它们都是属于腾讯大前端领域 Oteam ,并且 ovCompose 和 Kuikly 都依赖于 KuiklyBase ,。
2025-06-03 17:40:33
1282
1
原创 Flutter 官方多窗口体验 ,为什么 Flutter 推进那么慢,而 CMP 却支持那么快
目前体验下来,多窗口的基础能力还行,当然之前说的 Dialogs 、Satellites 、Popup 等场景都还在调整,设计的各种底层改动不少,所以完全落地应该还需要点时间。
2025-06-03 06:05:28
852
原创 Compose Multiplatform Skia 对比 Flutter Impeller ,都是跨平台自绘有什么差异
Impeller 着色器是提前编译,而 Skia 是运行时动态编译Impeller 定位只为 Flutter 服务,而 Skia 更多考虑兼顾通用性支持方面Flutter (使用 Impeller)Compose Multiplatform (使用 Skia/Skiko)关键考量主要渲染引擎Impeller (C++ 原生)Skia (通过 Skiko)Impeller 与 Flutter 引擎紧密集成,Skiko 需要考虑引入了 JNI 开销着色器策略预编译 (AOT)
2025-05-26 06:09:10
886
原创 2025 KMP 的现状和未来,选择 KMP 会有什么问题吗?
从目前来看,客户端领域还是很推荐使用 KMP 进行开发,前面说这些问题不是让你放弃,而是让你心里有个底,正常说来其实一般人都不会遇到什么大问题,而是否使用 CMP 就见仁见智了,目前国内 KMP 大厂使用的还比较客观,但是 CMP 的使用率其实并不高,使用 CMP 需要的技术积累会更高,特别适配鸿蒙的成本上,所以我个人更推荐 KMP ,至于 CMP 或者可以再稳稳,如果你想上生产环境。那么,2025 你准备好 KMP 了么?
2025-05-23 09:05:40
834
原创 Flutter 小技巧之:Flutter 3.32 的 Property Editor 生产力工具
如果配合 Flutter inspector 和热重载,修改后可以直接实时查看更改。Property Editor 支持 VS Code 和 Android Studio/IntelliJ,你只需要在侧边栏找到下放这个图标,就可以打开对应面板,前提是需要 3.32+,不然你看到的会是如下所示 :而如果你是 3.32 +,那么打开应该是下面这样:
2025-05-21 16:42:13
911
原创 鸿蒙微内核不是 Linux ,为什么可以跑 Linux 甚至模拟 Linux 容器?
所以,可以看到,通过这三大件,一个 Linux 应用的调用,会经过 POSIX 兼容性(musl libc + KAL),然后通过 ABI 兼容 (Shim Layer),最后通过 IPC 访问到所需的内核支持,而 HDF 提供了驱动兼容,从而实现了 Linux 的兼容运行环境。所以虽然鸿蒙微内核不是 Linux ,但是它可以提供出 Linux 兼容,甚至翻译出 Linux 模拟环境。
2025-05-20 07:43:42
634
原创 2025 跨平台框架更新和发布对比,这是你没看过的全新版本
框架 (Framework)开发语言渲染方式特点缺点支持平台维护企业FlutterDart自绘,Impeller自绘,多平台统一,未来支持 dart 和平台语言直接交互,Impeller 提供竞争力,甚至支持游戏场景占用内存大,文本场景略弱,Impeller 还需要继续打磨android、iOS、Web、Windows、macOS、Linux、鸿蒙(华为社区提供)GoogleJS 体系原生 OEM + Skia/WebGPU 支持。
2025-05-19 06:33:55
1105
原创 uni-app x 正式支持鸿蒙,又一个原生级全平台框架落地
当然,前面展示的随意混编原生代码的写法其实并不规范,正常 uni-app x 还是需要统一成插件形式,官方表示目前插件市场已经有数千款 uni-app x 的插件,其中不少插件已支持鸿蒙next ,不过需要注意的是,uni-app x 不再支持旧有的原生语言插件,所有原生能力扩展都必须通过 uts 插件实现。所以,回到 uni-app x ,Skip 的问题在它这里同样存在,甚至因为支持的平台更多,它需要做的兼容和。
2025-05-14 15:43:14
1084
1
原创 鸿蒙 PC 发布之后,想在技术上聊聊它的未来可能
在用户空间实现 ,它的职责包括实现基本的 Windows 功能,如进程和线程管理、对象管理、进程间通信(IPC)、同步原语、将 Unix 信号转换为 Windows 异常,处理窗口管理和输入事件等。当然,翻译 API 的局限性就不用多说了,还有一些依赖底层驱动支持的场景,很难在通用性上做到完美,当时理论上做到部分应用通用的场景应该可以,甚至在游戏领域反而更有优势?那么问题来了,HarmonyOS 「卓易通 」 作为生态过渡的丰富支持,甚至在应用商店都可以无缝衔接,那么鸿蒙 PC 是否也可以有类似的场景?
2025-05-13 12:57:48
981
原创 如何查看项目是否支持最新 Android 16K Page Size 一文汇总
也就是 64K 对齐,属于 16K 的 4倍,那「理论上」应该是对齐的,但是跑在 16K 上会 crash ,不过 crash 提示也不是 so 不对齐,而是在某段代码执行时出现 crash,并且你定位到的地址代码会很奇葩。测试环境可以使用模拟器,一般适配 16 KB 的就是 arm64 ,所以 x86_64 模拟器基本没用,而且需要。是 65536 ,那就是64K 对齐,属于 16K 的 4倍,那「理论上」应该是对齐的。最后,你还可以在 Android Studio 里运行你的 App,然后。
2025-05-12 18:00:20
1261
原创 2025 上半年 Flutter iOS 大坑超汇总,看看你踩中了没
这里的 iproxy 是一个命令行工具,一般用在和 USB 连接在 macOS 上的 iOS 设备进行通信的场景,它是 usbmuxd(USB Multiplex Daemon)的一部分,iproxy 的主要功能是将本地的 TCP 端口映射到 iOS 设备上的端口,从而实现通过 USB 进行网络通信而无需依赖 Wi-Fi。好了,基本上这就是 2025 年上半年你大概率会遇到的 iOS 大坑,其他的都是一些细枝末节的小事,比如修复了 iOS 上 PlatformView 出现闪烁问题之类。
2025-05-12 13:39:35
831
原创 在纯 Win/Linux 环境直接构建打包 iOS ,xtool 了解一下
之前聊 dart 开始支持交叉编译,可以在 win/macOS 构建 linux AOT 可执行文件时,就有人在说:「难道你还能在 win 上打包 iOS 么」,关于这个问题还真的可以,这就是今天要聊的:。 项目创建于 2024 年底,还是一个非常非常年轻的项目,起初是 2024 年作者 kabiroberai 在论坛分享了他的 Swift SDK for Darwin 项目,展示了如何在 Linux 上构建 iOS Swift 包,而这两天,它开源了成为了跨平台的 Xcode 替换实现,允许用户在 Li
2025-05-12 06:20:37
880
原创 Google 开始正式强制 Android 适配 16 K Page Size,你准备好了吗?
对于兼容,最简单的判断就是你是否使用了动态链接库 so ,如果用了陈年老库,那么你大概率是必须去做适配支持,同步的还有 Flutter 和 React Native 版本,升级到对应支持 16K 的版本是必须的:如果你的应用已经上架了 Google Play ,可以通过访问 Play 管理中心内的。
2025-05-09 15:33:44
874
原创 React Native 前瞻式重大更新 Skia & WebGPU & ThreeJS,未来可期
近日,React Native 发布了前瞻式的重大更新,主要围绕 Skia & WebGPU 等场景来布局未来的跨平台渲染场景,主要目的是在**“追求与 Web 的对称性”的同时,提供更强大的客户端渲染支持**。
2025-05-09 11:24:48
1026
原创 Compose Multiplatform iOS 稳定版发布:可用于生产环境,并支持 hotload
随着 Compose Multiplatform 1.8.0 的发布,iOS 版本也引来的第一个稳定版本,按照官方的原话:「iOS Is Stable and Production-Ready」 ,而 1.8.0 版本,也让 Kotlin 和 Compose 在移动端有了完整的支持。在 2023 年 4 月 Compose 发布了,而在 2024 年的 5 月的,一年后的今天,1.8 版本终于有迎来了 Stable 发布。三年之期已到,龙王归来?
2025-05-07 10:07:48
1092
原创 Flutter 合并 ‘dot-shorthands‘ 语法糖,Dart 开始支持交叉编译
感觉 Dart 在近期语法糖调整还是挺多的,就是大家更关心的 build_runner 优化和序列化改进何时才能见到。可以看到这是一个非常简单的语法糖,整体来说对于开发简化还是挺不错的,那么你会喜欢这个写法吗?因为目前该语法糖仅在 main 分支可用,需要 Dart 3.9 下在运行时执行。目前,执行这个命令会下载额外的 Dart SDK 二进制文件,并将它们缓存在。当然,既然说了是类型推断,那么 dynamic 肯定是不行,比如此时的。如果回到 Flutter 场景下,那就是如下代码所示,不管是各类。
2025-05-06 12:32:23
1006
原创 Android 16 的 Appfunctions API ,应用级 MCP 支持为 AI 场景打通最后一层壁垒
听起来是不是很熟悉?通过 「Appfunctions 」 App 可以向系统暴露各种各样的功能,并且可以和 Android 的系统服务集成,特别是与应用搜索框架的集成,从而让系统能够发现并索引到可用的 App 功能。这不就是 Android 上类 MCP 支持么,大胆猜测,。在之前需要唤起 App 执行然后再返回的操作,现在可以无缝直接联调,Appfunctions 支持异步处理,调用时 App 会收到成功响应、类似 HTTP 的错误代码或取消通知。和。
2025-05-06 06:31:56
976
原创 腾讯 Kuikly 正式开源,了解一下这个基于 Kotlin 的全平台框架
在 3月的时候通过我们大致知道了 Kuikly 的基本情况,Kuikly 是一个面向终端技术栈的跨端开发框架,完全基于kotlin语言开发,提供原生的性能和体验。Kuikly是基于Kotlin Multiplatform 的 UI 与逻辑全面跨端综合解决方案,由腾讯大前端领域 Oteam(公司级)推出,目的在于提供一套。
2025-04-27 21:52:01
1888
1
原创 Flutter 在 Dart 3.8 开始支持 Null-Aware Elements 语法,自动识别集合里的空元素
同时,官方在分析了大量开源 Dart 代码后(90019 个文件中的 17,941,439 行代码),发现这类需要支持的场景更多是Map而事实上,从以下例子可以看出来,在简化Map通过下面的简单例子,也可以看出来有了 Null-Aware Elements 之后在代码简化效果上很明显:当然,配合其他语法也能达到去 null 的效果,比如最简单的 for 循环,通过?i,就可以简单到做排除空数据的目的:当然,你可能会觉得本来 Dart 里就有很多?,比如??. 之类,加上语法之后会不会有歧义?
2025-04-27 09:42:59
380
原创 Flutter Widget IDE 预览新进展,开始推进落地发布
去年 11 月我们就聊过,而现在 Widget 预览功能终于开始推进正式落地,并发布了第二版的如果你没看到前文,建议看看 :https://blog.csdn.net/ZuoYueLiang/article/details/144023773其实一直以来由于 Flutter 具备 hotload 的能力,所以在 Widget Preview 能力这部分都被认为不是必须的场景,但是,Widget 预览最终还是被提上了议程。因为 Widget Preview 实际会在.dart_tool目录下创建一个名为。
2025-04-27 06:33:04
671
原创 Flutter 在全新 Platform 和 UI 线程合并后,出现了什么大坑和变化?
因为 Flutter Engine 不会直接控制线程的创建和销毁,而是通过控制任务队列的调度来间接影响线程的行为,通过合并任务队列,Engine 就可以让多个线程执行的任务集中到一个线程上,从而达到合并线程的作用。所以可以看到,增加启动线程的核心就是用原本的 Dart UI 线程进行启动,然后启动完成把任务队列合并到平台线程,回归平台线程的逻辑。而在启动之后,Dart 的主线程就会移动到平台线程,虽然说是“移动线程”,但是通过上面的代码我们可以看到,实际上就是将两个任务队列。
2025-04-24 08:14:12
961
1
原创 AI 傻傻分不清楚?那么多 AI 变体究竟怎么选?这里快速简单理清!
2025 年的 AI 确实越来越好用,甚至可选的大模型也越来越多,不管是 web chat 还是 ide coding,现在都提供了大量丰富的可选模型,但是这同样也带来了「选择困难症」,特别是对于用户而言,面对有限的「免费次数」或者「排队时间」,选错模型等于浪费生命,所以本篇意在简单介绍下这些模型和变体的区别,帮助你简单了解它们的适用情况。之所以会想写一篇这样的水文,也是刚好看到这下面这张图,目前在 AI 近亲变体领域,Open AI 可以说是越来越离谱,当你以为下一个版本是 GPT-5 时,Open AI
2025-04-21 06:16:14
511
原创 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
1277
原创 Android Studio Cloud 正式上线,不只是 Android,随时随地改 bug
Google 自 2023 年就开始执行所谓的 “效率提升计划”,目的是希望通过资源优化,将资源集中于AI、云计算等战略领域,就连 Android 这样的核心项目,也不得不作出相应让步,而目前 Firebase Studio 作为 「云+AI」 的产物,整体体验下来还挺不错,,主要白嫖的虚拟环境配置还是相当不错。,而 Firebase Studio 提供了基于云的开发环境,而这个开发环境融合了 AI 和原先的 Project IDX ,内置了 60 多个预构建的模板和工作环境,这里面就包括。
2025-04-14 06:17:26
792
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
908
原创 你为什么需要了解 Dart AST?一个简单的 bug 带你快速认识下 Dart Kernel AST
事情的起因是最近在 Github 收到了一个 issue ,内容是在获取l10n多语言相关实现时找不到该方法,从而导致的问题:而出现问题的地方是通过方式获取当前的多语言文本内容,但是这个用法在同个文件内的其他地方又是正常:而这个实现,是通过 Dart 的extension拓展来完成,并且返回时为了方便会通过!来强行忽略空问题:但是虽然知道了问题的点在于context获取不到l10n,但是一时半会也没看出来代码哪里有问题,因为这是一个正常的context,使用的位置也正常,通过这个context。
2025-04-09 06:24:22
623
原创 注意,暂时不要升级 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
877
原创 Flutter Roadmap 2025 发布,快来看看有什么更新吧
目前看来,「交叉编译 Dart AOT 」是我 2025 里最感兴趣的特性,当然,在 Windows 上直接构建出一个 iOS 的 Ipa 这种支持我估计不会有,毕竟这个的可行性和复杂度太高了。而最期待的莫过于 Canonical 团队的支持,希望目前多窗口的 draft 可以最终落地成功,毕竟这段时间的 Desktop 开发体验,缺少多窗口确实是很大的局限。那么,你最希望什么特性能在 2025 年被完成?
2025-04-03 06:24:01
774
原创 Android 确定废弃「屏幕方向锁定」等 API ,如何让 App 适配大屏和 PC/XR 等场景
最后,其实不难看出,在前面官方提及的 「桌面窗口模式」等场景,也看出来该操作是在为 Android PC 铺路,对于 Android PC,在集齐了「Linux 终端控制台支持」、「桌面模式」、「外部显示器支持」、「窗口多任务」,「最小化」,「多实例支持」、「Desktop View」、「外部显示器排列和切换」等场景后,在 App 端也终于开始迎来强制性的 UI 适配需求,看起来 Android 团队也重新开始重视 PC 场景,另外。比如在 API 36 时,如果你还是想「摆烂」,那么可以通过配置。
2025-03-31 06:21:11
1137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人