catzifeng
码龄9年
关注
提问 私信
  • 博客:95,672
    动态:23
    95,695
    总访问量
  • 53
    原创
  • 174,541
    排名
  • 205
    粉丝
  • 3
    铁粉

个人简介:㊙️㊙️㊙️㊙️㊙️

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2015-11-07
博客简介:

catzifeng的博客

查看详细资料
  • 原力等级
    当前等级
    2
    当前总分
    161
    当月
    0
个人成就
  • 获得98次点赞
  • 内容获得86次评论
  • 获得159次收藏
  • 代码片获得284次分享
创作历程
  • 2篇
    2024年
  • 1篇
    2022年
  • 46篇
    2020年
  • 2篇
    2019年
  • 2篇
    2018年
成就勋章
TA的专栏
  • Android
    14篇
  • Android动画全篇系列
    13篇
  • 如何写好Android代码
    1篇
  • 设计模式篇
    13篇
  • Jetpack篇
    7篇
  • Android——开心来爬坑
    1篇
  • Flutter
    1篇
兴趣领域 设置
  • 移动开发
    kotlin
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 关注/订阅/互动
  • 资源
搜TA的内容
搜索 取消

Android hook禁止安装apk

android 通过 hook 禁止安装apk
原创
发布博客 2024.05.16 ·
320 阅读 ·
2 点赞 ·
2 评论 ·
1 收藏

小米/红米手机刷机错误:Missmatching image and device

小米手机刷机报错:Missmatching image and device
原创
发布博客 2024.05.13 ·
4442 阅读 ·
3 点赞 ·
4 评论 ·
0 收藏

Kotlin协程分析(三)——理解协程上下文

Kotlin协程分析(三)——理解协程上下文一、简单介绍 CoroutineContext二、CoroutineContext 的数据结构1."put"(进一步了解CoroutineContext的数据结构)1.1 EmptyCoroutineContext协程上下文——CoroutineContext 是协程中很重要的环节,可以这么说,几乎整个协程的业务能力都是由它去完成的。说实话,这段源码不是很好看,要具体解释出来也比较困难,如果在接下来的阅读过程中有任何疑惑,我们一起探讨学习。一、简单介绍 Co
原创
发布博客 2022.07.20 ·
1162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android Kotlin 使用协程取代回调函数(suspendCoroutine 的用法)

