<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_52825021的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_52825021</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_52825021]]></copyright><item><title><![CDATA[Android插件化开发实战：从零实现动态加载APK]]></title><link>https://blog.youkuaiyun.com/qq_52825021/article/details/150577399</link><guid>https://blog.youkuaiyun.com/qq_52825021/article/details/150577399</guid><author>qq_52825021</author><pubDate>Fri, 22 Aug 2025 13:56:45 +0800</pubDate><description><![CDATA[最简单的插件化Demo，带你快速了解和学习 Android 插件化]]></description><category></category></item><item><title><![CDATA[okio流的使用]]></title><link>https://blog.youkuaiyun.com/qq_52825021/article/details/121869473</link><guid>https://blog.youkuaiyun.com/qq_52825021/article/details/121869473</guid><author>qq_52825021</author><pubDate>Sun, 12 Dec 2021 11:37:38 +0800</pubDate><description><![CDATA[作用：与java io流的作用一样，能够进行数据的访问、存储以及处理，那为什么要用okio呢，因为相当于java io流来说，okio会使这些操作变得更加简单。

okio是建立在ByteString和Buffers的基础上进行一系列操作的；

ByteString的应用（常用于处理数据）

首先我们来看该如何去创建一个ByteString对象，创建ByteString可以使用以下几个静态方法：

of(byte... data)      需要输入的参数是一些字节；

encodeUtf8(S...]]></description><category></category></item><item><title><![CDATA[Looper的作用及工作原理]]></title><link>https://blog.youkuaiyun.com/qq_52825021/article/details/121731061</link><guid>https://blog.youkuaiyun.com/qq_52825021/article/details/121731061</guid><author>qq_52825021</author><pubDate>Sun, 05 Dec 2021 22:59:22 +0800</pubDate><description><![CDATA[Looper的使用一般离不开Handler及MessageQueue

直入主题：Looper是负责管理MessageQueue，会不断从MessageQueue中取出消息，并将消息分给对应的Handler来处理。每个线程只允许有一个Looper，且主线程中，系统已经初始化好了一个Looper对象。

接下类分别讲讲Handler以及MessageQueue:

Handler：Handler的使用离不开Message，Message是封装了需要传递的数据教交由Handler处理的对象，而Handler的作]]></description><category></category></item><item><title><![CDATA[RecyclerView使用RelativeLayout充当ItemView时加竖线不显示问题]]></title><link>https://blog.youkuaiyun.com/qq_52825021/article/details/121364838</link><guid>https://blog.youkuaiyun.com/qq_52825021/article/details/121364838</guid><author>qq_52825021</author><pubDate>Wed, 17 Nov 2021 00:46:52 +0800</pubDate><description><![CDATA[原因很简单，在设置 RelativeLayout 的子View高度时，若高度不设置成一个固定值，在测量的过程中，则会设置成0。

为什么呢？

我们可以从以下代码进行分析：

首先来看一下RecyclerView的getChildMeasureSpec()方法源码：


public static int getChildMeasureSpec(int parentSize, int padding, int childDimension,
        boolean canScroll) {
    ]]></description><category></category></item><item><title><![CDATA[Android数据存储之SQLiteDatabase及优化]]></title><link>https://blog.youkuaiyun.com/qq_52825021/article/details/121137347</link><guid>https://blog.youkuaiyun.com/qq_52825021/article/details/121137347</guid><author>qq_52825021</author><pubDate>Thu, 04 Nov 2021 10:34:33 +0800</pubDate><description><![CDATA[Android数据存储之SQLiteDatabase - 简书 (jianshu.com)
]]></description><category></category></item><item><title><![CDATA[Android Sqlite的query方法参数详解]]></title><link>https://blog.youkuaiyun.com/qq_52825021/article/details/120896263</link><guid>https://blog.youkuaiyun.com/qq_52825021/article/details/120896263</guid><author>qq_52825021</author><pubDate>Thu, 21 Oct 2021 23:07:56 +0800</pubDate><description><![CDATA[最常用的7参query如下所示：

query(table,columns, selection, selectionArgs, groupBy, having, orderBy, limit)

该方法各参数含义如下：

table：表名。相当于select语句from关键字后面的部分。如果是多表联合查询，可以用逗号将两个表名分开。

columns：要查询出来的列名。格式为：new String[] {”列名“，”列名"}。相当于select语句select关键字后面的部分，当填入null或者new .]]></description><category></category></item><item><title><![CDATA[Android简单的异步下载文件更新进度条]]></title><link>https://blog.youkuaiyun.com/qq_52825021/article/details/120878623</link><guid>https://blog.youkuaiyun.com/qq_52825021/article/details/120878623</guid><author>qq_52825021</author><pubDate>Thu, 21 Oct 2021 03:45:46 +0800</pubDate><description><![CDATA[我的整个操作在fragment中进行，与在活动中进行无异；

一、在xml中添加两个控件：按钮（用于开启下载操作），进度条（用于查看下载进度）；

二、准备好所需常量（用于handler传递消息）以及下载链接；



三、实例化控件对象，以及为按钮设置监听；



点击按钮便开始进行下载操作，download方法用于进行下载操作，传入的形参为下载链接，由于下载方法内有相关网络操作，需放在线程中进行（线程通过Thread匿名内部类简单实现，由于并没有创建线程池，AS给出相应提示（冒黄线），但并不影响...]]></description><category></category></item></channel></rss>