<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[欢迎来到潇潇的CSDN]]></title><description><![CDATA[记录技术路上的风景~]]></description><link>https://blog.csdn.net/qq_25269161</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_25269161]]></copyright><item><title><![CDATA[git bash 命令行反应慢、卡顿(定位出根本原因)]]></title><link>https://blog.csdn.net/qq_25269161/article/details/136746538</link><guid>https://blog.csdn.net/qq_25269161/article/details/136746538</guid><author>qq_25269161</author><pubDate>Fri, 15 Mar 2024 18:24:44 +0800</pubDate><description><![CDATA[Win11上装了git后发现，通过桌面Git Bash快捷键或右键菜单“Open Git Bash here”打开命令行窗口之后，执行各种命令、已及输入个回车键都很卡顿，反应比较慢。对比了同事的Git工具不卡顿，而自己之前电脑上也不卡顿。对比了git的版本后，发现自己电脑上git版本很高 2.43，而同事是2.32，老电脑上是2.38。网上有方法说是通过对git/bin/bash.exe创建快捷键的方式启动会好，当然也试了，是有效果，但是右键菜单和桌面原生快捷键启动还是慢。借用博主图，懒得安装了。]]></description><category></category></item><item><title><![CDATA[Windows下Qt使用MSVC编译出现需要转为unicode的提示]]></title><link>https://blog.csdn.net/qq_25269161/article/details/135290672</link><guid>https://blog.csdn.net/qq_25269161/article/details/135290672</guid><author>qq_25269161</author><pubDate>Fri, 29 Dec 2023 14:48:51 +0800</pubDate><description><![CDATA[对于MSVC2015以后的版本，如果源文件是UTF-8 without BOM，不是UFT-8 with BOM，还想让MSVC把源码当做UTF-8处理，可以专门告诉编译器源码文件是UTF-8格式，编译时增加命令“/source-charset:utf-8”。默认情况下，MSVC在编译时，无论cpp文件源码字符集是UTF-8 without BOM、UTF-8 with BOM、GBK 中的哪一种，只要没有告诉编译器执行码字符集是UFT-8，则最终在内存中，都会被强制转换GBK处理。]]></description><category></category></item><item><title><![CDATA[Notepad++批量更改文件编码格式及文档格式]]></title><link>https://blog.csdn.net/qq_25269161/article/details/135288966</link><guid>https://blog.csdn.net/qq_25269161/article/details/135288966</guid><author>qq_25269161</author><pubDate>Fri, 29 Dec 2023 14:19:07 +0800</pubDate><description><![CDATA[本文涉及的编码格式即ANSI、UTF-8、UTF-8-BOM、UTF-16BE、UTF-6LE等等在Notepad++的编辑菜单中格式均支持转换，文档格式即WIndows、Unix、Mac之间转换（主要是换行符差别）。]]></description><category></category></item><item><title><![CDATA[Android BLE扫描不到设备]]></title><link>https://blog.csdn.net/qq_25269161/article/details/125206091</link><guid>https://blog.csdn.net/qq_25269161/article/details/125206091</guid><author>qq_25269161</author><pubDate>Thu, 09 Jun 2022 16:38:00 +0800</pubDate><description><![CDATA[Android BLE扫描不到设备]]></description><category></category></item><item><title><![CDATA[真正免费的天气API，无需注册申请key]]></title><link>https://blog.csdn.net/qq_25269161/article/details/125188009</link><guid>https://blog.csdn.net/qq_25269161/article/details/125188009</guid><author>qq_25269161</author><pubDate>Wed, 08 Jun 2022 17:48:55 +0800</pubDate><description><![CDATA[免费天气API]]></description><category></category></item><item><title><![CDATA[Concerto 自述]]></title><link>https://blog.csdn.net/qq_25269161/article/details/124991402</link><guid>https://blog.csdn.net/qq_25269161/article/details/124991402</guid><author>qq_25269161</author><pubDate>Thu, 26 May 2022 21:38:07 +0800</pubDate><description><![CDATA[concerto.mak编译系统介绍和说明]]></description><category></category></item><item><title><![CDATA[Git 常用命令总结]]></title><link>https://blog.csdn.net/qq_25269161/article/details/115639051</link><guid>https://blog.csdn.net/qq_25269161/article/details/115639051</guid><author>qq_25269161</author><pubDate>Wed, 08 Sep 2021 10:22:13 +0800</pubDate><description><![CDATA[一、git使用中的三个概念

工作区：指当前目录下除.git之外的目录结构
	暂存区：英文叫 stage 或 index，.git/index，也称之为索引
	本地仓/版本库：.git，隐藏目录
二、git仓初始化

如何建一个仓库呢？

git init

git add file

git commit -m "commit msg"

//push之前需要先绑定一下远端仓库。

git remote add branch

git push

三、git的提交

