自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 收藏
  • 关注

原创 macd指标

今天就给大家科普梳理一下macd吧,也是毫无疑问的综合指标之王概念MACD指标 的一般研判标准主要是围绕快速和慢速两条均线及红、绿柱线状况和它们的形态展开。一般分析方法主要包括DIF和MACD值及它们所处的位置、DIF和MACD的交叉情况、红柱状的收缩情况和MACD图形的形态这四个大的方面分析。我们可以看到MACD由三条线和红绿色柱体构成,白色线是DIF线,我们也叫快线,黄色线是DEA线又叫慢线。中间的一条线是零轴。红色和绿色的柱体叫能量柱。原理、特点及作用它是根据均线的构造原理,对收盘价进行平

2022-03-19 00:42:28 822

转载 Jetpack ---- Paging源码解析 - Paging的设计与实现:架构设计与原理解析

这篇博客转载 却把清梅嗅Jetpack ---- Paging源码解析 - Paging的设计与实现:架构设计与原理解析前言架构设计与原理解析1、通过建造者模式进行依赖注入2、构建懒加载的LiveData3、为分页数据赋予生命周期4、提供Room的响应式支持中场:更多的困惑5、数据源的连续性与分页加载策略6、分页数据模型与分页数据副本7、线程切换与Paging设计中的"Bug"总结参考 & 更多本文是Android Jetpack Paging系列的第二篇文章;强烈建议 读者将本系列作为学习Pa

2020-12-24 19:43:11 462 1

转载 Jetpack ---- Paging源码解析 - Paging的设计与实现:系统概述

这篇博客参考了Jetpack ---- Paging源码解析

2020-12-24 17:15:21 501

原创 Jetpack ---- WorkManager入门(三)

翻译自android官网,可直接去官网观看Jetpack ---- WorkManager入门(三)四、先进概念一、自定义WorkManager配置和初始化按需初始化删除默认的初始化程序Implement Configuration.ProviderWorkManager 2.1.0之前的自定义初始化默认初始化自定义初始化(二)WorkManager中的线程总览Threading in WorkerThreading in CoroutineWorkerThreading in RxWorkerThrea

2020-12-23 20:10:19 454

原创 Jetpack ---- WorkManager入门(二)

翻译自android官网,可直接去官网观看Jetpack ---- WorkManager入门(二)三、方法指南一、定义工作请求概览调度一次性工作调度定期工作灵活的运行间隔约束对定期工作的影响工作约束延迟工作重试和退避政策标记工作分配输入数据后续步骤二、工作状态一次性工作的状态定期工作的状态BLOCKED 状态后续步骤三、管理工作唯一工作冲突解决政策观察您的工作复杂的工作查询取消和停止工作停止正在运行的工作器onStopped() 回调isStopped() 属性四、观察工作器的中间进度更新进度观察进度五

2020-12-23 17:28:59 423

原创 Jetpack ---- WorkManager入门(一)

翻译自android官网,可直接去官网观看Jetpack ---- WorkManager入门

2020-12-23 17:28:47 160

原创 Jetpack系列之Room----入门(三)

翻译自android官网,可直接去官网观看Jetpack系列之Room----入门(三)迁移 Room 数据库测试迁移导出架构测试单次迁移测试所有迁移妥善处理缺失的迁移路径升级到 Room 2.2.0 时处理列默认值测试和调试数据库测试您的数据库在 Android 设备上测试数据库在主机上测试数据库调试数据库使用 Room 引用复杂数据使用类型转换器了解 Room 为何不允许对象引用使用 SQLite 保存数据定义架构和协定使用 SQL 帮助程序创建数据库将信息添加到数据库从数据库中读取信息从数据库中删除

2020-12-23 13:27:55 205

原创 Jetpack系列之Room----入门(二)

翻译自android官网,可直接去官网观看Jetpack系列之Room----入门(二)定义对象之间的关系Create embedded objectsDefine one-to-one relationshipsDefine one-to-many relationshipsDefine many-to-many relationshipsDefine nested relationships编写异步DAO查询Language and framework optionsKotlin with Flow

2020-12-23 13:27:45 348

原创 Jetpack系列之Room----入门(一)

翻译自android官网,可直接去官网观看Jetpack ---- Room入门

2020-12-22 17:35:55 549

原创 Jetpack系列之Paging----入门

