Come and Meet Kotlin Coroutine Tags of Kotlin Coroutine Kotlin协程可以被理解为一种轻量级的线程,它具有挂起和恢复...
Come and Meet Kotlin Coroutine Tags of Kotlin Coroutine Kotlin协程可以被理解为一种轻量级的线程,它具有挂起和恢复...
简介 最近用一个日期选择控件,感觉官方的DatePicker操作有点复杂,而且不同的Android版本样式也都不一样。后来发现小米日历的日期选择控件蛮好看的,于是自己尝试仿写...
目录 1.介绍 2.为什么要用ConstraintLayout 3.如何使用ConstraintLayout3.1 添加依赖3.2 相对定位3.3 角度定位3.4 边距3.5...
1.概述 一直以来都想整理下ATMS相关的流程,但是不能自己静下心来,最新考虑到可能需要换工作,捡起这块内容,先从应用内到Activity跳转开始,本文注意于流程为主。在分析...
Koin是一款轻量级的依赖注入框架,根据官方的描述,它无代理,无代码生成,无反射。 学过Dagger2的同学都深深体会到Dagger入门的艰辛。但是Koin,你通过5分钟的学...
使用方法 SPUtil实现
1. 常见用法 1. 在ext这个map中放字符串或者基本数据类型 在android的rootProject的build.gradle中,定义如下代码块 然后在app模块下,...
前言: 众所周知,一个build.gradle代表着一个project,每个project都有若干个task和每个project里的属性和额外属性还有方法,下面这篇文章主要讲...
前言 Gradle插件在Android中的应用很广泛,很多字节码插桩方案就用到了这方面的知识,Android官方提供了很多可用的插件,比如apply plugin: 'com...
一、Fragment事务提交的部分操作 1.相关源码概念 FragmetActivity的getSupportFragmentManager()内部是通过FragmentCo...
缓存复用是 RecyclerView 中一个非常重要的机制,这套机制主要实现了 ViewHolder 的缓存以及复用。 核心代码是在 Recycler 中完成的,它是 Rec...
一、前言 对于日常开发来说,一般我们都是在XML中创建想要的View,然后在代码中通过id来找到对应的View,对其进行相应的操作。但是,这样做有一个前提是,你需要事先知道V...
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 从今天开始,楼主正式开始分析RecyclerView的源码。为了阅读RecyclerView的源码,...
说起View的滑动效果,实现的方法有多种,例如使用动画,或者通过改变View的布局参数,其实除了这两种外,在Android中View已经为我们提供了scrollTo()和sc...
大家都知道Android View绘制过程包含Measure、Layout、Draw三个主要的过程,这个过程看似简单,但是在应用的时候,很多同学还是不能很好的运用。我希望这篇...
前言 在android当中对于UI体系当中往往我们会在绘制UI的时候碰到各种各样的问题而不知道从何解决, 也有时需要开发更改自定义组件时,需要做自己的调整,或者是实现...
说到缓存,都会想到内存缓存 LruCache 和磁盘缓存 DiskLruCache,两者都是基于 LRU(Lest Resently Used)算法并使用 LinkedHas...
先看下Glide官方文档对图片加载性能优化的两个方面: 图片解码速度 解码图片带来的资源压力 主要采用的步骤如下: 自动、智能地下采样(downsampling)和缓存(ca...
上篇我们以加载一张网络图片为例,讲解了Glide加载一张图片的整体流程。为了更连贯的理解流程我们略过了一些细节,包括缓存功能,本篇我们来讲解Glide的二级缓存机制。缓存流程...
前言 在Android开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2...