自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pumpkin's Blog

pumpkin偶尔相信玄学.

  • 博客(116)
  • 资源 (1)
  • 收藏
  • 关注

原创 “20人+14天”,个人开发者如何通过 Google Play 谷歌封闭测试

20 天 真实机器测试。

2024-09-03 18:15:29 550

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

原创 JAVA 如何合理且优雅的检测到对象被回收?

有时我们需要在对象被回收之后触发一些操作,但是如何合理的监控对象回收呢?

2023-06-24 22:22:48 1126 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-12-18 22:29:53 1026 2

原创 数据结构堆介绍,图文详解分析——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

原创 Android 从我方界面启动三方界面,如何巧妙地检测三方页面的生命周期呢?

从我方界面启动三方界面,如何巧妙地检测三方页面的生命周期呢?

2022-07-31 16:10:49 655 3

原创 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多个进程同时写同一个文件,会怎么样?

Android多个进程同时写同一个文件,会怎么样?今人不见古时月,今月曾经照古人

2022-06-19 21:28:58 2554 2

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

原创 为什么在Kotlin中运行0xFFFFFFFF不是-1

噢,你这看起来简单但又不简单的16进制使用。

2022-03-23 20:40:10 3859

原创 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)

事件是如何被接收的呢?

2022-03-06 17:42:05 2852 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

原创 休闲一刻:分享蔡澜先生对网友的一些有趣的回答。

想问很多事情,但是心里都有答案,再问的话是不是很蠢?是。

2022-01-16 20:43:26 344

原创 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基础练习项目-彩色贪吃蛇

学习java基础时,写的一套java贪吃蛇。 适合java基础学习完成的同学的一个小项目。 可参考博客https://blog.csdn.net/weixin_44235109/article/details/120863748?spm=1001.2014.3001.5501 对于资源存在的任何问题都可以直接找博主进行沟通!

2021-10-20

空空如也

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

TA关注的人

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