通常，我们需要建议远程仓库，可以协作.]]></description><category></category></item><item><title><![CDATA[正则表达式规则整理记录]]></title><link>https://blog.csdn.net/qq_25269161/article/details/119776518</link><guid>https://blog.csdn.net/qq_25269161/article/details/119776518</guid><author>qq_25269161</author><pubDate>Wed, 18 Aug 2021 15:03:00 +0800</pubDate><description><![CDATA[匹配规则单字符匹配规则多字符匹配规则复杂匹配规则非贪婪匹配搜索、分割、替换
单字符匹配规则




正则表达式
规则
可以匹配




A
指定字符
A


\u548c
指定Unicode字符
和


.
任意字符
a,b,_,$,#


\d
数字0~9
0 ~ 9


\D
非数字
除数字外


\w
字母、数字和下划线
a~ z, A~ Z, 0~9, _


\W
非\w
$, &amp;, 中


\s
空格、Tab键
空格，Tab


\S
非\s
字母，数字，下划线，中文，&amp;等


]]></description><category></category></item><item><title><![CDATA[关于文件ava.io.IOException: No such file or directory的其他可能原因]]></title><link>https://blog.csdn.net/qq_25269161/article/details/116005437</link><guid>https://blog.csdn.net/qq_25269161/article/details/116005437</guid><author>qq_25269161</author><pubDate>Thu, 22 Apr 2021 11:21:37 +0800</pubDate><description><![CDATA[项目上遇到如下：

项目背景：

对某个系统应用需要保存一份文件到oem分区路径下，代码测试没问题提交后，部分人员测试出保存文件时必现失败。

04-20 17:10:30.176 7958 8023 W System.err: java.io.IOException: No such file or directory
04-20 17:10:30.176 7958 8023 W System.err:  at java.io.UnixFileSystem.createFileExclusi...]]></description><category></category></item><item><title><![CDATA[Android Binder进程通信示例（Java层AIDL）]]></title><link>https://blog.csdn.net/qq_25269161/article/details/113425812</link><guid>https://blog.csdn.net/qq_25269161/article/details/113425812</guid><author>qq_25269161</author><pubDate>Sat, 30 Jan 2021 13:40:03 +0800</pubDate><description><![CDATA[一、App应用层AIDL使用

1.创建aidl文件：

使用AS开发在src/main/下创建AIDL；如果有需要传递自定义的类型，需要先进行序列化，再使用aidl声明一下；


// IMyAidl.aidl
package com.hxy.aidldemo;

import com.hxy.aidldemo.Book;
interface IMyAidl {
    //简单定义一个获取书籍信息的方法
    Book getBookMsg(String bookName);
}

2.进行编译：

]]></description><category></category></item><item><title><![CDATA[Android使用 Jetpack DataStore 进行数据存储实例]]></title><link>https://blog.csdn.net/qq_25269161/article/details/113250933</link><guid>https://blog.csdn.net/qq_25269161/article/details/113250933</guid><author>qq_25269161</author><pubDate>Wed, 27 Jan 2021 16:48:28 +0800</pubDate><description><![CDATA[参考Android官方文档使用 Jetpack DataStore 进行数据存储以及 官网介绍Android DataStore写了一个demo实例。

1.需要kotlin的开发环境，因为DataStore内部是用协程实现的

2.使用时需添加依赖


dependencies {
  implementation "androidx.datastore:datastore-preferences:1.0.0-alpha05"
}

3.代码中使用，如下例：


package com.xxx.a...]]></description><category></category></item><item><title><![CDATA[Kotlin-协程轻量：协程与线程对比]]></title><link>https://blog.csdn.net/qq_25269161/article/details/112989478</link><guid>https://blog.csdn.net/qq_25269161/article/details/112989478</guid><author>qq_25269161</author><pubDate>Fri, 22 Jan 2021 16:48:54 +0800</pubDate><description><![CDATA[本例使用协程和线程两个方式执行一段任务：

协程：任务是每秒打印出两个*-&gt;，运行100_000个任务；


    @Test
    fun testMet() = runBlocking { // this: CoroutineScope
        val start = System.currentTimeMillis()
        println("start time $start")
        coroutineScope {
            repeat(10]]></description><category></category></item><item><title><![CDATA[Kotlin学习-协程runBlocking和coroutineScope疑问]]></title><link>https://blog.csdn.net/qq_25269161/article/details/112982556</link><guid>https://blog.csdn.net/qq_25269161/article/details/112982556</guid><author>qq_25269161</author><pubDate>Fri, 22 Jan 2021 14:25:17 +0800</pubDate><description><![CDATA[在Kotlin官网上有一个例子描述runBlocking和coroutineScope区别：

作用域构建器-runBlocking和coroutineScope

描述为：它们都会等待其协程体以及所有子协程结束。 主要区别在于，runBlocking方法会阻塞当前线程来等待， 而coroutineScope只是挂起，会释放底层线程用于其他用途。

如下代码，按照这个逻辑来理解，那输出结果应该为“1-5-2-3-4”，因为coroutineScope协程不会阻塞当前线程，应该执行输出5的操作，但实际...]]></description><category></category></item><item><title><![CDATA[Android Broadcast重载构造方法后触发广播接收有问题]]></title><link>https://blog.csdn.net/qq_25269161/article/details/112462074</link><guid>https://blog.csdn.net/qq_25269161/article/details/112462074</guid><author>qq_25269161</author><pubDate>Mon, 11 Jan 2021 09:59:33 +0800</pubDate><description><![CDATA[1.Broadcast问题：

