- 博客(69)
- 资源 (40)
- 收藏
- 关注
原创 Compose WindowInsets系统边衬区
从 Android 15 开始,默认布局会显示在 状态栏、导航栏 下面,也就是沉浸式。在列表滚动内容,往往底部加个 Spacer 适配 导航栏高度,这时候可通过。获取 输入法(IME) 的大小。兼容方法,在低版本也可开启。
2025-11-21 14:10:22
380
原创 Composable生命周期相关学习
注意:LifecycleXXXEffect {} 相关代码执行,不一定按照 Lifecycle生命周期顺序。LaunchedEffect 会在 进入重组时,启动协程任务。变化时,则会取消之前的协程,并在新的协程启动 新的挂起函数。变化时,会重组,执行清理代码 并 重新执行 Effect。Composable通过更新状态,进行重组更新。
2025-11-20 18:05:03
399
原创 Chrome 插件记录
在配置里设置字体不起作用,需要在 Chrome 外观 配置默认的 等宽字体,在 Windows 上显示终端的字体不是等宽的,光标会显示有问题。
2025-11-20 11:20:30
318
原创 Gradle Groovy 和 Kotlin kts 语法对比
而 Kotlin 方法调用 则是 infix 函数才能省去括号。可以是 调用函数,也可以是 属性 赋值。Groovy 方法调用可以 省去 括号。动态调用,maybeCreate。
2025-10-30 18:07:35
695
原创 源码阅读 LeakCanary
LeakCanary作为常用的内存泄漏分析工具,那是如何检测内存泄漏的呢?从注册入口分析,最新的。ObjectWatcher 完成 内存检查对象的 弱引用创建 和 GC处理。所有 Activity Fragment View 检测的。获取,并移除 要回收 的引用对象。利用 Android Api。创建 组件的内存检查对象。利用生命周期函数 检测。需要检查泄漏时,来调用。实现,延迟 5s 在。
2025-10-10 22:43:12
644
原创 Gradle创建插件记录
表示 不应用插件到 根项目。目的是 提前解析 插件,保持一样的版本。在 多项目工程中,对于 根项目(rootProject)可以 利用。新创建插件项目,默认在 build.gradle 中,命名发布的Artifact,可以只用 插件ID,来。脚本块,添加到 脚本的classpath中。注:第1种方法,最终也是 生成上述。上面方法 最终通过 资源目录。Gradle项目会优先查找。的方式处理目录下项目。以 插件id 为名的。通常默认配置会 立马。
2025-10-06 22:32:24
963
原创 Kotlin invoke 函数调用重载
Kotlin 允许对()运算符重载,对于实现重载的,可通过实例名直接调用。比如a()则会转换成a.invoke()。根据参数数量 匹配对应重载的函数,和都可以重载。
2025-10-06 13:53:08
345
原创 Podman容器开机自启
Podman是没有像docker-daemon守护进程的,开机启动需要利用Linux系统的 systemd 实现开机启动。这里服务本身是基于 容器或吊舱的,所以需先创建 容器或吊舱。在创建服务之前,先区分 镜像、容器、吊舱(Pod)概念。选项,而 Podman 依赖。和 Docker 一样设置。
2025-10-04 19:26:27
758
原创 腾讯CODING Maven的aar制品添加上传流程
在现代Android开发中,直接本地依赖aar不再推荐。尤其是在和 Flutter 等混合工程时,都直接依赖aar文件,很大概率会依赖冲突,并且版本配置也可能会有问题。推荐使用私有Maven仓库 来管理 库,对于自己项目可以发布到仓库,而三方aar文件 可以直接上传仓库 来管理。
2025-10-02 16:13:30
318
原创 Android Studio Logcat中 杀死应用
Android Studio旧版本中 Logcat 有 红点🔴 可以杀应用,可以验证页面状态恢复。新版本中,改为 Logcat 中右键 相关选项。
2025-09-30 18:23:54
351
原创 Gradle编译优化配置
动态版本和改变版本,会 拉取 Maven仓库 来检查新版本。默认 每24小时 检查一次。依赖的解析,根据 仓库的声明顺序 逐个搜索。把 依赖最多的仓库 放在 首位。默认Gradle某一时刻只执行一个任务。参数 可以并发执行不同的子项目。
2025-09-30 16:47:39
250
原创 Gradle 基础
build.gradle是编译流程的核心组件,定义项目必要的任务。settings.gradle是配置 哪些子工程构成 工程构建。
2025-09-29 23:08:03
315
原创 Android 12 SplashScreen启动屏
SplashScreen是 Android 12 引入的特性,为了统一启动屏和优化启动,增加了 纯色背景+自适应图标 的启动屏。
2025-09-29 22:52:00
1244
原创 Kotlin 流 Flow
挂起函数可以异步地返回一个值,而对于,可以使用流,使用emit(x)发射多个值,来收集值。默认 流是冷的,只有收集时才会执行。
2024-09-03 22:58:40
1273
3
原创 Kotlin 中缀函数(infix)
中缀函数,比如 10 shl 2 位左移操作shl就是 中缀函数,等同于10.shl(2)。类成员函数 或 扩展函数,增加infix修饰即可。
2024-08-17 22:17:42
637
原创 Kotlin 值类(Value Class)
在 Java 中,像IntegerDouble等都是 包装类,都需要创建对象 装箱 数值。很显然 创建对象是 消耗额外内存的,而 对于优化这种问题,Kotlin 引入了 值类,尽量避免装箱和脱箱。
2024-08-10 19:09:12
996
原创 IDEA 配置和缓存目录 设置
IDEA系列产品,一般会在用户目录创建和一般占用 少则 几百M,多则 几个G。以下总结了下更改配置目录的方法。
2024-02-02 09:58:40
10553
1
原创 Kotlin协程的JVM实现源码分析(下)
根据是否保存切换调用栈,在代码上的区别是:是否可在普通函数里调用,并暂停其执行。Kotlin协程,必须在挂起函数中调用和恢复,属于无栈协程
2024-01-21 20:47:54
1359
原创 Kotlin 尾递归函数
函数式编程中,重要的概念 尾递归。当一个函数,在函数最后调用 自身,称为,是一种特殊的递归函数。在JVM中,每次方法调用时,都会产生新的,消耗栈内存。当 调用层级过多时,就会产生错误。可以避免的风险。原理是:通过编译器优化 为或跳转,代替 原来递归调用。Kotlin 使用tailrec声明尾递归函数。
2024-01-21 19:30:00
844
原创 Kotlin 解构声明
在一些像Python的高级语言中,支持 多返回值。而在 Kotlin 中,虽然不直接支持,但有类似的解构对象功能,叫做解构声明。
2024-01-20 19:19:49
854
原创 Kotlin 类型别名
Kotlin 提供 给 已存在的类型 取 别名的功能,称为 类型别名(Type Aliases)。 对 简化 长类名 和 泛型类型名 很有用
2024-01-19 18:04:06
613
原创 Kotlin协程的JVM实现源码分析(上)
本文从协程的启动launch源码入手分析,协程JVM实现分为两篇: 协程启动和执行源码分析、无栈协程 和 Continuation
2024-01-18 14:34:17
992
原创 Kotlin 内联函数
内联函数 inline 通过把 函数的代码 直接插入 调用处, 而不是 调用函数 和 创建lambda函数类和对象,可以避免开销。
2024-01-14 20:59:14
1342
原创 Kotlin 函数式接口
只有一个抽象方法的接口,称为 函数式接口 functional interface,也叫做 Single Abstract Method(SAM) interface。
2024-01-09 22:40:26
952
原创 Android WebView 响应缓存 笔记
在 Android开发中,经常用到 WebView 进行 Hybrid 模式开发,而 缓存是 常见的优化方式。第1种方式,时间 格式复杂会难解析 和 分布式环境时间不统一,代替的方案是 优先使用。存在 时间格式复杂 和 系统时钟修改导致问题,推荐使用。,非条件请求,可以确保 从服务端响应 200,而不是。不使用缓存,也不验证,重新从服务器获取资源。时,网络请求 重新获取。不判断 响应缓存状态,直接 验证流程。的效果相同,DevTools可看。表示 不使用存储的响应,发送。2. Expires,指定。
2023-12-13 18:35:24
2069
原创 创建Gradle插件记录
文档:https://docs.gradle.org/current/userguide/plugins.html#sec:old_plugin_application。, 表示 不应用插件到 根项目。目的是 提前解析 插件,保持一样的版本。在 多项目工程中,对于 根项目(rootProject)可以 利用。命名发布的Artifact,可以只用 插件ID,来。新创建项目,默认在 build.gradle 中,脚本块,添加到 脚本的classpath中。的方式处理目录下项目。以 插件id 为名的。
2023-11-23 20:54:51
208
原创 MavenCentral库发布记录
最近发布了 Android 路由库,支持 AGP8、ActivityResult启动等特性。把提交到 Maven Central 过程记录一下。
2023-09-01 12:14:55
736
原创 SDK命令行工具配置
SDK命令行工具配置 最早的Android SDK工具包,包含一些GUI的工具。 而在一些场景(如打包)只需要命令行工具时,下载 command-line tools 即可
2023-07-28 15:44:14
1681
原创 FragmentContainerView和导航
替代FrameLayout作为Fragment的容器。 解决了FrameLayout在Fragment过渡动画 View显示次序问题,另外支持导航功能。
2023-07-21 11:28:12
1199
原创 ARouter There is no route match the path 原因
ARouter引入失败 There is no route match the path 原因
2022-11-23 17:02:38
1096
Windows API游戏编程入门到飞进
2011-05-03
各样java nes模拟器
2011-02-15
MTK斯凯平台(MRP)手机工具
2011-01-01
MTK改屏工具LCD Select
2011-01-01
手机端NES/FC模拟器游戏机 in java的源代码
2011-02-15
刷机MTK平台升级与备份和解锁PPT教程
2011-01-01
nes系统概述
2012-02-24
mynes 国产MRP nes模拟器的源码
2012-02-24
InfoNes模拟器源码
2012-02-24
half-nes 模拟器
2012-02-24
Git 代码合并 用 merge 还是 rebase ?
2024-01-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