<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[QCODER's Coding Fleid]]></title><description><![CDATA[coding 人生]]></description><link>https://blog.youkuaiyun.com/yqq577</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yqq577]]></copyright><item><title><![CDATA[被 优快云，伤透了心]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/125993498</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/125993498</guid><author>yqq577</author><pubDate>Tue, 26 Jul 2022 14:53:08 +0800</pubDate><description><![CDATA[这样的事情，不是起点，也不会是终点。我心真的被 优快云 伤透了！

这样的事情，不是个例，而是整个平台的一个缩影。

更加可悲的是，这个平台也只是，创造平台上的一个缩影。

我的力量很小，我的心愿却很大。我希望 优快云 平台，以及其他的平台能在审核上完善一些，不要再伤透了原创们的心！..................]]></description><category></category></item><item><title><![CDATA[【Android】RecyclerView 缓存机制，真的很难理解？到底是几级缓存？]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/122106962</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/122106962</guid><author>yqq577</author><pubDate>Thu, 23 Dec 2021 15:04:11 +0800</pubDate><description><![CDATA[我们将以场景化的方式，讲解 RecyclerView 的缓存机制。常见的两个场景是：

1.滑动 RecyclerView 下的缓存机制

2.RecyclerView 初次加载过程的缓存机制

本文将讲解 滑动 RecyclerView 下 的缓存机制

背景知识：负责回收和复用 ViewHolder 的类是 Recycler，负责缓存的主要就是这个类的几个成员变量。我们贴点源码看看（下面源码的注释（和我写的注解），很重要，要记得认真看哦）


/**
 * A Recycler is responsib]]></description><category></category></item><item><title><![CDATA[【Android】自定义 View 系列-MeasureSpec]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/121976200</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/121976200</guid><author>yqq577</author><pubDate>Thu, 16 Dec 2021 15:53:38 +0800</pubDate><description><![CDATA[自定义 View 中的 MeasureSpec 到底是什么？我们 View 的大小到底是谁说了算？]]></description><category></category></item><item><title><![CDATA[【Android】自定义 View 系列- 绘制流程]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/121951614</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/121951614</guid><author>yqq577</author><pubDate>Wed, 15 Dec 2021 14:40:42 +0800</pubDate><description><![CDATA[前言

本文旨在让读者对整个绘制流程有个感性的认识-一个图是经过了什么样的流程最后展示到用户面前的。

在讲解流程之前，我们需要有一个模型



解释：我们画的图，就是通过 Paint（画笔）作用到 Canvas（画板）后，再由画板作用于手机屏幕。所以这也为后面想要对图片做放大或缩小，要先做放大或缩小的操作再做绘制做了解释（这里不理解，没关系。后面内容会重新提到）。[也就是会有些文章说到的-在onDraw() 的时候，要‘顺着逻辑想，倒着逻辑写’]

绘制流程

有了上面的基本模型后，我们接着来看绘制流程.]]></description><category></category></item><item><title><![CDATA[【Android】自定义 View 系列实战篇-View]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/121786486</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/121786486</guid><author>yqq577</author><pubDate>Wed, 08 Dec 2021 11:04:47 +0800</pubDate><description><![CDATA[对自定义 View 的练习-评分控件，可自定义总数，‘星星’样式，展示与操作两用等功能]]></description><category></category></item><item><title><![CDATA[【Android】自定义 View 系列实战篇-ViewGroup]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/121775532</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/121775532</guid><author>yqq577</author><pubDate>Tue, 07 Dec 2021 18:22:48 +0800</pubDate><description><![CDATA[自定义 ViewGroup 其实也不复杂，但是要对子 View 的margin属性支持，就还需要花点经历。

下面自己写了一个自定义的 FlowLayout，支持了本身的 padding 属性的同时，也支持子 View 的 margin 属性。基本注释都已尽可能详尽地写在代码中。

先上效果图









兄弟们，上代码


import android.content.Context
import android.graphics.Rect
import android.util.Attribu..]]></description><category></category></item><item><title><![CDATA[【Android】OkHttp源码解读逐字稿(2)-OkHttpClient]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/119714010</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/119714010</guid><author>yqq577</author><pubDate>Sun, 15 Aug 2021 15:33:19 +0800</pubDate><description><![CDATA[目录

0.前言

1.各个属性浅析

01.dispatcher

02.connectionPool

03.interceptors&amp;networkInterceptors

04.eventListenerFactory

05.retryOnConnectionFailure

06.authenticator

07.followRedirects &amp; followSslRedirects

08.cookieJar

09.cache

10.dns

11.proxy &am]]></description><category></category></item><item><title><![CDATA[【Android】OkHttp源码解读逐字稿(1)-拦截器]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/119519649</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/119519649</guid><author>yqq577</author><pubDate>Sun, 08 Aug 2021 20:46:44 +0800</pubDate><description><![CDATA[目录

0.前言

1.Okhttp的简单使用

2.浅析开始

拦截器

链式调用流程示意图

第 0 个拦截器

第一个 拦截器 RetryAndFollowUpInterceptor

第二个拦截器 BridgeInterceptor

第三个拦截器 CacheInterceptor

第四个拦截器 ConnectInterceptor

第五个拦截器

第六个拦截器 CallServerInterceptor

小结

3.结语

0.前言

作为一个已经工作*年的 Android 开发工程师，感.]]></description><category></category></item><item><title><![CDATA[【Android-混合开发】奇案-上传照片至 H5 失败]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/117773803</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/117773803</guid><author>yqq577</author><pubDate>Thu, 10 Jun 2021 13:59:24 +0800</pubDate><description><![CDATA[在开发阶段，涉及的手机都没有出现上面的问题-在 H5 调起原生相机相册，选择文件后，H5 页面无法获取到对应文件展示。

红米note9（Android10） ，荣耀 30（Android10），OPPO R17（Android10）,OPPO Reno5 （Android11），小米10（Android10），均出现了该问题。但均不是必现。而且，通过云测以上机型也均没有出现问题。你说是不是奇案？

在没有思路的情况下，我决定写一个 Demo，将因素一个个进行研究。

最直接的发现是

只与是否经历过压..]]></description><category></category></item><item><title><![CDATA[【Android-混合开发】H5 能直接调起原生的相册和相机吗？]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/116989607</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/116989607</guid><author>yqq577</author><pubDate>Tue, 18 May 2021 15:17:24 +0800</pubDate><description><![CDATA[最近混合开发中出现，H5界面调用原生的相册和相机。一开始的我，并不知道H5可以直接调起原生的相机和相册。iOS 的同事告诉我，可以的。我很开心，因为这样才符合混合开发的意义嘛。（只要H5端写好了，两个移动端就可以不写）。但是万万万万万万没想到，android，好像不可以？？？（我爱 Android）

尝试1：抱着希望在 Google 上一顿搜索，有文章说要在 H5 标签中，添加capture属性。


&lt;input type="file" accept="image/*" capture="ca..]]></description><category></category></item><item><title><![CDATA[【Android-混合开发】mPaas-多版本接入篇]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/116801705</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/116801705</guid><author>yqq577</author><pubDate>Mon, 17 May 2021 18:38:36 +0800</pubDate><description><![CDATA[对于 mPaas 的常规接入，这里就不赘述了。因为比较简单，根据官方文档就可以完美接入了。（可以在 Android Studio 中，接入 mPaas 插件，这样可以更快，更方便的接入）

经历完上面的步骤，我以为看到了胜利的曙光。突然，CTO 跟 iOS 的同事说：“Android 既然接好了，那 iOS 这边也接 mPaas，不过 iOS 这边存在坑，就是公司项目采用了在一个 TARGETS 下可以打出多个应用。但是一个 TARGETS 只能配置一个 mPaas 的 config 文件。”...]]></description><category></category></item><item><title><![CDATA[【Android-混合开发】JSBridge-基础篇]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/116527772</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/116527772</guid><author>yqq577</author><pubDate>Sat, 08 May 2021 15:50:00 +0800</pubDate><description><![CDATA[（假装有图）

因项目需要，终究是需要进行混合开发。开心的是，我早就想接触这块了。在我还没有接触之前，我想着这有啥难的。不就是用WebView加载一个链接就完事了吗？（无知的人类）废话不多说，直接进入主题。接下来几篇文章都会是关于与 H5 混合开发的坑坑洼洼。

学习一个新的事物，总是容易毫无头绪去，就应该以建立”问题树“的方式，开展学习。（该思路源于《跃迁》一书，问题树往往比知识网络结构图更容易让人掌握一个知识）

目录

WebView怎么加载H5？

Android 如何调用 H5 中的方法？

调用]]></description><category></category></item><item><title><![CDATA[【Android】初识系列-Room，我来了~避雷指南]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/114537911</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/114537911</guid><author>yqq577</author><pubDate>Mon, 08 Mar 2021 17:20:49 +0800</pubDate><description><![CDATA[大家好，我是一个热爱技术的Coder。对于android，我是-【不厉害但爱‘玩’ 】。今天记录的是数据存储这块的内容。

2018年 Room 就问世了，可是到现在有多少人正式用过它呢？这个问题，我也不知道。我问出来，只是因为我之前一直没用，对于本地数据的存储涉及不到。最近项目中有需要，就记录了一下吧。以后，要多多了解新出的技术，例如最近的Compose Beta版，与时代同步。

老规矩，是什么？为什么？怎么用？三步走。

对于一个东西是什么？最好的了解方式，就是上官网，看官网的定义。上才。。不对，..]]></description><category></category></item><item><title><![CDATA[【Android-通讯-蓝牙】你还不会 BLE？最全入门指南？]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/112851520</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/112851520</guid><author>yqq577</author><pubDate>Fri, 22 Jan 2021 11:26:00 +0800</pubDate><description><![CDATA[目录

前言

通过蓝牙，我们能干嘛？

前言

在项目开发过程中，一般为了“快速开发”，我们一般除了CV，还有就是借轮子。这次蓝牙，我也借了一个轮子，但是这个轮子有问题？？

情况是这样的：在部分华为手机上使用App的蓝牙模块，会偶尔出现&lt;针对性蓝牙服务缺失&gt;。即：有一次手机A连上蓝牙在发现服务的时候，会缺失两个服务（其中一个是主要使用的服务），那么手机A再不做其他处理的情况下，就再也找不到那两个“丢失”的服务。但是，其他的手机又可以搜到该蓝牙设备对应的所有服务。碍于对轮子存在疑虑，于是...]]></description><category></category></item><item><title><![CDATA[【Android】你以为的单例模式和真正的单例模式是一样的吗？]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/110820058</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/110820058</guid><author>yqq577</author><pubDate>Thu, 10 Dec 2020 19:22:02 +0800</pubDate><description><![CDATA[目录

你以为的单例模式

单例模式的思想

真正的单例模式

Java 实现

懒汉模式

线程安全的懒汉模式

饿汉模式

双重检查加锁模式

静态内部类模式

Koltin实现

懒汉模式

线程安全的懒汉模式

饿汉模式

双重检查加锁模式

静态内部类模式

你以为的单例模式

可能你认为的单例模式是这样的


public class Singleton(){
    private static Singleton instance;
    private static Singleton ]]></description><category></category></item><item><title><![CDATA[【Android】浅析AsyncTask]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/109178097</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/109178097</guid><author>yqq577</author><pubDate>Wed, 21 Oct 2020 10:06:00 +0800</pubDate><description><![CDATA[本篇文章，主要谈谈线程间通信方式之一AsyncTask。会从源码的角度，进行简单的分析。

 依然根据之前的学习结构来学习这个点。

 1.是什么？

 2.怎么用？

 3.为什么？（包括原理和优缺点）

 细心的你，会发现上面的结构发生了变化。按照正常的顺序，不是应该为 What, Why , How 吗？Actually，这是根据我们平时学习深度调整了一下，我们一般在技术上，都是先知道了它是什么，然后就用起来了。对于为什么？这个可能很多攻城狮和程序媛会没有精力去学习（毕竟，还要打王者...]]></description><category></category></item><item><title><![CDATA[【随手记】开发中遇到的问题与解决方案，持续更新...]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/106896856</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/106896856</guid><author>yqq577</author><pubDate>Mon, 22 Jun 2020 10:21:32 +0800</pubDate><description><![CDATA[1.Gradle dependencies依赖关键词的作用


			implementation
			
			
			所依赖的库仅可在当前module使用，编译速度快
			
			
		
			api
			
			
			整个工程使用，编译速度比implementation慢
			
			
		
			apk
			
			
			仅在生成apk的时候参与打包，编译时不参与
			
			
		
			testImplementation
			
			
			仅在单元测试代码的编译和最终打...]]></description><category></category></item><item><title><![CDATA[【工具】Git与GitLab /GitHub/Coding/...不得不说的秘密。]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/106489421</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/106489421</guid><author>yqq577</author><pubDate>Tue, 02 Jun 2020 10:21:35 +0800</pubDate><description><![CDATA[git 是什么？


  Git is a free and open source distributed version control system 
designed to handle everything from small to very large projects 
with speed and efficiency.
---源自官网 https://git-scm.com/

意思是：Git 是一个免费的开源分布式版本控制系统，旨在快速高效地解决大小型项目的所有内容。

 G...]]></description><category></category></item><item><title><![CDATA[【Android】手把手带你进入android打包的多版本，多环境，多渠道的踩坑之旅]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/106249366</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/106249366</guid><author>yqq577</author><pubDate>Thu, 21 May 2020 11:11:49 +0800</pubDate><description><![CDATA[本文内容是基于

英文版：https://laptrinhx.com/multi-version-multi-environment-and-multi-channel-packaging-of-android-3124436623/

中文版：可以直接用google浏览器翻译上面的内容，但是google翻译起来会有点奇怪，所以还看【天然鱼】的这篇文章吧https://www.jianshu.com/p/872dc6f89cb4

对于有经验的coder可以直接看上面的文章，如果是白白净净的小白，那就来我.]]></description><category></category></item><item><title><![CDATA[【Android】仿淘宝商品详情页]]></title><link>https://blog.youkuaiyun.com/yqq577/article/details/106137651</link><guid>https://blog.youkuaiyun.com/yqq577/article/details/106137651</guid><author>yqq577</author><pubDate>Fri, 15 May 2020 12:06:07 +0800</pubDate><description><![CDATA[话不多说---先上效果图：


图1 商品详情页


图2 加入购物车点击事件

需求分析：

图1中主要需要实现的效果：

1.轮播图

2.顶部导航栏的渐变

3.顶部导航栏随着滑动的位置选择对应的值以及点击滑动到对应位置

图2中主要需要实现的效果：

1.界面从底部出场的效果

2.参数选择的瀑布流式效果

技术分析：

图1：

1.轮播图，可以采用自定义（ViewPager的使用），也可以用直接用第三方库。这里我采用的是

https://github.com/youth5201314/bann]]></description><category></category></item></channel></rss>