平时使用广播接收器时，通常只使用了默认的无参构造方法；静态注册或动态注册都基本不重载构造方法；

在一次开发中使用了重载的构造方法传入一个handler对象用于消息传递，但意外发现在接收到广播事件后没有调用重载的有参构造，handler参数为空了。每次接收到广播后都重新调用了一次无参构造。

经过Debug发现是在发送广播的时候设置了component引起的，即常常用的setComponent(new ComponmentName(“packgeName”, "full cl]]></description><category></category></item><item><title><![CDATA[Android Studio使用中遇到的问题]]></title><link>https://blog.csdn.net/qq_25269161/article/details/105491613</link><guid>https://blog.csdn.net/qq_25269161/article/details/105491613</guid><author>qq_25269161</author><pubDate>Mon, 13 Apr 2020 16:34:39 +0800</pubDate><description><![CDATA[一直更新中......

1、引用的本地framework.jar与SDK冲突，设置如下配置后编译时依然会存在说找不到方法或变量的问题，但是确实可以跳转到

在Project的build.gradle中做如下配置，此时可顺利编译出APK。
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.ad...]]></description><category></category></item><item><title><![CDATA[Binder机制在java层和C++层的实现的相同点和不同点？]]></title><link>https://blog.csdn.net/qq_25269161/article/details/102972878</link><guid>https://blog.csdn.net/qq_25269161/article/details/102972878</guid><author>qq_25269161</author><pubDate>Fri, 08 Nov 2019 14:42:25 +0800</pubDate><description><![CDATA[Binder机制在java层和C++层的实现的相同点和不同点？

相同点：①这两层的Binder机制结构是相同的。Java层的Binder机制实际上是对c++层次进行了一个封装，使用JNI方法，使得Java代码可以调用c++层中相应的函数。
②仅从使用方式来看两个层是相同的。都是 首先需要一个Service Manager，随后定义相关的服务，之后把服务注册到Service Manager中；客户...]]></description><category></category></item><item><title><![CDATA[设计模式之单例模式]]></title><link>https://blog.csdn.net/qq_25269161/article/details/102903971</link><guid>https://blog.csdn.net/qq_25269161/article/details/102903971</guid><author>qq_25269161</author><pubDate>Mon, 04 Nov 2019 20:09:34 +0800</pubDate><description><![CDATA[单例模式（Singleton）

定义：

保证一个类只有一个实例，并提供一个访问它的全局访问点。

特点：

只有一个实例，有懒汉式和饿汉式。

示例：

懒汉式

实例对象在首次被引用时，才实例化；


/**
 * 单例模式测试类：懒汉模式
 */
public class SingletonTest1 {
    private static SingletonTest1 test1;

...]]></description><category></category></item><item><title><![CDATA[设计模式之备忘录模式]]></title><link>https://blog.csdn.net/qq_25269161/article/details/102860745</link><guid>https://blog.csdn.net/qq_25269161/article/details/102860745</guid><author>qq_25269161</author><pubDate>Fri, 01 Nov 2019 20:56:31 +0800</pubDate><description><![CDATA[备忘录模式（Memento）

定义：

在不破坏封装性的前提下，捕获一个对象的内部状态，并在该对象之外保持这个状态。这样以后就可以将该对象恢复到原先保存的状态。

特点：

示例：




import android.util.Log;

/**
 * 原始数据：
 *
 */
public class Originator {
    //原始数据的某个状态，需要去备份
    privat...]]></description><category></category></item><item><title><![CDATA[设计模式之适配器模式]]></title><link>https://blog.csdn.net/qq_25269161/article/details/102859361</link><guid>https://blog.csdn.net/qq_25269161/article/details/102859361</guid><author>qq_25269161</author><pubDate>Fri, 01 Nov 2019 16:13:40 +0800</pubDate><description><![CDATA[适配器模式（Adapter）

定义：

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

特点：

示例：




/**
 * 期望的接口
 */
public interface Target {
    void request();
}


/**
 * 被适配者：具有特殊的方法
 * 实际想用的类
 */
pub...]]></description><category></category></item><item><title><![CDATA[设计模式之状态模式]]></title><link>https://blog.csdn.net/qq_25269161/article/details/102854728</link><guid>https://blog.csdn.net/qq_25269161/article/details/102854728</guid><author>qq_25269161</author><pubDate>Fri, 01 Nov 2019 13:57:42 +0800</pubDate><description><![CDATA[状态模式（State）

定义：

当一个对象的内在状态改变时允许改变其行为，这个对象看起来像是改变了其类。

特点：

主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中，可以把复杂的判断逻辑简化。就是为了消除庞大的条件分支语句。

在子状态的行为中，需要设置其下一状态

示例：




/**
 * 抽象状态类：依赖Context
...]]></description><category></category></item></channel></rss>