- 博客(269)
- 资源 (10)
- 收藏
- 关注
原创 使用Android Studio开发Flutter需要安装的插件
(根据assets文件夹下的文件生成一个包含这些图片路径的常量类)(可以预览字符串的图片路径,如'')(根据json字符串生成类文件)
2025-11-10 10:31:19
113
原创 Java 版本与 major version 对应关系
版本兼容性:低版本 Java 运行时(JRE)无法加载高版本编译的 class 文件(例如 Java 8 无法运行 major version 53 及以上的类,即 Java 9+ 编译的文件),会报类似 Unsupported major.minor version xxx 错误。LTS 版本:长期支持版本(如 8、11、17、21)的主版本号(52、55、61、65)在实际开发中更常见,需重点关注。根据此对应关系,可快速通过报错信息中的 major version 判断所需的 Java 版本。
2025-10-20 11:25:26
501
原创 Android Studio Meerkat 打开flutter项目没有自动选中main.dart configuration
在使用Android Studio的MeeRkat插件(通常指的是MeeGo IDE,但现在通常指的是基于Android Studio的插件,比如Flutter插件)来开发Flutter项目时,确保Flutter项目的运行和调试配置正确设置是很重要的。在弹出的窗口中,确保 Flutter 选项卡中的 Project directory 指向你的Flutter项目目录。现在你应该可以通过点击工具栏中的绿色播放按钮(运行)或蓝色调试按钮(调试)来运行或调试你的Flutter应用了。
2025-10-09 17:36:42
427
原创 flutter mixin
在 Flutter 中,mixin 是一种代码复用机制,允许你在多个类之间共享方法和属性,而无需使用继承。它类似于 "部分类" 的概念,能帮助你避免多重继承带来的复杂性。在 Flutter 框架中,很多地方都使用了 mixin,例如 SingleTickerProviderStateMixin 用于提供动画控制器所需的 ticker。给 mixin 起有意义的名字,通常以 "able" 或 "Mixin" 结尾。比继承更灵活,一个类可以引入多个 mixin。可以访问引入它的类的方法和属性。
2025-09-26 13:26:22
413
原创 Flutter 页面跳转
context.pushRoute(DetailRoute(id: '789', name: 'auto_route示例'));'/detail': (context) => const DetailPage(), // 需要参数时需特殊处理。arguments: {'id': '456', 'name': '命名路由示例'}, // 传递参数。appBar: AppBar(title: const Text('编辑页面')),initialRoute: '/', // 初始路由。
2025-09-25 13:44:21
435
原创 Flutter 中使用 Color 的最优方案
使用场景:UI 中直接调用,如 Text("内容", style: TextStyle(color: AppColors.textPrimary)),后续修改颜色只需改AppColors,无需全局搜索。在 Flutter 中使用 Color 的最优方案,核心是统一管理 + 按需扩展,既保证代码可维护性,又兼顾灵活性。避免在 UI 中硬写Color(0xFFxxxxxx),通过专门的类集中管理颜色,是最关键的优化。推荐实现:创建AppColors工具类。1. 基础:统一颜色管理(核心方案)
2025-09-23 16:05:44
500
原创 清除gradle缓存的某个依赖
Windows: C:\Users\<用户名>\.gradle\caches\modules-2\files-2.1。路径结构通常为:groupID/artifactID/version/直接删除该依赖的版本目录即可清除其缓存。找到依赖在缓存中的路径。
2025-09-15 14:08:08
307
原创 MVVM开源项目
这是一个包含两个开源项目的摘要: WanAndroidMvvm - 基于MVVM架构的玩Android客户端项目,提供完整的Android开发示例,包含最新Jetpack组件使用。项目地址:GitHub AppTemplate - 一个Android应用开发模板,包含常用功能模块和基础架构,适合快速启动新项目。项目地址:Gitee 这两个项目都为Android开发者提供了可参考的实现方案,前者侧重MVVM架构实践,后者提供应用开发的基础模板,都可以作为学习和项目开发的参考。
2025-08-19 17:36:01
182
原创 CoroutineScope(Dispatchers.Main + Job()) 不加Job()行不行
Job是协程作用域的核心组件跟踪协程的生命周期(启动、运行、完成)。支持协程的取消操作。防止内存泄漏(通过主动取消或与宿主生命周期绑定)。在 Android 中,永远不要使用无 Job 的协程作用域。优先选择或,若需自定义作用域,必须显式添加Job并在适当时候取消。
2025-07-18 11:25:15
550
原创 非MVVM模式,使用Coroutine
通过合适的作用域管理生命周期,用挂起函数简化异步逻辑,按架构分层传递结果。无论是 MVC、MVP 还是简单场景,协程都能有效解决回调地狱问题,关键在于避免内存泄漏和确保 UI 操作的线程安全。
2025-07-18 10:51:08
980
原创 鸿蒙开发状态管理的装饰器V1
State父子单向传递:父@State→ 子@Prop父子双向传递(基础类型):父@State→ 子@Link@Observed(修饰类) + 父@State→ 子@Track手动指定依赖项。
2025-07-10 14:02:35
390
原创 Kotlin 中ArrayList、listOf、arrayListOf 和 mutableListOf区别
是常用的集合创建方式,但它们在类型、可变性和使用场景上有明显区别。通过理解这些差异,可在 Kotlin 中更安全、高效地使用集合。在 Kotlin 中,
2025-06-20 14:54:16
1546
原创 Android开发常用Kotlin高级语法
Kotlin 的扩展机制允许为现有类(包括 Java 类)添加新功能,无需继承或修改原类。在 Android 中,常需要根据泛型类型动态创建对象或解析数据(如 JSON 反序列化),具体化类型参数可直接获取类型信息。Android 中操作 View 时,常需要处理可见性、点击事件等重复逻辑。在 MVVM 架构中,常用密封类表示 UI 状态(加载中、成功、失败),确保状态覆盖全面,避免遗漏。可用于创建匿名类的实例,常用于实现接口或继承类的一次性对象。)允许在运行时访问泛型类型,解决 Java 泛型擦除问题。
2025-05-29 17:55:11
1337
原创 Android 异步编程中协程的完整实战示例
通过以上示例,可以总结出 Android 协程开发的最佳实践结构化并发:始终使用或管理协程生命周期,避免内存泄漏。明确线程分工:IO 操作使用,计算任务使用,UI 更新使用(默认)。异常处理分层网络 / 数据库层:返回Result类型或抛出可恢复异常。ViewModel 层:统一捕获异常并转换为 UI 状态(如LoadingErrorUI 层:根据状态更新界面,避免在协程内直接操作 UI(通过StateFlowLiveData间接更新)。资源清理:使用或use。
2025-05-29 17:42:26
1016
原创 Android正则表达式
匹配邮箱用户名:必须包含至少一个字母、数字或特殊字符。匹配邮箱域名:必须包含至少一个字符(任何字符)表示字符小写大写的a-z和数字0-9以及下划线。表示abc在一个字符串的结尾,即不匹配。扩展前一个字符m至n次(含m和n次)前一个字符的0次或者无限次的扩展。前一个字符的1次或者无限次的扩展。字符集,对单个字符给出取值范围。在一个字符串的开头,即不匹配。由26个字母和数字组成的字符串。前一个字符的0次或者1次扩展。由26个字母组成的字符串。组成单词的字符,等价于。分组标记内部只能使用。
2025-05-23 15:10:34
712
原创 Android滑动冲突解决方法
点击事件都先经过父容器的拦截处理,如果父容器需要此事件就拦截,如果不需要此事件就不拦截。(比较符合点击事件的分发机制)父容器不拦截任何事件,所有事件都传递给子元素,如果子元素需要此事件就直接消耗掉,否则就交给父容器处理。(与Android事件分发机制不一样)
2025-05-22 10:17:19
442
原创 Kotlin 遍历
在 Kotlin 中,遍历(迭代)是操作集合、数组、范围(Range)等数据结构的常见需求。Kotlin 提供了多种遍历方式,语法简洁且功能强大。Kotlin 的List和Set是最常用的集合类型,遍历方式包括传统for循环、forEach高阶函数、(带索引)等。
2025-05-08 13:46:19
1326
原创 android studio预览布局问题
修改android studio安装目录bin文件夹下的studio64.exe.vmoptions文件的这两个配置项为下面这样。问题描述:预览缓慢,并且预览超时。
2025-04-24 17:23:33
221
原创 在Android Studio中,如何快速为变量添加m?
Live Templates 能通过预设模板快速生成代码,你可以自定义一个模板来自动添加。前缀的变量声明,你只需按照提示填写变量类型、名称和初始值等信息。键,Android Studio 就会自动插入带有。在代码中输入你设定的缩写(如。
2025-03-19 10:34:37
385
原创 gradle下载依赖慢
maven { url 'https://maven.aliyun.com/repository/google' } // 阿里云 Google 仓库。maven { url 'https://maven.aliyun.com/repository/public' } // 阿里云镜像。
2025-02-13 10:13:54
202
原创 Android使用post异步刷新UI会闪一下,解决办法
TextView在布局文件中设置android:layerType="hardware"来开启硬件加速。
2024-12-30 17:24:09
185
原创 Android Studio调试布局插件
(1)Settings->Plugins中搜索Legacy Layout Inspector,安装即可。(2)安装后,可在Tools->Legacy Layout Inspector看到。备注:Build Variants为debug,才可以使用。
2024-09-14 16:51:05
566
原创 github上的项目npm install报错
解决办法:尝试安装不同版本的node.js,再执行npm install试试。原因:本地npm版本可能不兼容。
2024-07-02 13:44:13
558
1
原创 交换机的interface ethernet 0/0/1 或0/0/3或者GigabitEthernet 0/0/1怎么对应到物理上的具体是哪个端口
3. 至于z一般会标示在每一个端口旁边,当然有些设备对连续密集端口只对首尾端口进行标示,比如1、2和23、24,其他则不标示。如果你面对的只是一台设备,则x永远为0,如果你的设备上根本没有其他扩展插槽,则y也永远为0,否则你必须自己识别x的设备顺序,或在设备上找到插槽的编号y。、第z端口,其中z是可以在同设备、同板卡上重复出现的,但分别对应Fastethernet(百兆端口)和Gigabitethernet(千兆端口)。5. 确定E或G的x/y/z后,按照1,2,3中的描述去确定具体物理位置。
2024-04-23 17:39:54
3755
原创 查看sqlite数据库的可视化软件
GitHub - pawelsalawa/sqlitestudio: A free, open source, multi-platform SQLite database manager.
2024-03-06 17:43:56
264
原创 Android Studio Hedgehog | 2023.1.1 Patch 2设置jdk版本的方法
File->Settings->搜索Gradle,在Gradle节点修改。
2024-03-05 15:21:21
1336
1
android实现顶部弹出式消息通知
2023-06-25
win系统查看sqlite数据库的工具,解压即可使用
2023-01-19
Bluetooth.zip
2020-12-31
layout目录下布局文件字符串硬编码抽出替换java脚本
2018-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