翻译自android官网,可直接去官网观看Jetpack ---- Paging入门分页库概览设置库架构PagedList数据界面支持不同的数据架构仅限网络仅限数据库网络和数据库处理网络连接错误更新现有应用自定义分页解析使用lists而不是pages加载的数据使用 CursorAdapter 将数据Cursor与ListView相关联使用 AsyncListUtil 异步加载内容数据库示例使用 LiveData 观察分页数据使用 RxJava2 观察分页数据显示分页列表将界面与视图模型关联分页库概览A

2020-12-22 15:59:10 195

原创 Jetpack ---- ViewModel源码解析

这篇博客参考了 程序亦非猿 和 HankkinJetpack ---- ViewModel源码解析1.背景2.简介2.1 是什么?2.2 ViewModel生命周期3. 基本使用1.背景上篇我们对LiveData进行了分析,已清楚了它的主要作用,我们再来温习一下:LiveData是一个可以感知Activity、Fragment生命周期的数据容器。其本身是基于观察者模式设计的,当LiveData所持有的数据发生改变时,它会通知对应的界面所持有该数据的UI进行更新,并且LiveData中持有Lifecy

2020-12-22 14:17:26 211

原创 Jetpack ---- LiveData源码解析

这篇博客参考了 程序亦非猿 和 HankkinJetpack ---- LiveData源码解析1. LiveData 的基本使用2. LiveData 的原理分析2.1 LiveData.observe()2.2 LifecycleBoundObserverObserverWrapper2.3 activeStateChanged(boolean)2.4 dispatchingValue(ObserverWrapper) 分析2.4.1 ObserverWrapper 不为 null 的情况2.4.2

2020-12-21 19:17:02 201

原创 Jetpack ---- DataBinding完全解析(四)DataBinding源码分析补充

此篇博客参考 海的鼻涕Jetpack ---- DataBinding完全解析(四)DataBinding源码分析补充setUserupdateRegistrationregisterToVM变化如何通知ViewV的变化如何同步到VM如何避免findViewByIdActivityMainBinding.inflate(getLayoutInflater())是如何建立Activity和View的关联的setUser这里面的代码比较简单,主要分析一下updateRegistration方法。第一个入参

2020-12-21 16:35:55 220

原创 Jetpack ---- DataBinding完全解析(三)DataBinding使用及源码分析

此篇博客转载自 csdn小瓯Jetpack ---- DataBinding完全解析(三)DataBinding使用及源码分析介绍APT预编译布局的格式和处理关联Activity组件与布局何时生成设置Model帮助类?实战引入定义实体类定义Layout布局Rebuild Project书写代码绑定DataBinding是一种工具,能在编译时绑定布局和对象。通过这篇文章,一是要掌握DataBinding的使用,二是我们要弄懂,View层是怎么改变Model的,而Model层又是如何改变View的。介绍

2020-12-21 16:25:08 430 4

原创 Jetpack ---- DataBinding完全解析(二)DataBinding是如何生成代码的?

Jetpack ---- DataBinding完全解析(二)DataBinding是如何生成代码的?分析过程XMLParserLayoutFileParserResourceBundleparseXmlResourceBundle.LayoutFileBundle分析过程在我们build.gradle文件中开启databinding后,导入的包如下:通过名字就能知道上图中选中的那个是负责编译生成辅助代码的。点击这个包打开之后,目录结构如下:XMLParser首先,第一眼凭直觉,和datab

2020-12-19 19:39:42 483 2

原创 Jetpack ---- DataBinding完全解析(一)gradle是如何导入DataBinding的

Jetpack ---- DataBinding完全解析(一)gradle是如何导入DataBinding的分析流程build.gradleBaseExtensionDataBindingOptionsTaskManagerDataBindingBuildercreateDataBindingTasksIfNecessarycreateDataBindingMergeArtifactsTaskcreateDataBindingMergeBaseClassesTaskDataBindingGenBaseCla

2020-12-18 19:13:36 846

原创 Jetpack系列之LiveData----入门

翻译自android官网,可直接去官网观看Jetpack ---- LiveData入门LiveData 概览使用 LiveData 的优势使用 LiveData 对象创建 LiveData 对象观察 LiveData 对象更新 LiveData 对象将 LiveData 与 Room 一起使用将协程与 LiveData 一起使用扩展 LiveData转换 LiveData合并多个 LiveData 源LiveData 概览Android Jetpack 的一部分。LiveData 是一种可观察的数

2020-12-16 17:06:50 622

原创 Jetpack系列之ViewModel----入门

