<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JerryQuery的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/JerryQuery</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; JerryQuery]]></copyright><item><title><![CDATA[unity 中的存储]]></title><link>https://blog.csdn.net/JerryQuery/article/details/161723628</link><guid>https://blog.csdn.net/JerryQuery/article/details/161723628</guid><author>JerryQuery</author><pubDate>Wed, 24 Jun 2026 16:13:52 +0800</pubDate><description><![CDATA[如 SecurePlayerPrefs 插件，可以直接替代 PlayerPrefs，数据自动加密。特点： 简单易用，数据明文存储，不适合存储敏感信息（如密码原文）适用场景： 轻量级数据，如设置项、登录状态、简单配置。或使用第三方插件如 SQLite4Unity3d。对密码进行 Base64 或 AES 加密后再存储。适用场景： 大量数据、关系型数据、离线缓存。适用场景： 结构化数据、需要离线存储。]]></description><category></category></item><item><title><![CDATA[Android hint简单使用]]></title><link>https://blog.csdn.net/JerryQuery/article/details/155598643</link><guid>https://blog.csdn.net/JerryQuery/article/details/155598643</guid><author>JerryQuery</author><pubDate>Fri, 05 Dec 2025 10:50:22 +0800</pubDate><description><![CDATA[基于Dagger的Android专属DI框架Google官方推荐，简化了Dagger的配置自动生成大量模板代码。]]></description><category></category></item><item><title><![CDATA[HashMap中的哈希冲突]]></title><link>https://blog.csdn.net/JerryQuery/article/details/154877959</link><guid>https://blog.csdn.net/JerryQuery/article/details/154877959</guid><author>JerryQuery</author><pubDate>Sat, 15 Nov 2025 16:45:10 +0800</pubDate><description><![CDATA[措施重要性✅ 正确重写hashCode()（用⭐⭐⭐⭐⭐✅ 同时重写equals()，保持契约⭐⭐⭐⭐⭐✅ 预估容量，设置合理的初始大小⭐⭐⭐⭐✅ 优先使用StringInteger等标准类型作 key⭐⭐⭐⭐✅ 避免用可变对象作 key⭐⭐⭐✅ 理解 Java 8+ 的红黑树优化机制⭐⭐。]]></description><category></category></item><item><title><![CDATA[kotlin flow]]></title><link>https://blog.csdn.net/JerryQuery/article/details/142695374</link><guid>https://blog.csdn.net/JerryQuery/article/details/142695374</guid><author>JerryQuery</author><pubDate>Sun, 09 Feb 2025 15:32:36 +0800</pubDate><description><![CDATA[依赖消费者，有消费才能生产； 是同步非阻塞的。 当有数据被订阅时，发布者才执行发射数据流的代码，当有多个订阅者的时候，每一个订阅者和发布者都是一对一的关系；flow构建器中的代码直到流被收集的时候才运行；先执行collect后在执行flow构建器中的代码； 无论有没有订阅者订阅，事件始终都会发生。当热流有多个订阅者时，发布者跟订阅者是一对多的关系，热流可以与多个订阅者共享信息;与livedata区别：只有在值发生改变时才会返回，如果发生更新但值没有变化时，不会回调函数，但会进行回调。suspendCance]]></description><category></category></item><item><title><![CDATA[Android Enable 和clickable]]></title><link>https://blog.csdn.net/JerryQuery/article/details/127315067</link><guid>https://blog.csdn.net/JerryQuery/article/details/127315067</guid><author>JerryQuery</author><pubDate>Fri, 14 Oct 2022 10:13:24 +0800</pubDate><description><![CDATA[Android Enable 和clickable]]></description><category></category></item><item><title><![CDATA[解决夜神模拟器连接不上问题]]></title><link>https://blog.csdn.net/JerryQuery/article/details/118630694</link><guid>https://blog.csdn.net/JerryQuery/article/details/118630694</guid><author>JerryQuery</author><pubDate>Sat, 10 Jul 2021 09:47:41 +0800</pubDate><description><![CDATA[一般端口占用的问题比较多，常见的如酷狗音乐、杀毒软件，不建议同时使用；也可以采取如下方法解决。

一、5037端口号占用

1.输入下面的命令查询哪个占用了5037端口

netstat -ano | findstr "5037"
出现下面信息
 TCP  127.0.0.1:2568     127.0.0.1:5037     SYN_SENT    1016
 TCP  127.0.0.1:2569     127.0.0.1:5037     S...]]></description><category></category></item><item><title><![CDATA[RecyclerView滑动对glide加载优化]]></title><link>https://blog.csdn.net/JerryQuery/article/details/115550644</link><guid>https://blog.csdn.net/JerryQuery/article/details/115550644</guid><author>JerryQuery</author><pubDate>Fri, 09 Apr 2021 14:53:18 +0800</pubDate><description><![CDATA[假如你滑动特别快，glide加载优化就显得非常重要呢，具体优化方法如下所示


recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recycle]]></description><category></category></item><item><title><![CDATA[Android跨进程通信]]></title><link>https://blog.csdn.net/JerryQuery/article/details/115124746</link><guid>https://blog.csdn.net/JerryQuery/article/details/115124746</guid><author>JerryQuery</author><pubDate>Tue, 23 Mar 2021 15:10:53 +0800</pubDate><description><![CDATA[单进程通信：组件间是可以随意进行通信，因为它们都处于同一个内存空间。

跨进程通信：通过Binder的中转，进程之间就能顺利的进行数据交换了。



参考：

https://segmentfault.com/a/1190000013344056?utm_source=sf-related

https://segmentfault.com/a/1190000012548919?utm_source=sf-related


...]]></description><category></category></item><item><title><![CDATA[Java时间和时间戳相互转换]]></title><link>https://blog.csdn.net/JerryQuery/article/details/114776757</link><guid>https://blog.csdn.net/JerryQuery/article/details/114776757</guid><author>JerryQuery</author><pubDate>Sun, 14 Mar 2021 09:18:30 +0800</pubDate><description><![CDATA[1.日期转时间戳:


    public static String convertToTime(String autoNum) {
        String res = "";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
        try {
            Date date = simpleDateFormat.parse(autoNum);
           ]]></description><category></category></item><item><title><![CDATA[修改Button、TextView选中变化状态]]></title><link>https://blog.csdn.net/JerryQuery/article/details/114694293</link><guid>https://blog.csdn.net/JerryQuery/article/details/114694293</guid><author>JerryQuery</author><pubDate>Fri, 12 Mar 2021 14:25:18 +0800</pubDate><description><![CDATA[一、修改Button按钮选中状态

1.在res\values\colors.xml文件中添加如下内容：


&lt;resources&gt; 
   &lt;drawable name="white"&gt;#ffffff&lt;/drawable&gt;
   &lt;drawable name="black"&gt;#000000&lt;/drawable&gt;
&lt;/resources&gt;

注意：节点一定是drawable,不是color

2.在res\drawable\下新建一个.]]></description><category></category></item><item><title><![CDATA[ViewPager底部添加小圆点]]></title><link>https://blog.csdn.net/JerryQuery/article/details/114654043</link><guid>https://blog.csdn.net/JerryQuery/article/details/114654043</guid><author>JerryQuery</author><pubDate>Thu, 11 Mar 2021 10:37:24 +0800</pubDate><description><![CDATA[转自：https://blog.csdn.net/qq_26239671/article/details/70038228

在APP的ViewPager引导页面中, 我们通常可以看到底部有小圆点显示当前是第几页, 我们来试一下这个效果是怎么实现的, 效果图如下:

目录

基础配置

创建适配器控件

创建适配器

添加数据

创建适配器对象, 设置适配器

重点教程(小圆点)

在drawable文件夹下创建xml图形

生成小圆点

监听滑动



基础配置

首先要创建出一个滑动页面,可以阅读我以前]]></description><category></category></item><item><title><![CDATA[ProgressDialog用法详解]]></title><link>https://blog.csdn.net/JerryQuery/article/details/114029170</link><guid>https://blog.csdn.net/JerryQuery/article/details/114029170</guid><author>JerryQuery</author><pubDate>Wed, 24 Feb 2021 17:15:55 +0800</pubDate><description><![CDATA[转载自：https://www.cnblogs.com/rwind/p/5483652.html

ProgressDialog的基本用法

 ProgressDialog为进度对话框。android手机自带的对话框显得比较单一，我们可以通过ProgressDialog来自己定义对话框中将要显示出什么东西。

 首先看看progressDialog里面的方法

setProgressStyle：设置进度条风格，风格为圆形，旋转的。
setTitlt：设置标题
setMessage：设置...]]></description><category></category></item><item><title><![CDATA[CSS变形]]></title><link>https://blog.csdn.net/JerryQuery/article/details/111932741</link><guid>https://blog.csdn.net/JerryQuery/article/details/111932741</guid><author>JerryQuery</author><pubDate>Wed, 30 Dec 2020 16:56:30 +0800</pubDate><description><![CDATA[变形介绍：

CSS提供的形变功能不仅可以平移元素，还能做很多其他的事情，比如旋转、缩放、翻转等，让页面的动画与交互看起来更加自然。

坐标系：



x轴的正值在右侧，负值在左侧。y轴的正值沿纵轴向下，负值沿纵轴向上。z轴上的正值离你较近，负值离你较远

易混淆的三个属性：

transform变形（用于元素进行旋转、缩放、移动）
	
	translate移动
	
	
	transition过渡（设置元素的样式过度）
	
transform 变形



语法：transform: non...]]></description><category></category></item><item><title><![CDATA[Android Button按钮周围添加图片]]></title><link>https://blog.csdn.net/JerryQuery/article/details/111563373</link><guid>https://blog.csdn.net/JerryQuery/article/details/111563373</guid><author>JerryQuery</author><pubDate>Tue, 22 Dec 2020 18:02:43 +0800</pubDate><description><![CDATA[转载自：https://www.cnblogs.com/alimjan/p/7102001.html



