- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Android LeakCanary 使用 · 原理详解
摘要:LeakCanary 是 Square 公司开源的 Android 内存泄漏检测工具,通过自动化监控和堆转储分析,帮助开发者快速定位内存泄漏根源。其核心设计轻量高效,已成为 Android 开发中必备的调试工具。
2025-03-14 17:38:00
927
原创 Android StrictMode 使用与原理深度解析
StrictMode 是 Android 开发中不可或缺的性能检测工具,其核心原理是通过 动态插桩 和 Looper 监控 实现主线程耗时操作的检测。合理配置策略可显著提升应用流畅性,但需注意生产环境的禁用和误报处理。
2025-03-11 22:34:16
715
原创 《Android应用性能优化全解析:常见问题与解决方案》
摘要:本文系统剖析Android开发中六大核心性能问题——UI卡顿、内存泄漏、ANR、列表滑动卡顿、冷启动耗时及内存抖动,深入分析其典型场景与根本原因,并提供针对性的优化策略与代码实践。从异步处理、布局层级优化、内存管理到工具链(如LeakCanary、Android Profiler)的使用,全面覆盖性能调优的关键技术。无论是规避主线程阻塞、减少过度绘制,还是通过分页加载与延迟初始化提升响应速度,均以实际场景为锚点,助力开发者打造流畅、稳定的高质量应用。
2025-03-11 20:24:27
1321
原创 《Android Glide 深度解析:工作原理、LRU 缓存机制与最佳实践》
摘要:本文全面剖析 Android 图片加载库 Glide 的核心设计,结合源码深入讲解其生命周期管理、多级缓存架构与LRU 算法实现。内容涵盖:工作原理:从初始化、请求构建到解码任务的完整流程源码分析;缓存机制:详解活动资源、内存缓存(LruResourceCache)、磁盘缓存(DiskLruCacheWrapper)的三级架构及 LRU 算法实现原理;最佳实践:内存优化、缓存配置策略、生命周期防泄漏技巧及网络层优化方案;调试与监控:日志配置与性能分析方法。
2025-03-10 20:58:26
910
原创 《RxJava 深度解析:工作原理、核心操作符与高效实践指南》
摘要:RxJava 作为响应式编程的标杆框架,通过灵活的异步数据流处理能力,极大简化了复杂逻辑的开发。本文系统剖析 RxJava 的核心机制与最佳实践:工作原理:从观察者模式扩展、线程调度到底层背压策略,揭示数据流管理的设计哲学。核心 API 与操作符:详解 Observable、Flowable 等关键类,分类解析创建、转换、过滤、组合及错误处理操作符的用法与适用场景,并附代码示例。
2025-03-10 15:46:14
850
原创 《OkHttp:工作原理 & 拦截器链深度解析》
摘要:OKHttp 是一款高效的 HTTP 客户端库,由 Square 公司开发,支持 Android 和 Java 应用。它简化了 HTTP 请求处理,支持同步/异步请求、连接池、缓存、拦截器等特性。
2025-03-08 20:57:00
1239
原创 《Android 平台架构&系统启动流程详解》
摘要:Android 是一个基于 Linux 的开源软件堆栈,针对多种不同设备类型打造。Android 平台的主要组件。Android 软件堆栈。Android 平台的基础是 Linux 内核。例如,Android 运行时 (ART) 依赖 Linux 内核来实现底层功能,例如线程处理和低级内存管理。使用 Linux 内核可让 Android 利用关键安全功能,并让设备制造商能够为知名内核开发硬件驱动程序。硬件抽象层 (HAL) 提供了用于向较高级别的 Java API 框架公开设备硬件
2025-03-07 21:24:44
1104
原创 《Android Activity启动流程详解》
摘要:创建 Activity 实例 → onCreate() → onStart() → onResume()Activity 的启动流程是 Android 系统中涉及多个组件协作的核心机制,从用户调用。Activity 的启动流程是 Android 系统设计的核心体现,涵盖。:通过 Activity.startActivity(Intent)若目标 Activity 所属应用进程未启动,触发 Zygote。会清除目标 Activity 上方的其他 Activity。
2025-03-01 17:55:37
1253
原创 《Android APK组成&编译打包流程详解》
摘要:Android APK(Android Package)是 Android 应用的安装包文件,其组成和打包流程涉及多个步骤和文件结构。APK 是一个 ZIP 格式的压缩包,包含应用运行所需的所有文件。由 Java/Kotlin 代码编译后的 Dalvik/ART 字节码文件。如果方法数超过 65536,会生成多个等(需启用 MultiDex)。编译后的二进制资源索引表,包含字符串、布局、颜色等资源的映射关系,用于快速查找资源。
2025-02-28 23:06:15
1665
原创 《Android 应用开发中,证书、签名和加固简述》
摘要:证书是开发者身份的“身份证”,签名是确保应用未被篡改的“密封章”,加固是防止代码被逆向的“保险箱”。三者结合,构成 Android 应用安全的基础防线。
2025-02-28 11:01:52
1156
原创 《Binder机制原理分析· AIDL示例详解》
摘要:在目录下创建.aidl文件(例如// 定义传递的复杂对象(需实现 Parcelable)// 接口方法// 回调接口(需单独定义)
2025-02-08 12:00:00
1055
原创 《Android之 Handler机制原理解析 · 常见面试题》
摘要:一种使得异步消息可以被更快处理的机制如果向主线程发送了一个UI更新的操作Message,而此时消息队列中的消息非常多,那么这个Message的处理就会变得缓慢,造成界面卡顿。所以通过同步屏障,可以使得UI绘制的Message更快被执行。什么是同步屏障?这个“屏障”其实是一个Message,插入在MessageQueue的链表头,且其target==null。Message入队的时候不是判断了target不能为null吗?// 把当前需要执行的Message全部执行。
2025-02-06 20:49:37
873
原创 《Android 自定义View的详解》
自定义View:只需要重写onMeasure()和onDraw()自定义ViewGroup:只需要重写onMeasure()和onLayout():用于测量View的大小(宽度和高度)。:确定View在ViewGroup中的位置;:用于绘制View的内容。,在里面写上你的触摸反馈算法,并返回 true(关键是 ACTION_DOWN 事件时返回 true)。如果是会发生触摸冲突的 ViewGroup,还需要重写。
2025-02-06 10:34:05
970
原创 《Android View 的事件分发机制解析》
前言: 用户按下触摸屏幕的事件。ACTION_UP: 用户抬起手指的事件。: 用户在屏幕上移动手指的事件。: 事件被取消,例如由于系统的其他操作。: 当已经有一个手指按下的情况下,另一个手指按下会产生该事件;: 多个手指同时按下的情况下,抬起其中一个手指会产生该事件;
2025-01-25 18:14:10
1123
原创 Retrofit使用・原理详解
定义一个接口,并使用注解指定HTTP请求的方法、URL、参数等。通过动态代理模式,在运行时生成接口的实现类,该实现类负责发起网络请求。通过OkHttp客户端发送HTTP请求,处理响应,并通过Converter将响应数据转换为对象。支持同步和异步回调,通过CallbackAdapterFactory处理回调逻辑。
2025-01-24 14:13:22
1299
原创 Arouter详解・常见面试题
路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。完成路由这个操作的实体设备就是路由器(Router)。
2025-01-23 10:16:08
853
原创 Android_动态更换桌面图标
实现-动态更改应用程序图标,且支持切换回常规图标。本文将详细介绍运行时如何更改Android应用程序图标的流程。
2025-01-20 14:46:20
1078
原创 《Http、Https区别 & Tcp协议详解》
传输控制协议(英语:Transmission Control Protocol,缩写:TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由国际互联网工程任务组(The Internet Engineering Task Force, IETF)的 RFC793 定义。在简化的计算机网络 OSI 模型中,它完成传输层所指定的功能。(1)什么是面向连接?面向连接是相对于另一个传输层协议UDP(User Datagram Protocol, 用户数据报协议)而言的。
2025-01-17 11:59:54
1179
原创 JVM—虚拟机详解
JVM——Java虚拟机,它是Java实现平台无关性的基石。Java程序运行的时候,编译器将Java文件编译成平台无关的Java字节码文件(.class),接下来对应平台JVM对字节码文件进行解释,翻译成对应平台匹配的机器指令并运行。同时JVM也是一个跨语言的平台,和语言无关,只和class的文件格式关联,任何语言,只要能翻译成符合规范的字节码文件,都能被JVM运行。内存分配有两种方式,指针碰撞空闲列表。
2025-01-14 15:08:27
824
原创 Java 线程安全详解
本文介绍了线程安全和非线程安全、线程安全处理方法、多线程编程中的同步机制,包括synchronized关键字的使用和ReentrantLock的特性,讨论了死锁的产生条件及如何避免,强调了合理使用锁和避免嵌套锁的重要性。
2024-12-26 14:53:32
1163
原创 鸿蒙开发常用注解
在鸿蒙(HarmonyOS)开发中,注解(Annotation)是一种用于描述代码中的信息的元数据,它们不会改变程序的执行流程,但可以用于在编译时或运行时对代码进行解析和操作。:标记一个方法为命令方法,通常用于ServiceAbility中,用于响应来自其他Ability的命令。:标记方法的参数,用于指定参数的类型、名称等信息,常用于路由跳转或事件传递中。:标记系统能力,用于声明能力请求的权限信息,比如访问网络、存储等。:标记一个类作为Ability的入口类,通常用于定义页面的启动。
2024-12-17 20:38:32
294
原创 深入理解线程池
线程池通过控制线程数量、任务队列来管理任务执行,包括核心线程数、最大线程数、存活时间等参数。线程有新建、就绪、运行、阻塞和死亡五种状态。Java线程池由Executor框架实现,常用实现包括ThreadPoolExecutor,可以通过ExecutorService提交任务。阻塞队列在数据不足或满时会导致消费者或生产者线程阻塞,常见实现如ArrayBlockingQueue和LinkedBlockingQueue。
2024-12-13 15:36:02
625
原创 注解 实现原理
在Java中,注解(Annotation)是一种特殊的接口,它通过关键字进行定义,并且其定义中包含了类型的元注解。注解的主要作用是为代码提供元数据,这些元数据可以在编译时、类加载时或运行时被读取,并对代码的执行产生影响。定义:元注解:使用:内置注解:自定义注解:下面是一个简单的自定义注解的示例:在这个示例中,我们定义了一个名为的注解,并将其应用于类中的方法上。然后,在类的方法中,我们通过反射API读取了方法上的注解,并打印出了注解的元素的值。在Android开发中,注解(Annot
2024-12-10 16:10:47
959
原创 Java 泛型原理
泛型是Java语言中的一项强大特性,通过参数化类型增强了代码的重用性、安全性和可读性。泛型广泛应用于Java集合框架、通用方法、自定义泛型类和接口以及类型安全的API设计中。理解泛型的原理和应用场景对于编写高质量、可维护的Java代码至关重要。
2024-12-10 14:30:02
977
原创 Android 屏幕适配DimenTool + ScreenMatch
Android屏幕适配: ScreenMatch插件 & DimenTool工具类
2024-12-09 16:55:51
744
原创 Android项目_git提交代码,设置用户名和邮箱
一、git 账号和邮箱配置:1. git用户名和邮箱配置:$ git config --global user.name "yourName"设置用户名$ git config --global user.email "your_email"设置邮箱2. 配置信息查看:$ git config user.name查看用户名$ git config user.email查看邮箱3. 配置信息修改:$ git config --replace-all user.name "...
2021-07-05 14:16:50
1569
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人