- 博客(116)
- 资源 (1)
- 收藏
- 关注
原创 Handler 同步屏障&异步消息
简单来说,同步屏障就是一套为了让特殊消息更快执行的一个机制。这里我们假设一个场景:我们向主线程发送了一个UI绘制操作Message,而此时消息队列中的消息非常多,那么这个Message的处理可能会得到延迟,绘制不及时造成界面卡顿。同步屏障机制的作用,是让这个绘制消息得以越过其他的消息,优先被执行。MessageQueue中的Message,有一个变量,他标志了这个Message是否是异步消息;标记为true称为异步消息,标记为false称为同步消息。同时还有另一个变量target。
2023-09-08 18:25:17 750 2
原创 android:构建一个可以传入任何参数的ViewModelProvider.Factory
构建一个可以穿入任何参数的ViewModelProvider.Factory
2023-07-24 00:05:57 1304 2
原创 HashMap 1.8全流程分析,详解put、resize、遍历等相关函数。以及其内部的二进制原理
从常用属性->构造方法->添加->扩容->查询->删除->遍历的顺序进行`HashMap`源码阅读,涉及到一些二进制的用法以及意义也会进行说明。
2023-05-28 23:34:00 944 2
原创 归并排序介绍、详解、案例
如果慢指针一次走一步,快指针一次走两步,当快指针走到链表尾部时,慢指针只走到链表的中央,这样也就找到了链表后半部分的头节点。例如输入的是:[3 -> 5 -> 1 -> 4 -> 2 -> 6] 输出的则是:[1 -> 2 -> 3 -> 4 -> 5 -> 6]。归并排序也是基于分治法的排序算法,为了排序长度为n的数组,需要先排序长度为n/2的字数组,然后合并这两个排序字数组于是整个数组也就排序完毕。归并排序的主要思想是将链表分成两个子链表,在对两个子链表排序后再将它们合并成一个排序的链表。
2023-04-05 20:54:28 746 3
原创 快速排序介绍、详解、案例
如果每次选取的中间值都在排序数组的中间位置,则快速排序的时间复杂度为O(nlogn),但是如果每次选取的中间值都是排序数组的头部或者尾部,那么快速排序的时间复杂度为O(n^2)。思路:确保最小堆的容量为K,每次从数组中读取一个数字时都和堆顶的元素进行比较,如果比堆顶的元素大,则移除堆顶元素并且将该元素添加到最小堆之中。例如,数组[3,1,2,4,5,5,6]中第3大的数字是5。在长度为n的排序数组之中,第k大的值在数组中的位置为(n-k)。下面以数组【4,1,5,3,6,2,7,8】来进行解析。
2023-03-26 23:54:08 735 2
原创 计数排序介绍、详解、案例
排序是非常基础并且重要的算法,目前常见的排序算法有`插入排序`、`冒泡排序`、`堆排序`、`计数排序`、`归并排序`和`快速排序`等。
2023-02-12 22:11:31 639 2
原创 Fragment全文详解(由浅入深_源码分析)
相信android开发者们一定或多或少的用过Fragment,但是对于其更深层次的原理我猜可能大部分应该都没有了解过,今天这里就由浅入深,整体对Fragment做一个全面解析。
2023-01-01 21:38:07 3155 9
原创 数据结构堆介绍,图文详解分析——Java/Kotlin双版本代码
堆是一种特殊的树结构。根据根节点的值与子节点值的大小关系,堆又分为最大堆和最小堆。
2022-11-27 21:28:26 966 3
原创 二叉搜索树、红黑树详解、红黑树高的应用、TreeMap的应用(图文详解)-Kotlin版本代码
二叉搜索树、红黑树详解、红黑树高的应用、TreeMap的应用(图文详解)-Kotlin版本代码
2022-11-13 21:45:10 1358 1
原创 二叉树广度优先搜索、深度优先搜索(前序、中序、后序)遍历,动图详解-Java/Kotlin双版本代码
二叉树广度优先搜索、深度优先搜索(前序、中序、后序)遍历,动图详解-Java/Kotlin双版本代码
2022-10-23 22:52:18 2156 3
原创 利用fiddler抓包工具模拟弱网随机环境
利用fiddler将请求代理至PC,在PC上将请求时间以及响应时间做延迟。以达到弱网环境下,请求时间和响应时间慢的效果。
2022-10-08 14:34:26 350 1
原创 Android:WebView使用常见问题汇总(持续更新)
从事Android以来,几乎离不开`WebView`的使用。但是使用`WebView`的过程中,总会出一些令人意想不到的问题,故打算写一篇文章专门用来记录开发过程中遇到的问题吧。如果大家有遇到什么奇怪的问题,欢迎补充完善。......
2022-08-28 20:59:11 1951 4
原创 IPC : 多进程 Binder-AIDL 使用指南、包含案例
Binder使用详解;通过AIDL使用Binder进行跨进程通讯;封装跨进程Callback,跨进程Callback注意点;
2022-07-10 16:14:33 1346 1
原创 Android:多进程的开启方式、注意点以及如何解决。
线程是CPU调度的最小单元。而进程一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程,进程和线程是包含与被包含的关系。在很多中情况下我们需要开启多进程,最常见的比如某一个模块会占用很多的内存且比较独立,可以考虑放到单独的进程去处理。但是多进程不仅仅是简单指定一个进程名称就好了,下面会进行详细介绍。.........
2022-06-26 22:10:35 4390 3
原创 Android ANR日志导出原因排查浅记
目的脑子不行,简单记录一下,方便以后出问题后的快速定位。如何从手机中导出ANR日志?老系统日志导出在老版本系统(Android8.1以下)的手机上,可以直接利用adb pull /data/anr/traces.txt 命令进行日志导出。新系统日志导出无法通过adb pull直接导出但是目前主流的系统是无法通过以上的方式导出的。比如我需要导出/data/anr/anr_2022-05-14-14-09-19-095这个文件,用adb pull /data/anr/anr_2022-05-14
2022-05-14 20:31:01 2477
原创 Android 浅析Glide三级缓存
Android 简要分析Glide三级缓存概括Glide version is 4.8.0Glide拥有三级缓存,分别为当前正在使用得资源缓存(ActiveResources)内存缓存(LruCache)磁盘缓存(DiskLruCache)LRU(Lest Resently Used)算法,在内存缓存和磁盘缓存中均有用得到,笔者写过一篇Kotlin版本的LruCache的实现,感兴趣的可以查看。Kotlin LruCache缓存读取缓存大致分为两大部分,内存缓存与磁盘缓存,而内存缓
2022-05-08 21:10:48 2318 2
原创 Android:自定义布局多状态切换容器MultiStateView
1. 列举常用的状态:`加载中`、`网络错误`、`错误`、`空数据`、`正常内容`、`其他...` 2. 不同状态的view可以通过状态来获取、控制、显示 3. 不同的状态的view可以通过xml添加、也可以在程序中调用函数添加 4. 可以在状态切换之前/之后监听,并且拦截是否真正的进行状态切换 5. 其他优化,是否包含切换动画等等
2022-05-01 23:12:40 2033 1
原创 Android 利用ContentProvider初始化组件踩到的坑
总之一句话,不要滥用`ContentProvider`仅仅去做一个初始化。
2022-04-17 13:28:21 3193 1
原创 以横屏启动Activity,上一个Activity的生命周期重走了且跟随设置了横屏。WHY?
以横屏启动`Activity`,上一个`Activity`的生命周期竟然重走?为什么呢?
2022-04-16 16:32:19 2588 1
原创 利用LRU(Least Recently Used)封装内存缓存LruCache,Kotlin版本。
LRU(Least Recently Used),即最近最少使用,是一种常用的`页面置换算法`,当需要存入的内容大于临界值的时候,选择最近最少使用的进行淘汰。
2022-04-05 10:11:51 826
原创 Android窗口机制:九、总结。(源码版本SDK31)
Android 窗口机制 SDK31源码分析 总目录初识DecorView与SubDecor的创建加载Window与Window Manager的创建加载ViewRootImpl的创建以及视图真正加载ViewRootImpl的事件分发一定要在主线程才可以更新UI吗?为什么?Activity的Token和Dialog的关系Toast机制 - 封装可以在任何线程调用的toast总结到这里,本系列就完了,下面简单总结一下接下来回顾一下,窗口架构图,通过上面八篇文章,现在会看这个架构图
2022-04-03 21:57:34 2200
原创 Android窗口机制:八、Toast机制-(封装可以在任何线程使用的toast)。(源码版本SDK31)
Toast机制源码分析,源码版本SDK31.封装可以在任何线程调用的toast
2022-03-27 16:08:59 4598
原创 Android窗口机制:七、Activity的Token和Dialog的关系。(源码版本SDK31)
1. token是什么?2. Dialog为什么一定需要Activity作为Context3. Dialog弹出后对于Activity生命周期有何影响4. 如何正确的设置到Dialog的宽高
2022-03-20 18:52:08 3628 2
原创 Android窗口机制:六、一定要在主线程才可以更新UI吗?为什么?(源码版本SDK31)
Android 窗口机制 SDK31源码分析 总目录初识DecorView与SubDecor的创建加载Window与Window Manager的创建加载ViewRootImpl的创建以及视图真正加载ViewRootImpl的事件分发一定要在主线程才可以更新UI吗?为什么?Activity的Token和Dialog的关系Toast机制总结
2022-03-13 14:26:44 3916 2
原创 Android窗口机制:四、ViewRootImpl的创建以及视图真正加载。(源码版本SDK31)
- 初识 - DecorView与SubDecor的创建加载 - Window与Window Manager的创建加载 - ViewRootImpl的创建以及视图真正加载 - ViewRootImpl的事件分发 - 一定要在主线程才可以更新UI吗?为什么? - Activity的Token和Dialog的关系 - Toast机制`requestLayout`方法和`invalidae`方法的核心区别是啥?
2022-02-27 14:32:53 4471 9
原创 Android窗口机制:三、Window与Window Manager的创建加载。(源码版本SDK31)
Android 窗口机制 SDK31源码分析 总目录初识DecorView与SubDecor的创建加载Window与Window Manager的创建加载ViewRootImpl的创建以及视图真正加载ViewRootImpl的事件分发一定要在主线程才可以更新UI吗?为什么?Activity的Token和Dialog的关系Toast机制总结handleLaunchActivity、handleStartActivity、handleResumeActivity流程详解
2022-02-20 16:20:22 2125 2
原创 Android窗口机制:二、DecorView与SubDecor的创建加载。(源码版本SDK31)
Android 窗口机制 SDK31源码分析 总目录初识DecorView与SubDecor的创建加载Window与Window Manager的创建加载ViewRootImpl的创建以及视图真正加载ViewRootImpl的事件分发一定要在主线程才可以更新UI吗?为什么?Activity的Token和Dialog的关系Toast机制总结
2022-02-16 21:21:53 1961 3
原创 Android窗口机制:一、初始,熟悉Android窗口机制概况。(源码版本SDK31)
Android 窗口机制 SDK31源码分析 - 初识 - DecorView与SubDecor的创建加载 - Window与Window Manager的创建加载 - ViewRootImpl的创建以及视图真正加载 - ViewRootImpl的事件分发 - 一定要在主线程才可以更新UI吗?为什么? - Activity的Token和Dialog的关系 - Toast机制 - 总结
2022-02-13 21:07:56 2363 5
原创 Android 自定义验证码View,可控制输入数量,可定制化样式。高度可定制化。Kotlin版本
Android 自定义验证码View,可控制输入数量,可定制化样式。高度可定制化。Kotlin版本。
2022-01-23 11:29:01 2801 2
原创 终极解决方案:App被系统回收之后,再次打开Fragment产生覆盖的问题。附带原理解析。
fragment为什么会在activity被回收的时候保存呢?保存到哪里了呢?怎么恢复的呢?如何解决?
2022-01-19 18:48:50 3869 4
原创 OkHttp初探3:简单文件上传、表单文件一起上传、带进度条的文件上传、MediaType介绍。Kotlin版本
文件上传;表单文件一起上传;带进度条的文件上传;MediaType介绍。Kotlin版本
2022-01-09 15:51:58 4736 2
原创 OkHttp初探2:如何使用OkHttp进行下载封装?带进度条?Kotlin+Flow版本。
如何使用OkHttp进行下载封装?带进度条;提供多种封装方式;正常版本;Kotlin+Flow版本。
2022-01-02 19:20:51 3933 4
Java基础练习项目-彩色贪吃蛇
2021-10-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人