文章目录一、简述二、示例2.1 普通写法2.2 协程写法三、带有成功和失败的回调3.1 普通写法3.2 协程写法3.3 使用协程上下文处理异常一、简述如果说大家对于协程已经有些熟悉了,但是手拿一把未开封的 绝世好剑,却无法发挥真正的威力!或者大家不是很熟悉协程,还不清楚协程所带来的好处是啥?这篇文章会为大家带来 通窍级别 的体验。二、示例2.1 普通写法以获取一个 View 的宽高为例。通常我们获取一个 View 的宽高,都是这么做的:view.post { val height = vi
原创
发布博客 2020.10.24 ·
8942 阅读 ·
27 点赞 ·
2 评论 ·
16 收藏

Android singleInstance栈内打开Activity的方法

我们都知道,被标记了 singleInstance 的 Activity 会开启一个新的 Activity栈,并且该栈只允许这一个实例存在!在应对某些需求的时候,这样的特性可能会带来阻碍性的麻烦,所以我们
原创
发布博客 2020.10.12 ·
572 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Kotlin协程分析(二)——suspendCoroutineUninterceptedOrReturn

文章目录一、简介二、分析三、suspendCoroutineUninterceptedOrReturn 怎么做到的?四、战略作用(重点)!!!1、两个`resume()` 为啥没有走两次回调2、为啥里边的**continuation**的`resume()` 会在返回值里呢?3、返回值为什么是 COROUTINE_SUSPENDED五、简单的用例(必读)六、小结一、简介这个函数的作用 至关重要。我们先回想之前创建 协程(Continuation) 的过程,是通过一个 suspend<R>()
原创
发布博客 2020.10.04 ·
2367 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Kotlin协程分析(一)——协程的创建过程和执行过程.pdf

发布资源 2020.08.30 ·
pdf

Jetpack篇——LiveData扩展之Transformations

文章目录一、简单介绍二、map1、普通实现2、转换类型3、Kotlin 扩展4、源码分析三、switchMap1、普通实现2、对比 Map3、Kotlin 扩展4、源码分析四、distinctUntilChanged1、普通实现2、Kotlin 扩展3、源码分析五、小结一、简单介绍Transformations 类是 LiveData 的一个功能扩展类,其是一个私有化构造方法的工具类,且只提供 3 个方法使用,虽然数量不多,但胜在实用,这三个方法分别是:mapswitchMapdistinctU
原创
发布博客 2020.08.24 ·
4763 阅读 ·
9 点赞 ·
0 评论 ·
20 收藏

Jetpack篇——LiveData扩展之MediatorLiveData源码分析

文章目录一、分析内容二、为什么 MediatorLiveData 需要激活才能够接管 LiveData 的响应事件?三、怎么激活 MediatorLiveData?**路线 1**一、分析内容在 上篇文章 中有了解过 MediatorLiveData 的使用过程,虽然使用的过程很简单,但是却出现了一个又一个的疑问……所以本篇文章就和大家一起来刨根问底,解疑答惑:为什么 MediatorLiveData 需要激活才能够接管 LiveData 的响应事件?怎么激活 MediatorLiveData ?
原创
发布博客 2020.08.04 ·
1370 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Jetpack篇——LiveData扩展之MediatorLiveData

文章目录一、导入一、导入其官方def lifecycle_version = "2.2.0"implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
原创
发布博客 2020.08.03 ·
1617 阅读 ·
0 点赞 ·
3 评论 ·
2 收藏

Jetpack篇——LiveData

文章目录一、简介一、简介
原创
发布博客 2020.07.14 ·
254 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Jetpack篇——LiveData源码分析

文章目录一、分析内容二、生命周期的管理三、值的传递1、初始化的值2、setValue 和 postValue四、setValue和postValue的区别五、总结一、分析内容在 Jetpack 中,LiveData 的源码是最简单的,整个 core 只包含 3 个文件,而且主类 LiveData 也不超过 500 行的代码,但其重要性却不言而喻……对于 LiveData 的源码,我们需要分析的有以下几个地方:其生命周期的管理值的传递(setValue和postValue)setValue和po
原创
发布博客 2020.07.12 ·
863 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

Android自定义View——RecyclerView 滚动条

Android 自定义View,适合 RecyclerView 的滚动条
原创
发布博客 2020.07.09 ·
3417 阅读 ·
2 点赞 ·
11 评论 ·
5 收藏

设计模式篇(十)——访问者模式

文章目录一、简介二、实现3、对比三、相关源码四、小结一、简介访问者模式(Visitor Pattern) 属于 行为型设计模式,看名字我就知道需要建立 访问者 和 被访问者 之间的关系。一般情况下,被访问者 都是不变的,比如说:书本、电脑等,而 访问者 可以是你或者其他人,这样就会导致一个现象:一千个人有一千个哈姆雷特;你拿电脑肝游戏,别人拿电脑生产力。定义: 某个行为,因为不同的 访问者 产生不同的效果;访问者 也能够访问多种行为。使用场景: 如果你需要对某个集合进行循环遍历并且因为元素有差异,
原创
发布博客 2020.07.09 ·
287 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android UVCCamera 拔出USB摄像头闪退问题

这是 native 的错误,因为手机连接摄像头,地狱级的调试体验,找了很久才找出这个问题,然后根据issue修改了c代码,重新编译了so库。使用下面的so库即可。看链接:so库
原创
发布博客 2020.07.04 ·
2376 阅读 ·
5 点赞 ·
31 评论 ·
14 收藏

uvclib.zip

发布资源 2020.07.04 ·
zip

设计模式篇(九)——代理模式

文章目录
原创
发布博客 2020.06.22 ·
289 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计模式篇(八)——策略模式

文章目录一、简介一、简介
原创
发布博客 2020.06.16 ·
210 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多