自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(152)
  • 收藏
  • 关注

原创 Android 抓取 CPU 资源信息

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

2024-07-03 12:11:11 417

原创 Android Studio Git Log 操作

Android Studio 中 Git Log 提供了一个全面直观的方式来管理和分析我们的 Git 提交历史,使得版本控制更加高效和便捷

2024-06-17 17:21:06 601

原创 Android Studio 2024.1.1(Koloa)版本 Profiler 工具变动

在本次更新的 Profiler 当中虽然功能上是没有变动的(还是 CPU/Memory),但是从使用体验、性能、管理上有了很大的优化,方便我们使用Profiler 来对应用的质量上做提升

2024-06-17 16:56:52 966

原创 Android Kotlin 异步操作回调转换为挂起函数

通过这个转换,我们可以利用 Kotlin 协程的强大特性来简化异步代码,让代码更易读且更具维护性

2024-06-04 17:55:20 602

原创 Android Ktor 网络请求框架

Ktor 是完全用 Kotlin 编写和设计的,整个配置和使用都是原生的 Kotlin 风格,这使得 Kotlin 开发者们可以更自然和简洁地进行代码编写。而 Retrofit 虽然可以与 Kotlin 很好地集成,但本质上还是 Java 风格的库,某些地方可能显得冗长。

2024-05-24 15:33:40 719

原创 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 352 1

原创 KMP + Compose 跨平台 Android IOS 实战入门

通过 KMP + Compose 框架,我们可以编写一次代码,然后在不同的平台上进行部署和运行,大大提高了开发效率和代码重用性

2024-05-08 20:21:29 1306

原创 Android Perfetto 监控应用启动耗时

在实际的开发过程中,做启动优化和监控单纯靠 Traceview 是不太准确的,因为 Traceview 获取的信息比较局限,而 Perfetto 能站在上帝视角来查看应用的启动过程。

2024-04-23 16:35:32 713 2

原创 Android(Kotlin) 委托(by) 封装 SharedPreferences

使用委托可以提高代码的灵活性和可读性,减少样板代码的编写,提高代码的复用性和可维护性。

2024-04-08 18:33:22 480 1

原创 Android RecycleView 异步缓存 itemView 提升滑动性能

最近在做性能检测的过程当中,设置了多布局的 RecyclerView 在快速滑动中会有一些卡顿,所以将解决方案在此文记录一下

2024-04-01 17:10:46 516 1

原创 Android ANR 日志分析定位

/data/anr/ 路径只有 root 权限才能够进行访问,在非 root 权限的情况下需要 adb 命令导出相关的日志文件后筛选查看 ANR 的日志信息

2024-03-01 17:53:33 1037

原创 Android TextView.setText() 引发的卡顿问题

最近在检测性能中,发现 RecycleView 在滑动过程中的TextView.setText() 有一些耗时,从主观上体验也会有一点卡顿,然后进入源码看看是怎么回事

2024-02-21 12:00:23 1453

原创 Android String.format() 引发的卡顿问题

最近在检测应用的性能时,发现在短时间内大量调用 String.format() 时会引发卡顿,所以马上进入源码看看有没有哪里能够优化的

2024-01-31 14:47:59 626

原创 Android Studio 下载安装配置使用入门【2024年最新】

Android Studio 是谷歌官方提供的主要集成开发环境(IDE),专为 Android 平台应用开发而设计。

2024-01-29 21:48:44 4264 3

原创 Android imageView.setImageXXX() 引发的卡顿问题

最近在检测应用的性能时,发现 imageView 在加载图片竟有一些耗时,于是进入源码来看看这几个给 imageView 设置图片的方法都有什么区别

2024-01-29 16:27:17 773

原创 Java 四大引用

Java 中的四大引用类型是指 JVM 提供的四种不同生命周期的引用类型,这些引用类型主要用于帮助我们更好地控制对象的生命周期,尤其是在内存管理和垃圾回收方面。

2024-01-23 15:30:52 400

原创 Android Traceview 定位卡顿问题

Traceview 可以通过图形化界面查看应用程序的代码执行细节,包括每个方法的调用次数、方法调用的时间消耗、方法调用堆栈等信息。

2024-01-15 11:51:32 691

原创 Android readelf 工具查找函数符号

readelf 是一个用于显示 ELF 文件的信息的工具,它可以显示 ELF 文件的各个部分的详细信息,例如头部信息、节(section)表、符号表、动态重定位表等。

2024-01-08 12:19:40 910

原创 Android 收集崩溃(crash)日志并输出到本地

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

2024-01-04 17:30:37 1295

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

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

2024-01-04 14:22:53 1205

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

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

2023-12-28 12:01:34 820

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

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

2023-12-18 16:30:57 2044

原创 Android Compose Transition 动画

