自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 SSE 单向接收数据

相比于其他技术如 WebSocket,SSE 更简单和轻量,但仅适用于信息量不大的单向数据流。

2024-09-05 19:01:23 1076

原创 Android 抓取 CPU 资源信息

通过这些命令和工具,我们能够获取详尽的CPU资源使用信息,为性能调优、问题排查及系统分析提供关键数据。

2024-07-03 12:11:11 1486

原创 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 收集崩溃(crash)日志并输出到本地

通过设置自己的异常处理器来替换默认的处理器,以实现自定义的异常处理逻辑

2024-01-04 17:30:37 1883

原创 Android RecyleView 使用 Gilde 加载图片引发的卡顿问题

尽管 Glide 是一个非常优秀的图片加载框架,但是在RecyleView 上使用 Glide 加载图片还需注意性能问题

2024-01-04 14:22:53 1685

原创 Android Kotlin 协程作用域执行特性

通过协程作用域,可以更好地组织和管理协程的执行,提供更好的代码结构和可维护性。

2023-12-28 12:01:34 913

原创 Android 主线程绑定 CPU 大核(提升应用整体性能)

通过绑定,主线程可以充分利用大核的计算能力,提升程序的运行速度和响应性能。

2023-12-18 16:30:57 3720

原创 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 中,分发器(Dispatcher)是负责调度和执行网络请求的组件。

2023-07-04 21:30:40 425

原创 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关注的人

提示
确定要删除当前文章?
取消 删除