- 博客(53)
- 收藏
- 关注
原创 HarmonyOS 教学实战(六):复杂表单与校验体系(把“最难写”的模块写优雅)
📌 表单数据📌 错误信息📌都集中在一个模型里表单写得好不好,是区分“Demo 开发者”和“工程型开发者”的分水岭。能走到这一篇,你已经明显进入中高级 HarmonyOS 开发者的轨道了。
2025-12-23 09:06:05
167
原创 HarmonyOS 教学实战(六):复杂表单与校验体系(把“难维护”变成“好扩展”)
到这一篇为止,你已经能:✔ 设计复杂表单模型✔ 构建完整校验体系✔ 实现实时 & 提交校验✔ 拆分可复用表单组件✔ 保证表单代码长期可维护这是很多初级开发者长期卡住的地方。复杂表单的难点不在“输入”,而在“结构设计”。一旦你设计对了,表单会成为最稳定、最不容易出 Bug 的模块。
2025-12-22 09:05:04
208
原创 HarmonyOS 教学实战(五):路由、页面生命周期与多页面架构
路由和生命周期不是 API,而是“应用运行的骨架”。当你真正理解它们,你写的不再是“页面”,而是一个完整的应用系统。
2025-12-19 09:25:45
690
原创 HarmonyOS 教学实战(四):登录系统与全局状态管理(像正式 App 一样思考)
本文详细介绍了如何构建一个产品级的登录系统,从全局状态管理角度出发,提出完整的架构设计方案。文章重点讲解了五个核心环节:1)定义登录状态模型(AuthModel);2)封装登录服务(AuthService);3)创建全局状态Store(AppStore);4)实现Provider/Consume全局状态共享;5)登录页面与状态切换实现。通过这套方案,开发者可以解决Token存储、自动登录、多页面状态共享等实际问题,达到商业App的登录系统标准。全文强调"登录不是页面而是状态管理体系"的核
2025-12-18 09:06:03
361
原创 HarmonyOS 教学实战(三):列表分页、下拉刷新与性能优化(让列表真正“丝滑”)
《HarmonyOS列表性能优化实战》针对列表页面的三大痛点:一次性加载、刷新混乱和组件重建问题,提出完整解决方案。通过分页接口改造、Store层逻辑升级和UI层优化,实现分页加载、下拉刷新和性能提升三重目标。关键优化包括:使用@ReusableV2复用组件、状态收敛到Store、避免嵌套布局,并给出缓存策略建议。最终使列表具备工业级性能,支持流畅滚动、快速刷新和高效加载,达到商业应用水平。文中特别强调要避免常见分页陷阱,如key不稳定、状态分散等问题。
2025-12-17 09:18:00
382
原创 HarmonyOS 教学实战(二):加入网络请求与缓存(让你的应用真正“像个正式 App”)
已经在用 HarmonyOS 的正确方式写“真实应用”
2025-12-16 09:07:28
431
原创 HarmonyOS 教学实战:从 0 写一个完整应用(真正能跑、能扩展)
我们先从“数据”开始。id: number== id)写 HarmonyOS 应用,真正的难点不是 API,而是“如何组织代码”。如果你能按照这篇文章的方式写完一遍,你已经超过了大多数只会抄 Demo 的开发者。
2025-12-15 09:19:42
313
原创 HarmonyOS 应用性能优化全指南:渲染、状态管理、线程、内存、网络一站式提升
HarmonyOS 的 ArkUI 渲染性能非常强,只要遵循正确使用方式:状态拆分合理避免 build 做重活使用 V2 状态管理善用异步与 TaskPool控制对象生命周期优化列表和动画你的应用会明显更顺滑。有问题欢迎评论区交流!
2025-12-12 09:27:08
613
原创 【HarmonyOS 状态管理超全解析】从 V1 到 V2,一次讲清 @State/@Observed/@Local…等所有装饰器!附超易懂示例!
本文以轻松幽默的方式讲解了HarmonyOS ArkUI的状态管理装饰器。首先介绍V1体系的核心装饰器:@State(组件内部状态)、@Prop(父传子只读数据)、@Link(父子双向绑定)、@Observed/@ObjectLink(对象监听)、@Provide/@Consume(全局状态共享)和@Watch(状态变化回调)。随后分析V1的痛点,如概念分散、对象监听繁琐等,引出更统一简洁的V2新体系,包括@ComponentV2、@ObservedV2等核心装饰器。全文通过生活化比喻帮助开发者轻松理解状态
2025-12-11 10:50:42
1103
原创 去掉XOSLauncher自带的widget组件图标
背景:系统集成了XOSLauncher,无源码。要求去掉其自带的一键清理、一键壁纸图标。通过系统源码尝试无果,发现这是launcher通过hard-coding写入的。
2025-12-02 16:37:28
295
原创 Android14 预装搜狗输入法
本文介绍了解决Android系统预装搜狗输入法报错的方法。主要步骤包括:1)准备APK文件并提取lib内容;2)修改系统源码,添加默认输入法配置;3)在build配置中添加输入法模块。重点解决了Android SDK 30后不支持v1签名的问题,通过修改ApkSignatureVerifier.java文件,允许使用v1签名。该方法可确保搜狗输入法在系统预装时正常安装运行,避免签名验证失败的问题。
2025-11-28 10:30:00
249
原创 #RK3588 Android 14 虚拟相机 HAL 开发踩坑实录:从 Mali Gralloc 报错到成功显示画面
本文记录了在 RK3588 + Android 14 + Redroid 云手机环境下,开发虚拟相机 HAL 实现过程中遇到的一系列问题及解决方案。涉及 Mali Gralloc 的 buffer 权限问题、格式覆盖机制、Shutter 通知等关键知识点,对 Android Camera HAL 开发者具有参考价值。
2025-11-21 11:34:11
349
1
原创 Android Repo Manifest 文件详解(基于 Redroid 定制示例)
本文详细解析了Android开发中的manifest.xml文件结构,重点介绍了四个核心标签的功能:<remote>定义仓库地址前缀,<project>指定同步仓库及本地目录,<remove-project>用于移除AOSP默认仓库以实现定制化替换,<include>用于模块化引入其他manifest文件。文章特别强调了groups属性对项目分类管理和revision分支继承机制的重要性,并提供了Redroid虚拟化设备定制Android系统的典型案例,展示了
2025-11-17 16:50:42
949
2
原创 Rust 精要系列(十)—— 宏系统与元编程解析
("值为:{}", $val);my_print!(42);my_print!$val:expr表示匹配一个表达式;=>后的代码会被替换到调用点;编译器在展开时会直接生成对应的println!调用。假设我们想为结构体自动实现一个打印 trait。use syn;println!("{:?}", self);syn用于解析输入 TokenStream;quote!
2025-10-30 19:05:49
845
原创 Rust 精要系列(九)—— 模块化设计与项目架构实践
Rust 的模块系统在语法层面严格控制作用域与可见性,使得大型工程的组织更安全、更清晰。良好的模块化设计不仅有助于团队协作,也为代码的可维护性和扩展性奠定基础。通过合理使用modpubtrait与workspace,Rust 项目可以轻松实现从单文件到多 crate 的平滑过渡。下一篇,我们将继续深入探讨Rust 精要系列(十)—— 宏(Macro)系统与元编程解析,揭开 Rust 编译期魔法的真正力量。
2025-10-30 17:07:36
745
原创 Rust 精要系列(八)—— 异步编程与 Future 深入解析
Rust 的异步系统是一种零成本抽象通过编译器在编译阶段生成高效的状态机,实现与同步代码几乎相同的性能。同时,借助严格的类型系统,Rust 保证了异步代码在多任务并发下的内存与线程安全。从Future的惰性求值到运行时调度的精妙设计,Rust 让开发者可以在无需垃圾回收的前提下,编写出高效、安全、可预测的并发程序。在下一篇中,我们将继续深入探讨Rust 的模块化设计与大型项目架构实践,帮助你更系统地组织与维护复杂的 Rust 工程。
2025-10-30 17:01:49
668
原创 Rust 精要系列(七)—— 并发与多线程模型解析
Rust 的并发系统并非“让你更容易写出并发代码”,而是让错误的并发代码无法通过编译。借助所有权、生命周期与 trait 系统,Rust 构建了一套零成本抽象的并发模型,使得开发者能够编写高性能且安全的并行程序。在下一篇中,我们将继续深入探讨异步 I/O 与 Future 执行原理,进一步理解 Rust 如何在性能与安全之间取得平衡。
2025-10-30 16:57:16
751
原创 Rust 精要系列(六)—— 智能指针与内存安全机制解析
本篇系统解析了 Rust 智能指针与内存安全机制的核心原理:智能指针是所有权系统的扩展,实现了更灵活的内存管理;Box提供堆分配能力;Rc与Arc提供共享所有权;RefCell实现运行时可变性;Weak防止循环引用;所有智能指针都依托Drop实现自动资源清理。Rust 的内存安全不是依靠垃圾回收,而是通过编译期检查与智能指针协同实现的确定性释放。理解这些机制,意味着你已经掌握了 Rust 的底层内存哲学。从这一点开始,你的 Rust 程序将真正做到“安全与性能并重”。
2025-10-30 16:53:02
798
原创 Rust 精要系列(五)—— 泛型与 Trait 实战
本篇文章系统介绍了 Rust 中泛型与 Trait 的核心机制与实战场景。泛型让代码更通用、更可复用;Trait 定义了类型的共同行为,是 Rust 抽象的重要基础;泛型与 Trait 的结合,实现了静态类型系统中的多态;Trait 对象提供运行时多态支持;单态化机制保证了泛型代码没有运行时性能损失。掌握泛型与 Trait,你就掌握了 Rust 类型系统的核心思想。它是理解后续主题——异步编程、智能指针、并发模型等高级特性的关键前提。
2025-10-30 16:40:05
745
原创 Rust 精要系列(四)—— 模式匹配与枚举实战
本文重点介绍了 Rust 枚举与模式匹配的核心概念及应用:枚举可以携带多种类型数据,是 Rust 表示多态与状态的核心工具;match、if let、while let 等语法使控制流更简洁;@ 绑定与模式守卫增加了匹配灵活性;与所有权、借用结合时,需要注意移动与引用;枚举在错误处理、状态机和业务逻辑中有广泛应用。掌握枚举与模式匹配,可以让你的 Rust 代码更安全、可读、可维护,也为后续深入学习异步编程、泛型和复杂数据结构打下基础。
2025-10-30 16:23:29
461
原创 Rust 精要系列(三)—— 所有权(Ownership)与借用(Borrowing)的底层原理与实战
通过本文,你掌握了:所有权(Ownership)的核心规则所有权移动(Move)与复制(Copy)借用(Borrowing)及可变/不可变引用规则所有权和借用在函数参数、返回值中的应用Rust 编译器的底层安全检查原理理解所有权与借用,是写出安全高效 Rust 代码的基础。在下一篇Rust 精要系列(四)—— 模式匹配与枚举实战,我们将进一步探索 Rust 的控制流利器,让你在复杂数据处理场景下写出优雅代码。
2025-10-30 15:32:01
559
原创 Rust 精要系列(二)—— 生命周期(Lifetimes)详解:理解引用背后的时间维度
生命周期系统是 Rust 保证内存安全的核心机制之一。它帮助编译器在编译期检查所有引用的有效性,而无需运行时开销。本文你学到了:生命周期的定义与标注方式;生命周期省略规则(Elision Rules);在结构体、方法中的使用;'static生命周期的意义;生命周期与泛型 / Trait 的结合;常见错误与修复思路。掌握生命周期后,你的 Rust 代码将变得更安全、更可预测。在下一篇中,我们将进入Rust 精要系列(三)—— 所有权与借用的底层原理与实战。
2025-10-30 15:10:47
663
原创 Rust 精要系列-模式匹配(Pattern Matching):控制流与数据解构的强大利器
Rust中的模式匹配是其强大的语法特性之一,通过match、if let等机制实现控制流分支和数据解构。文章系统讲解了模式匹配的基本语法,包括对元组、结构体和枚举的解构,以及if let/while let的简化用法。同时介绍了@绑定、模式守卫等高级特性,并重点分析了模式匹配与所有权/借用机制的交互注意事项。文章还列举了穷尽性检查、意外移动等常见错误及修复方法。模式匹配作为Rust的核心特性,能帮助开发者编写更安全、高效且可读性强的代码。
2025-10-30 14:51:25
801
原创 《HarmonyOS第一课: Navigation组件》学习总结
总的来说,这门《HarmonyOS Navigation 组件教程》是一门内容扎实、结构清晰、实践性强的课程。它不仅教会你 “怎么用”,更引导你 “怎么设计” ——从页面跳转到模块化导航,从参数传递到结构管理。学习后,我感觉自己在 HarmonyOS 应用开发中迈出了一大步:能够自主设计导航机制,而不仅仅被动跟随。更多精彩内容,请关注公众号:【名称:HarmonyOS开发者技术,ID:HarmonyOS_Dev】;也欢迎加入鸿蒙。
2025-10-22 09:57:55
8803
原创 《HarmonyOS第一课: 使用Tab构建页签》学习总结
课程从概念入手,逐步深入到参数解析、自定义样式和状态控制,既讲清了组件机制,又鼓励动手实践。学习完本节课程,开发者不仅能独立搭建多页签主界面,还能理解HarmonyOS组件化UI的设计思想,为后续更复杂的应用开发奠定坚实基础。从教学逻辑来看,课程内容循序渐进,层层递进——从概念到属性说明,再到动手实践和自定义设计,帮助学习者建立完整的组件使用思路。组件在不同设备布局中的多样用法。最值得肯定的是课程对开发者“动手能力”的培养——每一节都配有实用代码片段,并且注重展示属性间的组合效果,使学习者能快速上手应用。
2025-10-22 09:57:43
6149
原创 《HarmonyOS第一课: 滑动组件构建丰富的页面》学习总结
在 ArkUI 学习体系中,《HarmonyOS 滑动组件构建丰富的页面》视频教程可说是承上启下的一节关键课程。它在前几节“布局与基础组件”的基础上,进一步讲解了更复杂的 UI 构建逻辑,让我们能够从单一页面的组件堆叠,过渡到一个真正的应用首页。课程内容涵盖四类常用组件的使用,通过首页示例将这些组件灵活组合,为开发者提供了完整的页面构建思路。
2025-10-18 10:57:54
6044
原创 《HarmonyOS第一课: List组件与首页构建》学习总结
课程从页面结构分析开始,通过“我的设置页”示例介绍 List 组件的使用场景。讲师指出:“整个页面采用 Column 容器纵向布局,标题、用户信息、列表内容和退出按钮依次排列,其中核心内容区域通过 List 组件实现。这一讲解让人清楚地认识到:在 HarmonyOS 的 ArkUI 架构中,List 是一种能实现可滚动的内容展示和高效数据管理的容器组件,适用于多种动态数据列表的应用场景,比如消息列表、商品清单、设置选项等。
2025-10-18 10:57:41
8733
原创 《HarmonyOS第一课: 布局与容器》学习总结
整体来看,《HarmonyOS 布局与容器》视频教程内容完整、讲解细致,是入门 ArkUI 开发的重要课程之一。它不仅讲清了“怎么用”,更强调了“为什么这样用”,让学习者真正理解布局背后的逻辑与设计哲学。无论是新手入门还是已有其他框架经验的开发者,这门课都值得系统学习与反复复盘。推荐指数:★★★★★适合人群:初学 HarmonyOS/ArkUI 的开发者、UI 工程师、移动端跨平台开发者。更多精彩内容,请关注公众号:【名称:HarmonyOS开发者技术,ID:HarmonyOS_Dev】;
2025-10-17 10:14:56
5547
原创 《HarmonyOS第一课: 常用组件》学习总结
讲解清晰,层次分明;示例完整,可复用性强;代码逻辑贴合真实开发场景;注重视觉与交互细节,兼顾开发与设计思维。学习完本课程后,我不仅能独立完成简单的 UI 搭建,还能理解组件间的协作关系与属性影响,为后续学习更复杂的自定义组件与状态管理打下坚实基础。
2025-10-17 10:14:24
8536
原创 《HarmonyOS第一课: 声明式 UI入门讲解》学习总结
课程接下来讲解了如何使用@Component和@Prop创建可复用的组件,如ToDoItem。并通过ForEach语法展示如何构建一个多项的待办列表。})这一节让学习者掌握了 ArkUI 的组件化思想。通过组件组合页面的方式,与 React 或 Vue 框架的理念一脉相承,非常现代化。课程最后对整个 ToDo 案例进行了总结,梳理了从声明式编程模型到组件生命周期的完整知识体系。整门课程逻辑清晰,讲解方式循序渐进。通过一个小而完整的案例,覆盖了 ArkUI 的主要基础知识点。
2025-10-15 22:55:21
5692
原创 《HarmonyOS 第一课:ArkUI 框架基础知识》学习总结
整体而言,《ArkUI 框架基础知识》课程内容扎实、节奏适中,讲解逻辑循序渐进。讲师在每个技术点的过渡上衔接自然,既有理论高度,也有代码实操的细节展示。课程的视觉化演示(如 CodeLabs 页面)帮助初学者更直观地理解 ArkUI 的强大能力。学习完本节课,我最大的感受是:**ArkUI 的声明式范式真正降低了 UI 开发的心智负担。**只需关注“想要什么界面”,无需过多考虑“如何渲染”;**组件体系完备,布局灵活。**从基础展示到复杂交互,ArkUI 都提供了标准化实现路径;
2025-10-15 13:48:06
10716
原创 Android12L 微信分栏模式(activity嵌入)适配支持
实际上就是修改你设备的品牌名,可能改成三星的也可以,没测试。改完这个以后微信就可以分栏显示了,以上是在android原生源码上测试的。如果改完之后无效,你需要查阅这块的源码,看看是不是状态栏和导航栏等修改导致了无效。这个时候整编代码之后,像原生系统设置,QQ等应用(应用本身适配过的)都已经是上图的样子了,但是微信还没有生效。在大部分品牌手机上,只要你的android系统超过Android12L的,微信基本上都支持分栏功能,即如下图所示。我们用的是rk3588的平台。如何在自研的硬件设备上实现这种效果呢?
2024-02-22 16:29:55
390
原创 Framework死锁的问题总结
综上所述,由于对死锁这个问题没有太多经验,导致问题解决起来没有头绪,花费了较多人力和时间。这次的事故的经历丰富了我们的开发经验,填补了死锁这也故障的空白。我们后续实现业务逻辑时要时刻将这一重要经验考虑进去,防止再次发生这种情况,以及再次发生时为我们如何解决死锁提供了宝贵的经验。
2023-12-18 09:53:09
1160
原创 Android12 framework部分第三方APP断电后再次打开闪退的问题
有一些第三方app如鲜时光,腾讯视频等会有这么一个场景,打开这些APP之后突然断电,再次上电,这些APP打开之后就闪退无法再次打开了。一般情况下,对于我们自研的APP来说,在write()方法后close()数据流之前sync()一下就行了,比如系统默认设置在设置12/24小时制或者是设置静态IP动态IP后就会出现这种情况,也可以用这种方式解决。但是这种第三方的,我们无法控制,而且这两个APP还比较特殊,它们都是用了FilterOutputStream写数据的,所以需要在这个类里进行修改。
2023-12-18 09:41:03
818
1
原创 Android12 framework适配竖屏应用在平板上对话框显示不全问题
如果你遇到竖屏应用对话框显示不全这个问题,可以这样修改。思路是重新计算一下对话框的宽度,他显示是基于屏幕的宽度来的。大屏设备上有部分app对话框显示不全,比如这样。
2023-12-14 11:12:04
738
1
原创 Android12 通过开机脚本预装APK不占用super分区
系统定制往往需要预装APK,这种文章网上很多,但我们的需求是系统通过一个脚本开机后去安装apk包并且不占用super分区。这里介绍一下这种方法,分为selinux打开和关闭两种情况,打开时权限要求严格需要做一些尝试。说明:以下修改的路径跟源码实际路径并不一致,因为我们代码做了很多修改和overlay, 你只需要找到对应代码理解修改的原理,自行添加即可。有问题随时留言。
2023-12-11 10:54:49
1363
1
原创 Android12 解决应用使用Settings异常断电数据丢失的问题
后者通过精确控制需要保护的目录来减少性能损失,但是缺点是要非常清楚哪些目录需要保护,并 且不同文件系统的命令和标志都不一样,需要把你可能用到的所有文件系统的 ioctl 都写一遍,并且有 些文件系统可能不支持这种方式(f2fs 和 ext4 都是两种方式都支持,而 fat 则不支持 ioctl 方式)。在Android12中,Settings写操作在以下路径下,它是采用了AtomicFile的方式,这种方式可以避免断电文件损坏,但是避免不了刚写入的数据丢失。修改在最下面,主要修改底层文件系统。
2023-11-08 09:40:08
1951
3
原创 Android12 Framework修改平板上竖屏应用宽高比
在安卓平板上竖屏应用一般宽高比在1.7左右,导致竖屏应用显示特别窄,就容易出现很多适配问题,如微信登录和注册按钮叠在一起。此时就需要能够修改竖屏应用的宽高比来解决这个问题。我这种修改方法比较简单粗暴,主要起作用就是在这个地方,根据你们UI尺寸自行计算出一个合适的宽高比即可, 此修改不影响横屏应用。上图是修改前的效果。
2023-10-26 13:59:55
554
1
原创 Android12 解决预装应用获取应用大小为0的问题
最近发现有些预装的APP在原生设置-应用-存储里面显示的应用大小为0或者很小(只有kb级别)的情况,这是由于系统中对这类应用没有进行大小计算导致的,经过对代码追溯和跟踪,修改以下位置即可解决。有疑问或需求请留言。
2023-09-19 20:17:33
542
原创 [Framework]将系统APP独立在AS中开发,有提示
7.sync之后如果出现以下绿色点即表明连接成功,就可以在Android Studio里面修改SystemUI2了,写代码有提示和跳转且主动保存。该命令的意思是将源码路径和项目路径软连接。即为即将要修改的SystemUI2[源码路径]创建一个快捷方式SystemUIProject[项目路径]。注意:不同的项目会有不同的报错,原因是原来的项目里面Android.bp里的编译冲突,遇到报错删除相应的报错即可。5. 修改项目中SystemUI2里面的Android.bp文件,将其中的。有疑问的地方请留言。
2023-09-07 09:59:20
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