通过使用 Compose 的 Transition API,您可以在应用中创建各种各样的动画效果,从而增强用户体验并提高应用的吸引力。

2023-12-14 11:44:58 283

原创 Android 滥用 SharedPreference 导致 ANR 问题

ANR(Application Not Responding) 指的是应用程序无法在规定的时间内响应用户输入事件,导致应用失去响应并无法继续正常运行。

2023-12-11 20:54:29 309

原创 Kotlin 操作集合的高阶函数

这些高阶函数都是 Kotlin 标准库中预定义的函数,可以直接在代码中使用。Kotlin 标准库提供了大量的高阶函数,从而让编程变得更加简洁、灵活和易于维护。

2023-11-01 16:00:15 817

原创 Kotlin 作用域函数(apply、also、run、let、takeIf)

在 Kotlin 中,作用域函数是一组用来在特定作用域中操作对象的函数。它们允许在给定作用域内对对象进行属性赋值、方法调用、转换等操作,并返回相应的结果。

2023-09-12 19:36:13 346

原创 Android FileObserver 的使用与简要原理

需要注意的是,FileObserver 在底层的实现使用了 Linux 的特定功能,因此只能在 Android 上使用,而不适用于其他操作系统或平台。

2023-09-01 16:56:45 1093

原创 Android AccessibilityService 实现《李跳跳》功能

AccessibilityService(无障碍服务)是 Android 操作系统中的一个功能,旨在帮助用户具有视觉、听觉或运动上的障碍更轻松地使用设备。

2023-07-11 16:45:43 3622 1

原创 Android Retrofit 源码解析

在 Android 开发中,Retrofit 是一个非常流行的网络请求库。它是由 Square 开发的,用于简化 Android 应用程序与网络服务器之间的通信。

2023-07-07 15:31:29 665

原创 Android Okhttp3 分发器源码解析

在 OkHttp 中,分发器(Dispatcher)是负责调度和执行网络请求的组件。

2023-07-04 21:30:40 399

原创 Android Okhttp3 拦截器源码解析

在 OkHttp 中,拦截器(Interceptor)是一种强大的机制,用于在发送请求和接收响应的过程中,对请求和响应进行拦截、处理和修改。

2023-06-30 18:40:38 719

原创 Android Studio 配置 DCL 单例脚本

DCL(Double-Checked Locking)单例是一种用于创建单例对象的设计模式。单例模式是一种创建型模式,用于确保一个类只有一个实例,并提供全局访问点。

2023-06-26 10:47:12 816

原创 System.loadLibrary() 和 System.load() 的区别

System.loadLibrary() 和 System.load() 的区别

2023-06-19 12:56:29 1566

原创 Android LayoutInflater 监听单个控件渲染时长

通过调用 setFactory2() 方法并传递自定义的 Factory2 实例,可以拦截和修改 LayoutInflater 创建视图对象的过程。拦截后可以做任何想做的事,例如动态地改变视图的外观、行为或属性。

2023-06-14 11:33:19 413

原创 Android AsyncLayoutInflater 异步加载布局

AsyncLayoutInflater是 Android 提供的一个用于异步加载布局的工具类。可以在异步线程上加载布局文件,以避免在主线程上加载布局过于耗时而导致的 UI卡顿问题。

2023-06-13 17:55:59 2736

原创 Android FFmpeg 解码 OpenSL ES 播放音频

本篇文章仅仅是实现了 FFmpeg 和 OpenGL ES 配和播放媒体文件音频的功能,其中有非常多的细节没有去完善(比如函数错误返回值的处理、内存泄漏等等),因为我为了更好的阅读和理解 FFmpeg 和 OpenSL ES,对非主线代码做了删减,所以读者可以自行添加

2023-06-06 16:58:31 849 1

原创 Android 反编译工具 jadx-gui

jadx-gui是一种基于jadx项目的图形界面工具,用于反编译Android应用程序的工具。通过使用jadx-gui,开发人员可以打开APK(Android应用程序包)文件,并查看其反编译的源代码。

2023-06-05 14:20:41 3341

原创 FFmpeg 常用命令

调整比特率、调整视频帧率、调整视频分辨率、修改视频的宽高比

2023-05-31 15:40:28 2236

原创 FFmpeg 媒体文件播放 格式变化流程简述

YUV数据和PCM数据是解压缩后的视频和音频数据的常见表示形式,它们在多媒体应用中广泛使用。

2023-05-18 16:53:54 735

原创 Android ANativeWindow 渲染画面

通过使用 ANativeWindow 接口,开发人员可以直接与底层的图形系统交互,实现高性能的图像渲染和处理。它在游戏开发、图像处理和视频播放等领域中得到广泛应用。

2023-05-17 11:00:14 1624

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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