<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[GitLqr的博客]]></title><description><![CDATA[小程序《超级便便便》 微信公众号《FSA全栈行动》]]></description><link>https://blog.csdn.net/CSDN_LQR</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; CSDN_LQR]]></copyright><item><title><![CDATA[Android - 2025年安卓真的闭源了吗]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/146592201</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/146592201</guid><author>CSDN_LQR</author><pubDate>Fri, 28 Mar 2025 11:57:49 +0800</pubDate><description><![CDATA[个人认为，谷歌这个变动，不无道理，毕竟同时跟进两条分支，代码差异导致的维护 时间、精力 成本很高，换位思考下，这庞大复杂的代码差异，要维护起来，着实让人头大，为了简化开发，这个决策是可以理解的。另外，Android 源码还是会继续开源（任何人可以下载编译和定制），就是国内的某些自媒体的吃相，断章取义的功夫，真是令人汗颜。]]></description><category></category></item><item><title><![CDATA[Android - 云游戏本地悬浮输入框实现]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/140281198</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/140281198</guid><author>CSDN_LQR</author><pubDate>Mon, 08 Jul 2024 23:14:10 +0800</pubDate><description><![CDATA[在输入法显示的状态下，旋转屏幕，这时需要保证输入法继续显示，同样的，如果是在输入法隐藏状态下，那么旋转屏幕时，得保证输入法继续隐藏。尽管该方案不需要精确获取输入法高度，但是，有必要监听输入法显隐，以达到输入框同步输入法显隐的目的。系统默认的 Dialog 是有样式的，需要对其进行定制，修改为透明的 Dialog，另外还要修改窗口的。但是，从功能性角度来说，，并且与输入法同步显隐，所以，本篇的核心内容，就是如何来实现这么一个。代码中的注释很详细，相信不难理解，不过，有一点得注意的，]]></description><category></category></item><item><title><![CDATA[Android - 利用 jitpack 免费发布闭源 aar]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/140083652</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/140083652</guid><author>CSDN_LQR</author><pubDate>Sun, 30 Jun 2024 17:33:33 +0800</pubDate><description><![CDATA[的代码和资源，其依赖的第三方库不会被合并进去，想要被其他工程正常集成使用，就需要将第三方库的依赖信息传递下去，所以，需要借助 maven 发布插件，生成。的，在提交库信息时，就会要求填写开源仓库的 url，如果我们不想开源源代码，仅仅只是希望把混淆后的。配置项，如需混淆，则需要依赖其他 Gradle 插件，有需要的可以看我之前写的另一篇文章。）根据你的库来修改，不能照抄的！构建会很快，1 分钟左右就出来了，但是这次日志图标是红色的，后面是。任务，即可在指定的本地目录下，生成 maven 相关的文件，其中。]]></description><category></category></item><item><title><![CDATA[Android - OkHttp 访问 https 的怪问题]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/138045121</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/138045121</guid><author>CSDN_LQR</author><pubDate>Sun, 21 Apr 2024 20:58:17 +0800</pubDate><description><![CDATA[才是主流，但有可能存在个别网站不支持，所以，我们在使用 OkHttp 发起 https 请求之前，首先要搞清楚，就是服务端（接口）支持的 ssl 协议有哪些。最近使用 OkHttp 访问 https 请求时，在个别 Android 设备上遇到了几个问题，搜罗网上资料，经过一番实践后，问题得到了解决，同时，我也同步升级了我的 https 证书忽略库。的 Android 4.x 设备上，在高版本 Android 系统上并未发现，所以，为了降低风险，将上述代码做了系统版本控制，运行情况是否稳定还在观察中。]]></description><category></category></item><item><title><![CDATA[Android - 编译 openssl 踩坑之路]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/134231157</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/134231157</guid><author>CSDN_LQR</author><pubDate>Sun, 05 Nov 2023 16:04:47 +0800</pubDate><description><![CDATA[以上的预编译库可能最低只支持 API 21（即 Android 5），如果你的项目需要支持 API 19（Android 4.4.x）及以下的话，就得自己编译 openssl 了，本篇主要记录本人编译。因为 openssl 官方目前没有提供 cmake 编译脚本，还是采用传统的 make 命令编译，所以我们需要编写一个 shell 脚本，命名为。因为本人使用的是 Windows 系统，不像 Mac 或 Linux 那样，天然自带各种 shell 命令，所以在执行。环境，因为有安装过 Git，所以可以在。]]></description><category></category></item><item><title><![CDATA[AI - stable-diffusion 艺术化二维码]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/131271183</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/131271183</guid><author>CSDN_LQR</author><pubDate>Sun, 18 Jun 2023 14:26:32 +0800</pubDate><description><![CDATA[近日，AI 绘画（stable-diffusion）用来艺术化二维码算是比较火热的事了，这个 idea 是由国人用 Checkpoint + LoRA + QR Code ControlNet 组合实现出来的，下面是几张图片案例：《AI 生成可扫码图像 — 新 ControlNet 模型展示》不过，文章内并没有讲述艺术化二维码的具体过程，也没有现成的可供使用（可能出于某些原因没有公布吧，瞎猜的~），从网上收集了一些资料，使用现有的 ControlNet 模型也能够实现同样的效果，下面来看看具体实现步骤。]]></description><category></category></item><item><title><![CDATA[uniapp - tensorflowjs 之小程序环境集成]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/130046132</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/130046132</guid><author>CSDN_LQR</author><pubDate>Sun, 09 Apr 2023 19:25:18 +0800</pubDate><description><![CDATA[（简称tfjs）是一个用于使用 JavaScript 进行机器学习开发的库。以下是tfjshl=zh-cn本系列主要记录如何在微信小程序环境下集成使用tfjs。]]></description><category></category></item><item><title><![CDATA[AI - AI绘画的精准控图(ControlNet)]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/129504309</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/129504309</guid><author>CSDN_LQR</author><pubDate>Mon, 13 Mar 2023 20:06:57 +0800</pubDate><description><![CDATA[想让 AI 绘制出自己满意的图片并不容易，甚至多次调整提示词（Prompt）也生成不出来我们想要的画面。这时你需要一个大杀器 ControlNet，可以做到精准控图了]]></description><category></category></item><item><title><![CDATA[AI - stable-diffusion(AI绘画)的搭建与使用]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/129229112</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/129229112</guid><author>CSDN_LQR</author><pubDate>Sun, 26 Feb 2023 17:41:48 +0800</pubDate><description><![CDATA[最近 AI 火的一塌糊涂，除了 ChatGPT 以外，AI 绘画领域也有很大的进步，以下几张图片都是 AI 绘制的，你能看出来么？]]></description><category></category></item><item><title><![CDATA[Android - 自动系统签名]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/128996721</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/128996721</guid><author>CSDN_LQR</author><pubDate>Sun, 12 Feb 2023 16:53:54 +0800</pubDate><description><![CDATA[一、系统签名 以下是两类应用开发场景： 普通应用开发：使用公司自定义 keystore 进行签名，如：微信、支付宝 系统应用开发：使用 AOSP 系统签名或厂商自定义 keystore 进行签名，如：]]></description><category></category></item><item><title><![CDATA[Android - 混淆 java-library 工程]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/128229385</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/128229385</guid><author>CSDN_LQR</author><pubDate>Thu, 08 Dec 2022 00:27:33 +0800</pubDate><description><![CDATA[AndroidStudio 可以创建好几种 Module 工程，如果 Module 使用的是 android 插件（ 或 ），那么通过在  中将  设为  即可开启混淆，但如果 Module 使用的是 java 插件（），那就需要借助额外的工具了，因为  默认没有提供混淆配置域。想要混淆  工程，需要在  文件中手动依赖一个第三方库 ：
2、自定义混淆 Task
依赖混淆库之后，还要自定义混淆任务，配置一些混淆选项，这里说明几个重点配置项：
 这个库还有很多配置项，需要你感兴趣，可以到官网查阅手册了解：注意]]></description><category></category></item><item><title><![CDATA[vue - Vue2兼容低版本浏览器]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/127754222</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/127754222</guid><author>CSDN_LQR</author><pubDate>Tue, 08 Nov 2022 16:59:47 +0800</pubDate><description><![CDATA[因为 Vue3 使用了 ES6 的 Proxy 作为其观察者机制，并且无法通过 polyfill 进行转换，所以工程要兼容低版本浏览器的话，还得继续使用 Vue2，经过一些研究，整理了以下 2 个版本的 Vue2 工程在兼容低版本浏览器时的详情步骤：]]></description><category></category></item><item><title><![CDATA[vite - 多渠道差异化打包插件]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/127717061</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/127717061</guid><author>CSDN_LQR</author><pubDate>Sun, 06 Nov 2022 16:14:45 +0800</pubDate><description><![CDATA[是一个管理多渠道差异化源码的vite插件，与其他vite插件不同，的原理是从多渠道源码目录中过滤出当前渠道的所有源码文件，然后对src目录进行更新，即从多渠道源码(MCS)到当前渠道源码(FCS)的过程，而不再是基于src目录做文章，所以与其他vite插件可以很好的兼容。MCS：多渠道源码（multi-channel src）FCS：最终渠道源码（final channel src）]]></description><category></category></item><item><title><![CDATA[uniapp - 接入科大讯飞语音评测]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/126714345</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/126714345</guid><author>CSDN_LQR</author><pubDate>Mon, 05 Sep 2022 22:01:31 +0800</pubDate><description><![CDATA[科大讯飞语音评测可以对字、词、句、篇章等题型进行多维度评分（准确度、流畅度、完整度、声韵调型等），支持中文和英文。最新的流式版使用 webSocket 调用接口，开发者可以边录音边上边音频数据（录音与评测同时进行），可以缩短用户等待评测结果的时间，大大提高用户体验。语音评测官方介绍：https://www.xfyun.cn/services/ise语音评测（流式版）API 文档：https://www.xfyun.cn/doc/Ise/IseAPI.html。]]></description><category></category></item><item><title><![CDATA[Android - setVisibility() 失效，竟然是因为内存泄露]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/125578759</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/125578759</guid><author>CSDN_LQR</author><pubDate>Sat, 02 Jul 2022 22:46:25 +0800</pubDate><description><![CDATA[目前，我在开发的一个 Android 项目需要各个功能做到线上动态化，其中，App 启动时显示的 Loading 模块，会优先检测加载远程的 Loading 模块，加载失败时，会使用 App 本身默认的 Loading 视图，为此，我编写了一个 LoadingLoader 工具类：
LoadingLoader 工具类使用 Kotlin 的单例模式， 方法接收 2 个回调参数， 方法触发加载远程 Loading 模块，并根据加载结果执行回调，其中  用于防止该工具类被初始化多次。然后，在 App 的主入口 L]]></description><category></category></item><item><title><![CDATA[Kotlin - 改良装饰者模式]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/125015554</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/125015554</guid><author>CSDN_LQR</author><pubDate>Sat, 28 May 2022 10:44:04 +0800</pubDate><description><![CDATA[欢迎关注微信公众号：FSA全栈行动 👋


Kotlin - 改良工厂模式
Kotlin - 改良构建者模式
Kotlin - 改良观察者模式
Kotlin - 改良策略模式
Kotlin - 改良迭代器模式
Kotlin - 改良责任链模式
Kotlin - 改良装饰者模式

一、前言

装饰者模式

作用：在不必改变原类文件和使用继承的情况下，动态地扩展一个对象的功能。
本质：该模式通过创建一个包装对象，来包裹真实的对象。
核心操作：

创建一个装饰类，包含一个被装饰类的实例
装饰类重写所有被装饰类的.]]></description><category></category></item><item><title><![CDATA[Kotlin - 改良责任链模式]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/124917573</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/124917573</guid><author>CSDN_LQR</author><pubDate>Sun, 22 May 2022 22:10:14 +0800</pubDate><description><![CDATA[欢迎关注微信公众号：FSA全栈行动 👋


Kotlin - 改良工厂模式
Kotlin - 改良构建者模式
Kotlin - 改良观察者模式
Kotlin - 改良策略模式
Kotlin - 改良迭代器模式
Kotlin - 改良责任链模式
Kotlin - 改良装饰者模式

一、前言

责任链模式

作用：避免请求的发送者和接收者之间的耦合关系，将这个对象连成一条链，并沿着这条链传递该请求，直到有一个对象处理它为止。
举例：OKHttp 的拦截器、Servlet 中的 FilterChain



二.]]></description><category></category></item><item><title><![CDATA[uniapp - 腾讯云点播小程序插件]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/124791828</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/124791828</guid><author>CSDN_LQR</author><pubDate>Mon, 16 May 2022 01:24:33 +0800</pubDate><description><![CDATA[欢迎关注微信公众号：FSA全栈行动 👋

一、简介
微信小程序播放教育类视频要求具备有相关资质，但这些资质一般公司很难短时间申请下来（甚至有的公司压根就申请不了），而【短视频播放器小程序插件】含有《信息网络传播视听节目许可证》的资质证书备案，可以利用该插件来解决资质问题，相关截图如下：


图片来源：https://cloud.tencent.com/document/product/266/36849

采购流程于技术无关，以下内容着重讲解如何集成该微信小程序插件。

注：【短视频播放器小程序插件】授权.]]></description><category></category></item><item><title><![CDATA[Kotlin - 改良迭代器模式]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/124652785</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/124652785</guid><author>CSDN_LQR</author><pubDate>Sun, 08 May 2022 19:17:58 +0800</pubDate><description><![CDATA[欢迎关注微信公众号：FSA全栈行动 👋


Kotlin - 改良工厂模式
Kotlin - 改良构建者模式
Kotlin - 改良观察者模式
Kotlin - 改良策略模式
Kotlin - 改良迭代器模式
Kotlin - 改良责任链模式
Kotlin - 改良装饰者模式

一、前言

迭代器模式

作用：将遍历和实现分离开来，在遍历的同时不需要暴露对象的内部表示
举例：ArrayList、LinkedList、TreeSet 均可通过 iterator() 方法获取到迭代器对元素进行遍历，不需要关心.]]></description><category></category></item><item><title><![CDATA[Kotlin - 改良策略模式]]></title><link>https://blog.csdn.net/CSDN_LQR/article/details/124576294</link><guid>https://blog.csdn.net/CSDN_LQR/article/details/124576294</guid><author>CSDN_LQR</author><pubDate>Wed, 04 May 2022 19:55:56 +0800</pubDate><description><![CDATA[欢迎关注微信公众号：FSA全栈行动 👋


Kotlin - 改良工厂模式
Kotlin - 改良构建者模式
Kotlin - 改良观察者模式
Kotlin - 改良策略模式
Kotlin - 改良迭代器模式
Kotlin - 改良责任链模式
Kotlin - 改良装饰者模式

一、前言

策略模式

作用：让算法的变化独立于使用算法的客户
核心操作：定义了算法族，分别封装起来，让它们之间可以相互替换



二、使用策略模式

例子：游泳运动员的游泳姿势
重点：算法抽离，封装成策略

作为一个游泳运动员，.]]></description><category></category></item></channel></rss>