xml:


&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_p]]></description><category></category></item><item><title><![CDATA[Android增量更新（简单易懂）]]></title><link>https://blog.csdn.net/JerryQuery/article/details/111034997</link><guid>https://blog.csdn.net/JerryQuery/article/details/111034997</guid><author>JerryQuery</author><pubDate>Fri, 11 Dec 2020 15:54:08 +0800</pubDate><description><![CDATA[一、介绍

增量更新顾名思义就是在旧的apk基础上进行更新，那么我们需要如何操作呢，这里先介绍下bsdiff.exe工具，用其对新旧版本安装包做拆分，生成patch文件。在更新时只需下载这个文件即可，前提条件“旧版本apk必须存在”，如果获取不到源apk，那么就无法进行增量更新了。

bsdiff官网：http://www.daemonology.net/bsdiff/

BSDiff基本操作

1、对old文件中所有的子字符串形成一个字典

2、对比old文件和new文件，产生diffstring和ext]]></description><category></category></item><item><title><![CDATA[Android8.0、9.0安装包解析失败]]></title><link>https://blog.csdn.net/JerryQuery/article/details/110630749</link><guid>https://blog.csdn.net/JerryQuery/article/details/110630749</guid><author>JerryQuery</author><pubDate>Fri, 04 Dec 2020 13:24:15 +0800</pubDate><description><![CDATA[根据google官网得知，在8.0以上权限控制的更加严格，应用内安装下载更新的apk都需要申请“安装外面应用”权限才能去安装新应用，如果没有申请否则无法安装。

顺便附上6.0、7.0设备解决方案：

一、设备6.0


&lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;
&lt;uses-permission android:name="android.permission.READ_EXTE]]></description><category></category></item><item><title><![CDATA[css层叠]]></title><link>https://blog.csdn.net/JerryQuery/article/details/110228898</link><guid>https://blog.csdn.net/JerryQuery/article/details/110228898</guid><author>JerryQuery</author><pubDate>Fri, 27 Nov 2020 15:01:18 +0800</pubDate><description><![CDATA[css层叠概念

层叠是CSS的一个基本特征，就是浏览器对多个样式来源进行叠加，最终确定结果的过程.

例子1：



三种选择器同时给P标签增加颜色的属性，但是，文字最终显示的是蓝色，这个时候，就出现了层叠性的情况。

选择器排序优先级


ID选择器 &gt; 类选择器 &gt; 标签选择器


例子2：计算权重



统计各个选择器的数量，优先级高的胜出。文字的颜色为红色。

例子3：权重相同时



就近原则：第一个样式和第二个样式的权重相同。但第二个样式的书写顺序靠后。

例子4：让一个列表实现如]]></description><category></category></item><item><title><![CDATA[盒子模型]]></title><link>https://blog.csdn.net/JerryQuery/article/details/109305658</link><guid>https://blog.csdn.net/JerryQuery/article/details/109305658</guid><author>JerryQuery</author><pubDate>Tue, 27 Oct 2020 13:40:06 +0800</pubDate><description><![CDATA[盒子模型有两种，分别是ie 盒子模型和标准 w3c 盒子模型。

两种标准对height和width的计算方式不同，可以通过CSS属性box-sizing来对这两种标准进行切换，当值为content-box时为标准盒子模型，值为border-box时为IE盒子模型。



假设：一个盒子的 margin:20px，border :1px，padding :10px，content: 200px、height: 50px。

W3C盒模型：


这个盒子需要占据的位置为

宽=margi...]]></description><category></category></item><item><title><![CDATA[js中事件传递两种方式：冒泡与捕获。]]></title><link>https://blog.csdn.net/JerryQuery/article/details/108976778</link><guid>https://blog.csdn.net/JerryQuery/article/details/108976778</guid><author>JerryQuery</author><pubDate>Fri, 09 Oct 2020 13:12:49 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/baiyangyuanzi/p/6627401.html

https://www.cnblogs.com/christineqing/p/7607113.html
]]></description><category></category></item><item><title><![CDATA[回流与重绘]]></title><link>https://blog.csdn.net/JerryQuery/article/details/108883824</link><guid>https://blog.csdn.net/JerryQuery/article/details/108883824</guid><author>JerryQuery</author><pubDate>Wed, 30 Sep 2020 14:54:19 +0800</pubDate><description><![CDATA[回流与重绘

一、概念

回流：

    当我们对 DOM 的修改引发了 DOM 几何尺寸的变化（比如修改元素的宽、高或隐藏元素等）时，浏览器需要重新计算元素的几何属性（其他元素的几何属性和位置也会因此受到影响），然后再将计算的结果绘制出来。这个过程就是回流（也叫重排）。

引发回流的操作：


1.修改dom元素。当一个DOM元素的几何属性发生变化时，所有和它相关的节点（比如父子节点、兄弟节点等）的几何属性都需要进行重新计算。

2.页面首次渲染

3.浏览器窗口大小发生改变

4.元素的尺寸...]]></description><category></category></item></channel></rss>