翻译自android官网,可直接去官网观看Jetpack ---- ViewModel入门ViewModel 概览实现 ViewModelViewModel 的生命周期在 Fragment 之间共享数据将加载器替换为 ViewModel将协程与 ViewModel 一起使用更多信息ViewModel 概览Android Jetpack 的一部分。ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。注意:要将 Vi

2020-12-16 02:35:27 257

原创 Jetpack系列之Data Binding----入门(二)

翻译自android官网,可直接去官网观看Jetpack ---- Data Binding入门(二)使用可观察的数据对象可观察字段可观察集合可观察对象生成的绑定类创建绑定对象带 ID 的视图变量ViewStubs即时绑定高级绑定动态变量后台线程自定义绑定类名称绑定适配器设置特性值自动选择方法指定自定义方法名称提供自定义逻辑对象转换自动转换对象自定义转换将布局视图绑定到架构组件使用 LiveData 将数据变化通知给界面使用 ViewModel 管理界面相关数据使用 Observable ViewMode

2020-12-16 02:05:22 404

原创 Jetpack系列之Data Binding----入门(一)

翻译自android官网,可直接去官网观看Jetpack ---- Data Binding入门(一)概览使用数据绑定库使用入门编译环境Android Studio 对数据绑定的支持布局和绑定表达式数据对象绑定数据表达式语言常见功能缺少的运算Null 合并运算符属性引用避免出现 Null 指针异常视图引用集合字符串字面量资源事件处理方法引用监听器绑定避免使用复杂的监听器导入、变量和包含导入类型别名导入其他类变量包含概览数据绑定库 Android Jetpack 的一部分。数据绑定库是一种支持库,

2020-12-15 20:11:40 301

原创 架构组件 ---- ViewBinding 视图绑定 入门

翻译自android官网,可直接去官网观看架构组件 ---- ViewBinding 视图绑定 入门设置说明用法在 Activity 中使用视图绑定在 Fragment 中使用视图绑定与 findViewById 的区别与数据绑定的对比通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。在大多数情况下,视图绑定会替代 findViewById。设置说明

2020-12-15 18:21:05 429

原创 Jetpack ---- Lifecycle源码解析(4)响应的观察者们

转载自 青蛙要fly,略有删减, 注意原作者分析的代码不是最新的,但是变化不大Jetpack ---- Lifecycle源码解析(4)响应的观察者们正文响应的观察者们使用FullLifecycleObserver使用GenericLifecycleObserver(现在已废弃)使用普通的LifecycleObserver(生成辅助文件)使用单个GeneratedAdapterObserver / CompositeGeneratedAdaptersObserver(通过反射来调用)使用Reflectiv

2020-12-14 20:20:46 132

原创 Jetpack ---- Lifecycle源码解析(3)注册监听 & 发送事件

转载自 青蛙要fly,略有删减Jetpack ---- Lifecycle 篇(3)注册 & 发送 源码分析正文1. 添加注册监听2. 发送事件到观察者队列3. 观察者队列数据结构FastSafeIterableMap分析4. sync()的具体流程结语正文在 Lifecyele 篇 -(1)基础讲解 中,我们讲过三种集成Lifecycle方式,我们上面讲了三种集成方式,其实一个集成方式源码通了,其他都都类似,我们以第一种最最普通的集成方式来讲解(其他的后期有空再补充吧)。1. 添加注册监听

2020-12-14 19:01:27 192

原创 Jetpack ---- Lifecycle源码解析(2)Lifecycle 的 Event & State

Jetpack ---- Lifecycle 篇(2)源码分析之 Event & State正文Lifecycle的State和Event分析结语正文其实我们知道,归根到底其实源码讲解主要就:基础类介绍,注册源码,发送源码,响应源码在 Lifecyele 篇 -(1)基础讲解 中,我们讲过三种集成Lifecycle方式,我们上面讲了三种集成方式,其实一个集成方式源码通了,其他都都类似。本文我们会介绍Lifecycle这个基础类,同时着重讲解State和Event相关知识,因为很多人看过之后,

2020-12-14 17:20:54 442

原创 Jetpack ---- Lifecycle源码解析(1)基础知识

转载自 青蛙要fly,略有删减Jetpack ---- Lifecycle 篇(1)基础知识导读正文1. 对比2. 基础集成方式一集成方式二集成方式三3. 使用场景3.1 普通Activity、Fragment等生命周期监听3.2 监听整个App3.3 配合LiveData,消息总线结语导读本系列适合三类读者:完全没用过Lifecycle,但是听过,第一次接触的,想从浅入深的读者,我会有实际生活中的例子来让大家更容易掌握稍微知道整个基础流程的,能大概讲个大概,但是深入就没有了解过的读者自己也写

