- 博客(159)
- 收藏
- 关注
原创 Android 让 Dialog 支持 lifecycleScope 和 viewmodel 生命周期
一般情况下 Dialog 是与对应的 Activity 所绑定的,所以一般情况下 Dialog 的生命周期也是与 Activity 所绑定。但是在特定的业务场景中,是需要 Dialog 去自己管理生命周期的,这种情况就需要我们去自己封装一个支持生命周期相关方法的基类了
2025-05-06 12:18:00
372
原创 基于 BaseRecyclerViewAdapterHelper 4.x 的封装
减少了 onCreateViewHolder 方法和 VH 类的模板代码,进一步提升开发效率
2025-04-18 11:37:13
303
原创 Android Kotlin 实用扩展函数(持续更新)
在 Android Kotlin 实际的开发过程中,使用扩展函数能够使代码。本文会列举 Android 开发常用的扩展函数(持续更新),这是提高开发效率的一个核心的点。
2025-03-26 10:34:10
450
原创 Android Kotlin Flow 冷流 热流
在 Android 开发中,Flow 是 Kotlin 协程库的一部分,用于处理异步数据流的一个组件。Flow 可以分为两种类型:冷流(Cold Stream)和热流(Hot Stream)
2024-11-07 15:35:50
844
原创 Android ASM 修改 .class 文件
在 Android 开发中,ASM 是一个通用的字节码操控和分析框架,它主要用于读取、修改和生成 Java 字节码。
2024-11-04 10:59:12
658
原创 Android Choreographer 监控应用 FPS
Choreographer 也可以帮助我们获取帧时间信息,从而为性能监测和优化提供重要的数据支持。
2024-09-21 15:55:05
920
原创 Android Studio Git Log 操作
Android Studio 中 Git Log 提供了一个全面直观的方式来管理和分析我们的 Git 提交历史,使得版本控制更加高效和便捷
2024-06-17 17:21:06
1028
原创 Android Studio 2024.1.1(Koloa)版本 Profiler 工具变动
在本次更新的 Profiler 当中虽然功能上是没有变动的(还是 CPU/Memory),但是从使用体验、性能、管理上有了很大的优化,方便我们使用Profiler 来对应用的质量上做提升
2024-06-17 16:56:52
3804
6
原创 Android Kotlin 异步操作回调转换为挂起函数
通过这个转换,我们可以利用 Kotlin 协程的强大特性来简化异步代码,让代码更易读且更具维护性
2024-06-04 17:55:20
883
原创 Android Ktor 网络请求框架
Ktor 是完全用 Kotlin 编写和设计的,整个配置和使用都是原生的 Kotlin 风格,这使得 Kotlin 开发者们可以更自然和简洁地进行代码编写。而 Retrofit 虽然可以与 Kotlin 很好地集成,但本质上还是 Java 风格的库,某些地方可能显得冗长。
2024-05-24 15:33:40
1407
原创 Android Studio 出现 Unrecognized Windows Sockets error: 5: connect 或 Connect timed out 问题
在根目录下的 gradle -> gradle-wrapper.properties。这里就是这个项目所配置的 gradle 版本,记住这个版本(例子为 8.6-bin)然后重新在 Android Studio 上 Sync 就可以了。2、自行下载对应的 gradle 版本放到本地的环境当中。在这里找到项目的 gradle 版本,点击就会自动下载了。从 github 上拉取的项目偶尔会出现这两个问题。都是下载对应的 gradle 版本失败所导致的。1、科学上网(一般都能解决了)
2024-05-09 15:10:41
740
1
原创 KMP + Compose 跨平台 Android IOS 实战入门
通过 KMP + Compose 框架,我们可以编写一次代码,然后在不同的平台上进行部署和运行,大大提高了开发效率和代码重用性
2024-05-08 20:21:29
5462
原创 Android Perfetto 监控应用启动耗时
在实际的开发过程中,做启动优化和监控单纯靠 Traceview 是不太准确的,因为 Traceview 获取的信息比较局限,而 Perfetto 能站在上帝视角来查看应用的启动过程。
2024-04-23 16:35:32
1584
4
原创 Android(Kotlin) 委托(by) 封装 SharedPreferences
使用委托可以提高代码的灵活性和可读性,减少样板代码的编写,提高代码的复用性和可维护性。
2024-04-08 18:33:22
674
1
原创 Android RecycleView 异步缓存 itemView 提升滑动性能
最近在做性能检测的过程当中,设置了多布局的 RecyclerView 在快速滑动中会有一些卡顿,所以将解决方案在此文记录一下
2024-04-01 17:10:46
677
1
原创 Android ANR 日志分析定位
/data/anr/ 路径只有 root 权限才能够进行访问,在非 root 权限的情况下需要 adb 命令导出相关的日志文件后筛选查看 ANR 的日志信息
2024-03-01 17:53:33
1599
原创 Android TextView.setText() 引发的卡顿问题
最近在检测性能中,发现 RecycleView 在滑动过程中的TextView.setText() 有一些耗时,从主观上体验也会有一点卡顿,然后进入源码看看是怎么回事
2024-02-21 12:00:23
1969
原创 Android String.format() 引发的卡顿问题
最近在检测应用的性能时,发现在短时间内大量调用 String.format() 时会引发卡顿,所以马上进入源码看看有没有哪里能够优化的
2024-01-31 14:47:59
735
原创 Android Studio 下载安装配置使用入门【2024年最新】
Android Studio 是谷歌官方提供的主要集成开发环境(IDE),专为 Android 平台应用开发而设计。
2024-01-29 21:48:44
8269
10
原创 Android imageView.setImageXXX() 引发的卡顿问题
最近在检测应用的性能时,发现 imageView 在加载图片竟有一些耗时,于是进入源码来看看这几个给 imageView 设置图片的方法都有什么区别
2024-01-29 16:27:17
1025
原创 Java 四大引用
Java 中的四大引用类型是指 JVM 提供的四种不同生命周期的引用类型,这些引用类型主要用于帮助我们更好地控制对象的生命周期,尤其是在内存管理和垃圾回收方面。
2024-01-23 15:30:52
451
原创 Android Traceview 定位卡顿问题
Traceview 可以通过图形化界面查看应用程序的代码执行细节,包括每个方法的调用次数、方法调用的时间消耗、方法调用堆栈等信息。
2024-01-15 11:51:32
845
原创 Android readelf 工具查找函数符号
readelf 是一个用于显示 ELF 文件的信息的工具,它可以显示 ELF 文件的各个部分的详细信息,例如头部信息、节(section)表、符号表、动态重定位表等。
2024-01-08 12:19:40
1195
原创 Android RecyleView 使用 Gilde 加载图片引发的卡顿问题
尽管 Glide 是一个非常优秀的图片加载框架,但是在RecyleView 上使用 Glide 加载图片还需注意性能问题
2024-01-04 14:22:53
1685
原创 Android Compose Transition 动画
通过使用 Compose 的 Transition API,您可以在应用中创建各种各样的动画效果,从而增强用户体验并提高应用的吸引力。
2023-12-14 11:44:58
383
原创 Android 滥用 SharedPreference 导致 ANR 问题
ANR(Application Not Responding) 指的是应用程序无法在规定的时间内响应用户输入事件,导致应用失去响应并无法继续正常运行。
2023-12-11 20:54:29
436
原创 Kotlin 操作集合的高阶函数
这些高阶函数都是 Kotlin 标准库中预定义的函数,可以直接在代码中使用。Kotlin 标准库提供了大量的高阶函数,从而让编程变得更加简洁、灵活和易于维护。
2023-11-01 16:00:15
896
原创 Kotlin 作用域函数(apply、also、run、let、takeIf)
在 Kotlin 中,作用域函数是一组用来在特定作用域中操作对象的函数。它们允许在给定作用域内对对象进行属性赋值、方法调用、转换等操作,并返回相应的结果。
2023-09-12 19:36:13
425
原创 Android FileObserver 的使用与简要原理
需要注意的是,FileObserver 在底层的实现使用了 Linux 的特定功能,因此只能在 Android 上使用,而不适用于其他操作系统或平台。
2023-09-01 16:56:45
1280
原创 Android AccessibilityService 实现《李跳跳》功能
AccessibilityService(无障碍服务)是 Android 操作系统中的一个功能,旨在帮助用户具有视觉、听觉或运动上的障碍更轻松地使用设备。
2023-07-11 16:45:43
4463
1
原创 Android Retrofit 源码解析
在 Android 开发中,Retrofit 是一个非常流行的网络请求库。它是由 Square 开发的,用于简化 Android 应用程序与网络服务器之间的通信。
2023-07-07 15:31:29
726
原创 Android Okhttp3 拦截器源码解析
在 OkHttp 中,拦截器(Interceptor)是一种强大的机制,用于在发送请求和接收响应的过程中,对请求和响应进行拦截、处理和修改。
2023-06-30 18:40:38
878
原创 Android Studio 配置 DCL 单例脚本
DCL(Double-Checked Locking)单例是一种用于创建单例对象的设计模式。单例模式是一种创建型模式,用于确保一个类只有一个实例,并提供全局访问点。
2023-06-26 10:47:12
896
原创 System.loadLibrary() 和 System.load() 的区别
System.loadLibrary() 和 System.load() 的区别
2023-06-19 12:56:29
2833
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人