<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yzwfeng的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yzwfeng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yzwfeng]]></copyright><item><title><![CDATA[Glide双内存缓存加载机制详细介绍]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/149360284</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/149360284</guid><author>yzwfeng</author><pubDate>Tue, 15 Jul 2025 17:08:34 +0800</pubDate><description><![CDATA[Glide采用两级内存缓存机制优化图片加载性能：活动资源缓存（ActiveResources）使用弱引用存储正在展示的图片，与页面生命周期绑定，确保可见图片不被回收；内存LRU缓存（MemoryCache）通过强引用保留近期使用过的图片，采用LRU算法管理。两者协同工作，ActiveResources优先保护当前使用资源，MemoryCache提供历史复用，配合BitmapPool减少内存开销。开发者可通过调整缓存策略（如动态缓存大小、禁用缓存）优化性能，需注意使用Activity/Fragment的Con]]></description><category></category></item><item><title><![CDATA[Android 透明度设置]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/147959754</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/147959754</guid><author>yzwfeng</author><pubDate>Wed, 14 May 2025 17:54:35 +0800</pubDate><description><![CDATA[本文介绍了Android开发中透明度的概念及其设置方法。透明度在Android中通常以ARGB格式表示，其中A代表透明度，范围从00（完全透明）到FF（完全不透明）。文章提供了透明度对照表，详细列出了不同百分比透明度对应的16进制值。此外，文章还介绍了如何在XML和代码中设置透明度，包括通过android:alpha属性或setAlpha方法调整控件的透明度。这些方法可以帮助开发者灵活地控制UI元素的透明度，以达到预期的视觉效果。]]></description><category></category></item><item><title><![CDATA[Android:Android Studio右侧Gradle没有assembleRelease等选项]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/147097871</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/147097871</guid><author>yzwfeng</author><pubDate>Wed, 09 Apr 2025 17:05:12 +0800</pubDate><description><![CDATA[在as2024版本中，打开Settings->Experimental->勾选 Configure all Gradle tasks during Gradle Sync (this can make Gradle Sync slower)勾选右侧Gradle下方的Configure all Gradle tasks during Gradle Sync (this can make Gradle Sync slower)Gradle下，展开Tasks->other只有两个测试操作。]]></description><category></category></item><item><title><![CDATA[释放 PWA 的力量：2025 年的现代Web应用｜React + TypeScript 示例]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/145570340</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/145570340</guid><author>yzwfeng</author><pubDate>Tue, 11 Feb 2025 14:08:44 +0800</pubDate><description><![CDATA[在2024年的Web开发领域，PWA（Progressive Web Apps）已经成为一个不可忽视的技术趋势。这篇文章将探讨PWA的最新发展，并通过实例展示如何构建一个现代PWA应用。PWA本质上是一种将Web应用提升到接近原生应用体验的技术方案。它通过Service Workers、Web Manifest等技术，实现了离线运行、消息推送等传统Web应用难以实现的功能。离线可用：即使在网络不佳时也能正常工作接近原生体验：采用App Shell模型自动更新：无需用户手动操作。]]></description><category></category></item><item><title><![CDATA[Android中坐标体系知识超详细讲解]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/144536268</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/144536268</guid><author>yzwfeng</author><pubDate>Tue, 17 Dec 2024 15:15:08 +0800</pubDate><description><![CDATA[一般情况下layout过程会参考measure过程中计算得到的mMeasuredWidth和mMeasuredHeight来安排子视图在父视图中显示的位置，但这不是必须的，measure过程得到的结果可能完全没有实际用处，特别是对于一些自定义的ViewGroup，其子视图的个数、位置和大小都是固定的，这时候我们可以忽略整个measure过程，只在layout函数中传入的4个参数来安排每个子视图的具体位置。该方法可以获取到当前view与屏幕的关系，location(0)代表。]]></description><category></category></item><item><title><![CDATA[Android OnTouchListener & OnTouchEvent & OnClickListener三者之间的关系？]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/144530189</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/144530189</guid><author>yzwfeng</author><pubDate>Tue, 17 Dec 2024 11:16:05 +0800</pubDate><description><![CDATA[首先是onTouchListener（以下简称TL）和onTouchEvent（以下简称TE），TL是一个接口类，调。motionEvent，后者可以知道touch有哪些相应的Action，并分别处理，CL可以监听控件点击事件。是一种Listener监听机制，而TL可以监听到点击事件在onTouch中处理，并传入两个参数View和。有了这两种事件处理机制，我们可以灵活运用，并获得一个相对更好的用户体验，记住对产品来。都是类里面的方法，我们可以通过这两种方法处理不同的touch交互Action。]]></description><category></category></item><item><title><![CDATA[Activity 的顶级View-- DecorView加载介绍]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/144245050</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/144245050</guid><author>yzwfeng</author><pubDate>Wed, 04 Dec 2024 17:19:11 +0800</pubDate><description><![CDATA[相信 Android 开发都知道，View 是树形结构，一组 View 的集合就是ViewGroup，而ViewGroup中又可以包含 View 和其他ViewGroup，从而构成了树结构。那么问题来了，这棵树的根又是什么呢？接下来就让我们一起来探究一下 Android 的顶级 View——DecorView。根据上面的分析，相信你已经明白了DecorView作为根ViewActivity在attch时，会创建对象，在onCreate执行其方法；中会使用来创建一个DecorView对象作为根View；]]></description><category></category></item><item><title><![CDATA[Android ConstraintLayout 约束布局的使用手册]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/144232562</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/144232562</guid><author>yzwfeng</author><pubDate>Wed, 04 Dec 2024 10:59:56 +0800</pubDate><description><![CDATA[目前Android的默认布局早已改成ConstraintLayout，但是很多小伙伴还是使用过去的相对布局，觉得老的布局用起来熟悉，新布局使用复杂，从而失去了探索新大陆的机会，今天就让我们一起揭开ConstraintLayout的面纱，掌握Android新布局的使用方法。传统的布局容易在版本迭代过程中，造成页面层级过多的问题（俄罗斯套娃），一是对页面渲染有影响，二是不利于开发者的后期维护。]]></description><category></category></item><item><title><![CDATA[Android View事件分发机制深入详细介绍，及主要用来解决什么问题分析]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/144215032</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/144215032</guid><author>yzwfeng</author><pubDate>Tue, 03 Dec 2024 15:05:36 +0800</pubDate><description><![CDATA[在android开发中会经常遇到滑动冲突（比如ScrollView或是SliddingMenu与ListView的嵌套）的问题，需要我们深入的了解android事件响应机制才能解决，事件响应机制已经是android开发者必不可少的知识。面试找工作的时候也是面试官经常会问的一个问题。]]></description><category></category></item><item><title><![CDATA[FileProvider高版本使用，跨进程传输文件]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/143860755</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/143860755</guid><author>yzwfeng</author><pubDate>Mon, 18 Nov 2024 16:47:56 +0800</pubDate><description><![CDATA[高版本的android对的管控抓的很严格,理论上两个应用之间的文件传递现在都应该是用FileProvider去实现,这篇博客来一起了解下它的实现原理。首先我们要明确一点,FileProvider就是一个。]]></description><category></category></item><item><title><![CDATA[Android 使用反射 反射获取activity]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/142516161</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/142516161</guid><author>yzwfeng</author><pubDate>Wed, 25 Sep 2024 10:26:08 +0800</pubDate><description><![CDATA[反射（Reflection）是程序的自我分析能力，通过反射可以确定类中有哪些方法、有哪些构造方法以及有哪些成员变量，在运行状态中，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意方法和属性；这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射在Andorid中开发应用的比较多，Class对象， Constructor 对象，Method 对象  Field对象各自的常用API要理解并熟练运用， 结合源码多阅读多仿写，相信你也可以carry住反射。]]></description><category></category></item><item><title><![CDATA[Android图片缓存工具类LruCache原理和使用介绍]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/141815656</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/141815656</guid><author>yzwfeng</author><pubDate>Mon, 02 Sep 2024 11:40:49 +0800</pubDate><description><![CDATA[trimToSize()利用了LinkedHashMap的特性，当超过限制时候，移除头部的结点，因为头部结点是。常用的三级缓存主要有LruCache、DiskLruCache、网络，其中LruCache对应内存缓存、其次，LruCache使用起来跟HashMap差不多，主要是put()加入缓存、get()获取缓存。我们根据访问动作会来调整顺序，当插入一个结点时候，将该结点插入到队列的尾部，或者，访。trimToSize() 在增加缓存之后会调用，负责整理缓存，超过限制会清除旧的缓存。]]></description><category></category></item><item><title><![CDATA[Java 生产者消费者模式介绍]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/139494987</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/139494987</guid><author>yzwfeng</author><pubDate>Thu, 06 Jun 2024 11:20:48 +0800</pubDate><description><![CDATA[的基本线程数就把任务扔到阻塞队列里，这种做法比只使用一个阻塞队列来实现生产者和消费者模式显然要高明很多，因为消费者能够处理直接就处理掉了，这样速度更快，而生产者先存，消。来处理不同性质的任务，比如线程池1将数据读到内存之后，交给线程池2里的线程继续处理压缩。在线程世界里，生产者就是生产数据的线程，消费者就是消费数据的线程。直接扔给阻塞队列，消费者不找生产者要数据，而是直接从阻塞队列里取，阻塞队列就相当于一。要继续处理，于是消费者处理完数据之后，它又要作为生产者把数据放在新的队列里，交给其他。]]></description><category></category></item><item><title><![CDATA[Android 14 应用适配指南]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/135019917</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/135019917</guid><author>yzwfeng</author><pubDate>Fri, 15 Dec 2023 16:16:21 +0800</pubDate><description><![CDATA[在Android 14，app可以在系统分享表中自定义行为。在分享表中，可借助ChooserAction.Builder来构建自定义ChooserAction，指定ChooserActions的列表作为使用Intent.createChooser创建的Intent的Intent.EXTRA_CHOOSER_CCUSTOM_ACTIONS。以下是创建自定义行为的一般过程以发送多张图片为例//创建Intent//各种类型的图像//添加自定义行为的intentmContext,1,]]></description><category></category></item><item><title><![CDATA[Windows文件后缀名批量修改方法教程]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/134806450</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/134806450</guid><author>yzwfeng</author><pubDate>Tue, 05 Dec 2023 14:28:38 +0800</pubDate><description><![CDATA[怎么修改文件后缀名格式 文件后缀名批量修改方法教程]]></description><category></category></item><item><title><![CDATA[android混淆编译-proguard通用混淆配置文件编写]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/134787346</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/134787346</guid><author>yzwfeng</author><pubDate>Mon, 04 Dec 2023 16:22:55 +0800</pubDate><description><![CDATA[【代码】android混淆编译-proguard通用混淆配置文件编写。]]></description><category></category></item><item><title><![CDATA[Android 透明度颜色值对照表]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/134780810</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/134780810</guid><author>yzwfeng</author><pubDate>Mon, 04 Dec 2023 12:01:16 +0800</pubDate><description><![CDATA[比如：50%透明度， 50%也就是256的一半即128，因为是从0开始算的，所以是 127，转换成16进制就是 7F。Android中的颜色值通常遵循RGB/ARGB标准，使用时通常以“#”字符开头，以16进制表示。透明度分为256个等级，即 0~255，00表示完全透明，FF开始表示完全不透明。Android中的颜色值一般格式是：#AARRGGBB。也可以通过设置字体颜色，或者设置背景色来达到预期效果。我们的UI小姐姐就喜欢给。注：00是完全透明，FF就是完全不透明。，这个需要自己判断一下。]]></description><category></category></item><item><title><![CDATA[解决github无法访问的办法]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/134617166</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/134617166</guid><author>yzwfeng</author><pubDate>Sat, 25 Nov 2023 17:16:24 +0800</pubDate><description><![CDATA[（或其它地方自己能找到的地方）]]></description><category></category></item><item><title><![CDATA[Android 打包aar包含第三方aar 解决方案]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/134599067</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/134599067</guid><author>yzwfeng</author><pubDate>Fri, 24 Nov 2023 15:03:37 +0800</pubDate><description><![CDATA[因项目需要，打包aar包含第三方aar，如果直接对module进行打包会产生一些问题。错误信息说的很清楚构建aar不支持本地aar文件依赖fat-aar 能将依赖项合并并嵌入到生成的aar文件中。由于fat-aar不再维护，使用起来有诸多需要修改的地方，而不支持高版本的gradle，极其坑爹，踩坑后找到替代方案，支持高版本的gradle无需修改脚本文件。]]></description><category></category></item><item><title><![CDATA[android中的Package安装、卸载、更新替换流程]]></title><link>https://blog.youkuaiyun.com/yzwfeng/article/details/134143643</link><guid>https://blog.youkuaiyun.com/yzwfeng/article/details/134143643</guid><author>yzwfeng</author><pubDate>Tue, 31 Oct 2023 16:37:08 +0800</pubDate><description><![CDATA[android系统在安装，删除，替换，清除数据等与应用相关的动作时，会发出对应的Broadcast，上层的应用通过注册相应的广播事件来做相应的处理。1，ACTION_PACKAGE_ADDED----------当有新的包安装成功的时候，系统会发出此广播。2，ACTION_PACKAGE_REMOVED-----当有包被卸载的时候，系统会发出此广播。3，ACTION_PACKAGE_REPLACED----当有包被更新的时候，系统会发出此广播。上面两种广播的用法，很多朋友也已经很熟悉，通过。]]></description><category></category></item></channel></rss>