2020-12-14 16:56:48 204

原创 Jetpack系列之Lifecycle----入门

翻译自android官网Jetpack ---- Lifecycle入门使用生命周期感知型组件处理生命周期生命周期LifecycleOwner实现自定义 LifecycleOwner生命周期感知型组件的最佳做法生命周期感知型组件的用例处理 ON_STOP 事件使用生命周期感知型组件处理生命周期Android Jetpack 的一部分。Lifecycle-aware components 生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这

2020-12-13 20:57:03 217

原创 Jetpack ---- App Startup源码解析

Jetpack ---- App Startup源码解析1. 解决的问题2. 使用App StartUp(1) 添加依赖(2) 实现Initializer< T >接口(3) 注册Provider和Initializer<?>3. App StartUp实现懒加载4. App StartUp源码解析5. App StartUp利弊1. 解决的问题一般需要初始化的sdk都会对外提供一个初始化方法供外界调用,如:public class App extends Applicatio

2020-12-13 16:37:11 174

原创 Android架构组件 – App Startup入门

翻译自android官网Android架构组件 – App StartupSetup 设定Initialize components at app startup 在应用启动时初始化组件Implement component initializers 实现组件初始化器Set up manifest entries 设置清单条目Run lint checks手动初始化组件禁用单个组件的自动初始化禁用所有组件的自动初始化手动调用组件初始化程序App Startup库提供了一种直接,高效的方法,可以在应用程序

2020-12-12 22:58:58 643

转载 Android Virtualview:淘宝、天猫又开源了一个动态化、高性能的UI框架

转载 Carson_HoAndroid Virtualview:淘宝、天猫又开源了一个动态化、高性能的UI框架前言目录1. 为什么要向 Tangram模型 加入 VirtualView2. VirtualView介绍3. 实现原理核心思路实现方案总结4. 工作流程流程概述流程详细分析流程1:创建UI组件1. 使用框架内置(封装好)的UI组件2. 自定义UI组件3. 总结流程2:创建界面模板 & 下发1. 创建XML界面模板2. 编译成二进制数据具体描述二进制文件描述编译流程3. 模板数据下发到客户

2020-12-12 13:37:44 696

转载 Android Tangram模型:连淘宝、天猫都在用的UI框架模型

转载 Carson_HoAndroid Tangram模型:连淘宝、天猫都在用的UI框架模型前言目录为什么要使用 Tangram 模型背景问题解决方案定义应用场景Tangram优点高性能面向业务扩展性好多端一致性架构 & 原理讲解知识储备Tangram结构原理解析扩展模块具体使用总结前言Tangram 是阿里出品、用于快速实现组合布局的框架模型,在手机天猫 Android & iOS版 内广泛使用今天将对Tangram 模型 进行全面介绍,希望你们会喜欢。目录为什么要使用

2020-12-12 09:47:46 401

原创 Android开源库V - Layout:淘宝、天猫都在用的UI框架

转载 Carson_HoAndroid开源库V - Layout:淘宝、天猫都在用的UI框架前言目录为什么要使用 V - Layout简介应用场景原理解析源码类说明工作流程初始化具体布局流程总结使用步骤步骤1:创建RecyclerView & VirtualLayoutManager 对象并进行绑定步骤2:设置回收复用池大小步骤3:设置Adapter步骤4:根据数据列表,创建对应的LayoutHelper1. 线性布局(LinearLayoutHelper)1. 所有布局的共有属性说明:2. Li

2020-12-12 03:37:00 677

转载 Glide源码解析(八)带你全面了解Glide 4的用法

转载自 guolin,略有删减改动Glide源码解析(八)带你全面了解Glide 4的用法本篇将是我们这个Glide系列的最后一篇文章。其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了。那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定,因此整个系列也都是基于3.7.0版本来写的。而现在,Glide的最新版本已经出到了4.4.0,可以说Glide 4已经是相当成熟和稳定了。而且也不断有朋友一直在留言,想让我讲一讲Glide 4的用法,因为Glide

2020-12-11 19:26:02 682 3

转载 Glide源码解析(七)实现带进度的Glide图片加载功能

转载自 guolin,略有删减改动Glide源码解析(七)实现带进度的Glide图片加载功能我们的Glide系列文章终于要进入收尾篇了。从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久。在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包括基本用法、源码解析、缓存机制、回调与监听、图片变换以及自定义模块。而今天,我们就要综合利用之前所学到的知识,来对Glide进行一个比较大的功能扩展,希望大家都已经好好阅读过了前面的六篇文章,并且有了不错的理解。扩

