
ViewModel的实现原理
一、ViewModel的使用 在页面(Activity/Fragment)很简单的情况下,通常我们会将UI交互,数据获取与处理等相关业务逻辑,全部写在页面中,但是在页面复杂的情况下,这样做是不合适的,它不符合“单一责任”原则。页面只应该负责接收用户的交互,以及将数据展示到屏幕上,相关数据应该单独存放和处理。 为此,Android为我们提供了ViewModel类,专门用于存放应用程序页面所...

一、ViewModel的使用 在页面(Activity/Fragment)很简单的情况下,通常我们会将UI交互,数据获取与处理等相关业务逻辑,全部写在页面中,但是在页面复杂的情况下,这样做是不合适的,它不符合“单一责任”原则。页面只应该负责接收用户的交互,以及将数据展示到屏幕上,相关数据应该单独存放和处理。 为此,Android为我们提供了ViewModel类,专门用于存放应用程序页面所...
Java单例模式的几种写法,其中懒汉式和双重校验锁方式写法如下: 懒汉式 public class Singleton { private static Singleton instance; private Singleton (){} public static synchronized Singleton getInstance() { if...

Java部分 彻底搞懂Java线程池的工作原理 彻底搞懂Java内存模型与volatile关键字 彻底搞懂Java中的synchronized关键字 彻底搞懂Java中的ReentrantLock实现原理 彻底搞懂Java并发包中的Atomic原子类 深入理解Java线程的等待与唤醒机制(一) 深入理解Java线程的等待与唤醒机制(二) Java并发系列终...
如果您想知道如何制作 deepfake,那么您来对地方了!本 DeepFaceLab 2.0 指南将作为参考和涵盖整个过程的分步教程。DeepFaceLab 可用于各种应用,从娱乐和专业制作,到定制实施和深度学习研究。通过遵循本文档中列出的步骤和建议,您将能够使用 PC 或云计算平台创建最先进的deepfake。 英文原文地址: https://www.deepfakevfx.com/g...
If you’re wondering how to make a deepfake you’ve come to the right place! This DeepFaceLab guide will serve as both a reference and a step-by-step tutorial covering the entire process. DeepFaceLab...
本文转载自 “终于懂了” 系列:组件化框架 ARouter 完全解析(一) 原理详解(作者:胡飞洋)。版权归原作者所有,此处仅作个人学习备份。 前言 在我之前的组件化文章《“终于懂了” 系列:Android组件化,全面掌握!》中,提到为了实现组件化要解决的几个问题点,其中 页面跳转、组件间通信 的问题是使用了 ARouter 这个框架来解决的。ARouter确实是专门用于做组件化改造,...
本文主要是Repo的使用,项目里面找到了一个比较好的插件gradle-repo来解决多模块依赖,且不同模块有独立的git仓库,代码的提交问题 原文链接:https://duanqz.github.io/2015-06-25-Intro-to-Repo 1、清华镜像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ repo init 的时候...
本文转载自 [Kotlin 异步 Flow 限流的应用场景及原理](https://juejin.cn/post/6989782281191686180)。版权归原作者所有,此处仅作个人学习备份。 异步数据流中的生产者可能会生产过多的数据,而消费者并不需要那么多,所以限流就有用武之地了。App 开发中有一些常见的限流场景,比如搜索框防抖、点击...
本文转载自 ViewModel源码研究之聊聊onSaveInstanceState和onRetainNonConfigurationInstance的区别(作者:字节小站)。版权归原作者所有,此处仅作个人学习备份。 1. 前言 最近在研究ViewModel实现原理。ViewModel有两个特性。 当配置发生改变时(例如:旋转屏幕),重新创建的Activity能够通过ViewMo...
本文转载自 Java并发系列番外篇:ThreadLocal原理其实很简单。版权归原作者所有,此处仅作个人学习备份。 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之...