Android
文章平均质量分 84
高、远
唯有刻苦是真理
展开
-
Android中如何进行组件化、模块化开发
推荐一篇写的不错的Android模块化开发 博客,很详细:Android模块化知识分享https://juejin.cn/post/6993951889410752519#heading-7原创 2021-11-26 17:04:46 · 2161 阅读 · 2 评论 -
OKHttp五大拦截器
文章目录【1】五大拦截器总体概述一、责任链设计模式①定义:②为什么要使用责任链模式【2】拦截器的工作流程一、默认的5大拦截器有哪些?【3】RetryAndFollowUpInterceptor拦截器一、重试二、重定向【4】BridgeInterceptor 桥接拦截器【5】CacheInterceptor缓存拦截器【6】ConnectInterceptor连接拦截器【7】CallServerInterceptor请求服务连接器【8】总结【1】五大拦截器总体概述OkHttp最核心的工作是在 getResp原创 2022-05-30 19:58:35 · 6310 阅读 · 0 评论 -
OKHttp分发器源码分析(两个版本)
OkHttp【1】使用方式(流程)【2】异步两个队列 等待队列和running队列readyAsyncCallrunningAsynCall放入running条件running当前任务数小于规定的max值(默认64)(考虑到手机压力)且running队列里面正在访问的host和当前host相同的任务不能超过5个(减少服务器压力)...原创 2022-05-30 11:32:45 · 791 阅读 · 0 评论 -
Android Activity4种启动模式 —— 3分钟深刻理解
【1】总体认知闲来直接看下表,了解下有哪4中启动模式。启动模式作用功能standard默认启动模式。没启动一个Activity就将这个activity入栈,系统不会考虑这个Activity是否在栈中,每次启动都是创建一个新的实例对象singleTop启动Activity的时候,如果发现返回栈的栈顶已经是这个Activity,就直接启动这个Activity,而不是创建一个全新的实例。singleTask启动Activity的时候,如果发现返回栈中已经存在这个Activ原创 2021-05-11 00:14:54 · 1201 阅读 · 13 评论 -
Android 必懂系列 —— handler机制【由浅及深到源码分析】(含ThreadLocal原理)
【1】handler在Android 开发中到底有什么用?首先我们要先搞懂handler到底被设计出来有什么用。——一种东西被设计出来肯定就有它存在的意义,而Handler的意义就是切换线程。(线程间通信) 常用的场景就是:网络交互后切换到主线程进行UI更新。(1) 为什么不直接在子线程更新UI?Android的UI是线程不安全的,肯定不能同时多个线程操作UI线程。如果加锁又会降低UI的效率,所以通常不能在子线程更新UI。【2】handler的简单使用如下:public class MainAc原创 2021-05-06 18:18:03 · 1105 阅读 · 32 评论 -
Android高阶系列——RecyclerView的回收复用机制(多级缓存)【源码分析】
【1】 本篇文章主要介绍的内容概述:(1)问题一:RecyclerView回收复用的是什么?(2)问题二:回收来的东西放到了哪里?复用的东西又是从哪里取得的?如何取的?有时如何放的?(3)问题三:什么时候回收?什么时候复用?【2】 RecyclerView到底有那些缓存?话不多说直接给出RecyclerView的多级缓存:分级名称主要作用一级缓存mAttachedScrap 和 mChangedScrap用来缓存还在屏幕内的 ViewHolder二级缓存.原创 2021-04-11 11:12:31 · 674 阅读 · 6 评论 -
Android 进阶系列———由浅及深的理解和使用RecyclerView+吸顶效果实战
【1】什么是RecyclerView?我们为什么要是用RecyclerView?原创 2021-04-07 15:28:19 · 475 阅读 · 0 评论 -
Android --- 实现自定义View绘制动画——游动的小鱼
【Android自定义游动的锦鲤】自定义绘制一条可以游动的锦鲤,手指点击时,产生水波纹扩散效果,锦鲤可以游动到手指点击的位置,并且游动时摆动加快,效果逼真GitHub资源地址: Smart_Koi原创 2021-04-05 17:11:29 · 455 阅读 · 0 评论 -
Android 自定义View之文本绘制及文字颜色渐变效果
【1】聊到自定义View的文本绘制,首先看看如何自定义View①继承View类,重写构造方法(通常是三个)②重写onMeasure和onDraw方法例如:public class MyTextView extends View { public MyTextView(Context context) { super(context); } public MyTextView(Context context, @Nullable AttributeSet .原创 2021-03-25 14:54:50 · 1134 阅读 · 0 评论 -
Android ViewPager2+Fragment+TabLayout的简单使用
【1】ViewPager的简单使用来看个ViewPager的简单使用的例子(使用Androidx包下的ViewPager,不是ViewPager2)看看主界面中的布局:<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns.原创 2021-03-23 17:34:57 · 5960 阅读 · 5 评论 -
Android 必懂系列 —— 事件冲突及解决方案(源码分析)
还不知道事件分发的朋友可以先去看看我的另一篇事件分发后再来看时间冲突——事件分发【1】什么是时间冲突?简单来说就是,一个动作(down,move等)只能由一个View或者ViewGroup处理,而有时我们希望ViewA处理这个事件,但是却是ViewB处理的这个事件,这时我们就说产生了时间冲突。【2】解决事件冲突的常用方案注意:解决事件冲突只能在Move动作的时候①外部处理外部处理就是在希望处理的子View的父容器中处理②内部处理直接在希望处理的容器中处理【3】先来过一遍Move的原创 2021-03-22 19:47:53 · 3522 阅读 · 0 评论 -
Android 必懂系列 —— 事件分发(源码分析)
【1】什么是事件分发?所谓事件分发,就是将一次完整的点击所包含的点击事件传递到某个具体的View或ViewGroup,让该View或该ViewGroup处理它(消费它)。分发是从上往下依次传递的,其中可能经过的对象有最上层Activity,中间层ViewGroup,最下层View。例如在屏幕中有一个Button控件,点击它时该次点击事件就会从Activity传到Button所在的ViewGroup,最后传到该Button控件去处理它。即事件分发就是从上往下依次遍历,直到找到能够处理消费这次点击事件的V.原创 2021-03-22 15:30:01 · 607 阅读 · 1 评论 -
Android 必懂系列 Activity的布局层次 加载流程 详解(源码分析)
首先来看到下面的图片可以帮助我么更好地理解层次下面我们根据这个图的顺序来源码分析:【1】Activity 的创建原理我们activity的创建是需要了解AMS的(ActivityManagerService 简称AMS,是Android内核的核心功能之一,在系统启动SystemServer时启动此服务。),此篇文章先跳过AMS部分讲解更好理解,可以把AMS看成一个黑盒子。1 activity的创建从ActivityThread开始,在里面的performLaunchAc...原创 2021-03-18 15:29:58 · 592 阅读 · 1 评论 -
Android Fragment 使用讲解
【1】Fragment是什么?相关介绍:Google官网给的解释是:Fragment 表示 FragmentActivity 中的行为或界面的一部分。您可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个片段。您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或移除片段(这有点像可以在不同 Activity 中重复使用的“子 Activity”...原创 2021-03-16 21:53:38 · 923 阅读 · 0 评论 -
Android-深入理解自定义View、ViewGroup 的onMeasure方法
【1】自定义View的分类:通常自定义View分为两类:1.自定义VIew:自定义View主要实现onMeasure和onDraw方法(一个view不需要考虑布局的问题)2.自定义ViewGroup:自定义ViewGroup主要实现onMeasure和onLayout方法(ViewGroup通常不需要考虑绘制问题,绘制交给View就行)接下来我们主要讲接自定义ViewGroup【2】 自定义ViewGroup的调用流程(先不管MeasureSpec),一定要理解,可以去看其他...原创 2021-03-15 21:49:26 · 386 阅读 · 0 评论 -
Android - 使用Glide加载图片(含Android高版本时不能加载http协议图片解决方案)
Glide是谷歌为我们推荐的一个图片加载库。为什么要选择使用Glide呢?1、代码有人维护,不至于出现问题,项目组都搞不定的时候问题无法解决。(ImageLoader已没人维护了)2、代码简洁,可读性很好。(Fresco是一个非常优秀的库,但是配置稍显麻烦,同时代码风格读起来有些生疏)3、功能强大(400多k的包,包含很多功能,例如:像加载Gif图片就是Picasso做不到的)Android开发中要想加载网上的图片的基本步骤:1.发送网络请求2.将图片以流的形式下载下来3.将流转原创 2021-02-27 15:04:26 · 2233 阅读 · 0 评论 -
Android - 流式布局(代码)
以前学的时候纯手写的流式布局(kotlin语言),肯定有很多的不足,比如代码太臃肿,基本没有封装等,但供学习使用还是不错的,话不多说,直接上代码:import android.content.Contextimport android.util.AttributeSetimport android.util.Logimport android.view.Viewimport android.view.ViewGroupimport androidx.core.view.isEmptyclas原创 2021-02-26 19:04:44 · 231 阅读 · 0 评论 -
一文彻底搞懂MVC MVP MVVM 架构模式(Android)
对于我们 Android 开发者来说,常见的架构模式基本上就是 MVC,MVP,MVVM,这三种也是开发 GUI 应用程序常见的模式。除此之外还有 分层模式,客户端-服务器模式(CS模式),主从模式,管道过滤器模式,事件总线模式 等等。这篇文章还是具体分析 MVC,MVP,MVVM 这三种架构模式。1. Modle无论在那个架构模式中,Model都是不变的,Model类封装了数据模...原创 2020-11-25 19:58:04 · 465 阅读 · 0 评论 -
深入理解Android自定义VIew
image.png自己的一点理解:其实measureSpec就是view的一个内部类,封装了这个view对象的Mode和Size,封装在一个Int类型中,4字节*8位=32位,前2位封装的mode,后30位封装的sizeimage.png推荐的两篇博客地址:https://www.jianshu.com/p/705a6cb6bfeehttps://www.ji...原创 2020-10-24 14:02:31 · 73 阅读 · 0 评论