2020-12-11 18:40:35 401

转载 Glide源码解析(六)探究Glide的自定义模块功能

转载自 guolin,略有删减改动Glide源码解析(六)探究Glide的自定义模块功能不知不觉中,我们的Glide系列教程已经到了第六篇了,距离第一篇Glide的基本用法发布已经过去了半年的时间。在这半年中,我们通过用法讲解和源码分析配合学习的方式,将Glide的方方面面都研究了个遍,相信一直能看到这里的朋友现在已经是一位Glide高手了。整个Glide系列预计总共会有八篇文章,现在也是逐步进入尾声了。不过,越是到后面,我们探究的内容也越是更加深入。那么今天,我们就来一起探究一下Glide中一个比较

2020-12-11 17:59:17 349

转载 Glide源码解析(五)Glide强大的图片变换功能

转载自 guolin,略有删减改动Glide源码解析(五)Glide强大的图片变换功能一个问题大家好,又到了学习Glide的时间了。今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了Glide的基本用法、Glide的工作原理和执行流程、Glide的缓存机制、以及Glide的回调机制等内容。如果你能将前面的四篇文章都掌握好了,那么恭喜你,现在你已经是一名Glide好手了。如果你还没有阅读过前面四篇文章的话,那么可以点击后面的链接,依次向前阅读 Glide源码解析(四)玩转Glide的回调与

2020-12-11 16:54:16 355

转载 Glide源码解析(四)玩转Glide的回调与监听

转载自 guolin,略有删减改动Glide源码解析(四)玩转Glide的回调与监听回调的源码实现into()方法SimpleTargetViewTargetpreload()方法downloadOnly()方法listener()方法大家好,今天我们继续学习Glide。在上一篇文章当中,我带着大家一起深入探究了Glide的缓存机制,我们不光掌握了Glide缓存的使用方法,还通过源码分析对缓存的工作原理进行了了解。虽说上篇文章和本篇文章的内容关系并不是很大,不过感兴趣的朋友还是可以去阅读一下 Glide

2020-12-10 22:58:15 1116

转载 Glide源码解析(三)深入探究Glide的缓存机制

转载自 guolin,略有删减改动Glide源码解析(三)深入探究Glide的缓存机制Glide缓存简介缓存Key内存缓存硬盘缓存高级技巧在本系列的上一篇文章中,我带着大家一起阅读了一遍Glide的源码,初步了解了这个强大的图片加载框架的基本执行流程。不过,上一篇文章只能说是比较粗略地阅读了Glide整个执行流程方面的源码,搞明白了Glide的基本工作原理,但并没有去深入分析每一处的细节(事实上也不可能在一篇文章中深入分析每一处源码的细节)。那么从本篇文章开始,我们就一篇篇地来针对Glide某一块功能

2020-12-10 19:14:27 249 2

转载 Glide源码解析(一)基本用法

转载自 guolin,略有删减改动Glide源码解析(一)基本用法开始加载图片占位图指定图片格式指定图片大小现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有Facebook的Fresco。每一个都非常稳定,功能也都十分强大。但是它们的使用场景基本都是重合的,也就是说我们基本只需要选择其中一个来进行学习和使用就足够了,每一个框架都尝试去掌握的话则有些浪费时

2020-12-10 17:21:05 178

转载 Glide源码解析(二)从源码的角度理解Glide的执行流程

转载自 guolin,略有删减改动Glide源码解析(二)从源码的角度理解Glide的执行流程如何阅读源码源码下载开始阅读1. with()2. load()3. into()总结在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API。还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 。在多数情况下,我们想要在界面上加载并展示一张图片只需要一行代码就能实现,如下所示:Glide.with

2020-12-10 17:18:47 239

原创 RecyclerView 源码分析(十)ItemTouchHelper源码详解

RecyclerView 源码分析(十)ItemTouchHelper源码详解ItemTouchHelper效果展示ItemTouchHelper使用的简单介绍ItemTouchHelper.Callback常用函数ItemTouchHelper的使用源码分析select()函数attachToRecyclerView()ItemTouchHelper源码详解ItemTouchHelper是一个强大的帮助类。用来配合RecyclerView使用,ItemTouchHelper同一时刻只能支持两种效果:s

2020-12-09 19:30:03 401

空空如也

空空如也

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

TA关注的人

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