@StateObject 和 @ObservedObject 的区别和使用

小知识,大挑战!本文正在参与「程序员必备小知识」创作活动 本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金 序言 @ObservedObject 不管存储,会随着 View 的创建被多次创
分类: 移动开发 发布时间: 10-15 04:03 阅读次数: 0

Android技术分享| 【自习室】自定义View代替通知动画(1)

在Demo中通过ObjectAimator实现的效果,使用一个View同样可以实现。 Demo项目地址:点击这里 实现这个自定义View需要解决的问题: 重写onMeasure计算自己的大小 文本绘制
分类: 移动开发 发布时间: 10-15 04:03 阅读次数: 0

Java多线程7 Lock

1 synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被syn
分类: 移动开发 发布时间: 10-15 04:03 阅读次数: 0

MVVM + RxAndroid + RxView + DataBinding + LiveData + LiveEventBus + Retrofit

前言 本来想记录一下最近相机相关的知识点的,但发现需要时间整理一下,那这里就介绍一下最近写的直播app中使用的整体架构吧。
分类: 移动开发 发布时间: 10-15 04:03 阅读次数: 0

Android 12 第一次运行就报错

Manifest merger failed : Apps targeting Android 12 and higher android:exported。
分类: 移动开发 发布时间: 10-15 04:03 阅读次数: 0

iOS 黑魔法 - Method Swizzling实现原理

详细分析黑魔法Method Swizzling方法交换的原理,以及分析方法交换需要用到的函数定义说明
分类: 移动开发 发布时间: 10-15 02:23 阅读次数: 0

Android Runtime (ART) 和 Dalvik

Android L (Android 5.0) 之前叫作 DVM,5.0 之后直接删除DVM,代替它的是传闻已久的ART(Android Runtime)。
分类: 移动开发 发布时间: 10-15 00:43 阅读次数: 0

内存优化(一) 野指针探测

本文主要讲解两种野指针检测的原理及实现 技术点:野指针探测 本文的主要目的是理解野指针的形成过程以及如何去检测野指针 引子 在介绍野指针之前,首先说下目前的异常处理类型,附上苹果官网链接) 异常类型
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

KVO的本质是什么?

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。 ​iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?) 如何手动触发KVO? KVO的全称是Key-Value Observin
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

KVC的本质是什么?

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。 KVC的本质是什么? KVC全称是Key-Value Coding, 俗称“键值编码”,可以通过一个key来访问某个属性。
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

iOS小知识之NSTimer的循环引用一

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。 1.NSTimer的循环引用 1.1 常见问题 日常开发中,经常会用到NSTimer定时器,一些不正确的写法,会导致NSTimer造成循环引
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

LLDB调试工具小技巧

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。 我们日常开发每天必要用到了Xcode中的LLDB调试,那么分享一些小技巧调试指令,方便大家调试。 1. 使用expression指令进行动态
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

Swift-技巧(五)设置圆角的代码

实现控件圆角的代码时,会不假思索的写 cornerRadius 和 masksToBounds,因为搜索得到的设置圆角的代码就是这样。今天突发奇想,为什么要写 masksToBounds?
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

iOS 列表滑动的卡顿检测和优化

在上一篇文章中,我们了解了iOS的渲染循环、离屏渲染原理、卡顿原理,在这篇文章里,我们主要探索卡顿的检测和如何消除卡顿。 卡顿的检测 卡顿时间比 卡顿的检测,我们可以使用 instrument的Ani
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

建议CV,Swift中使用UserDefault的一点经验

在日常开发中,我们总是会使用UserDefault保存一些轻量的数据。而对于UserDefault你可能是每天用,时不时用,但是就是不知道它到底是什么东西,今天我将详细为大家介绍一下我的一点经验。
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

抢先注册 | Android 开发者峰会重磅回归

Android 开发者峰会 即将回归!加入峰会 (太平洋时间: 10 月 27 日至 28 日举行),了解 Android 开发的最新动态。今年的主题是杰出的应用和跨设备,您还将了解有助于提高工作效率
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

跟源码学数据结构 | 循环队列

循环队列是一种线性数据结构,将队尾连接在队首,形成一个环,这篇主要分析源码是如何实现队列,以及我们自己如何设计循环队列
分类: 移动开发 发布时间: 10-15 00:10 阅读次数: 0

填坑之旅 -- android.view.WindowManager$BadTokenException崩溃

情形1.android.view.WindowManager$BadTokenException: Unable to add window --token null is not valid; is
分类: 移动开发 发布时间: 10-14 23:37 阅读次数: 0

填坑之旅--studio中import 报红,但可以正常编译运行

一、studio自带清除缓存 点击AndroidStudio菜单File -> Invalidate Caches/Restart… ,在弹出的对话框中点击Invalidate and Restart
分类: 移动开发 发布时间: 10-14 23:37 阅读次数: 0

Jetpack ViewModel

1. Read The Fucking Source Code 2. Jetpack 是一个由多个库组成的套件。 3. Jetpck 才是真的豪华全家桶。
分类: 移动开发 发布时间: 10-14 23:37 阅读次数: 0