<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[littset50的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/littset50</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; littset50]]></copyright><item><title><![CDATA[一种sqlite出现“database is locked”的原因]]></title><link>https://blog.csdn.net/littset50/article/details/121703520</link><guid>https://blog.csdn.net/littset50/article/details/121703520</guid><author>littset50</author><pubDate>Fri, 03 Dec 2021 17:32:25 +0800</pubDate><description><![CDATA[用c#读写sqlite数据库时，发现“database is locked ”错误。

程序中没有多线程，没有并发访问，每次cn.Open()后都有对应的cn.Close()，并且在close之前不会打开另一个链接。

网络上搜索，各种导致这个错误的原因，都不存在，这就让人很奇怪了。

后来乱试一通，终于发现问题。SQLiteDataReader执行查询后，必须把所有的记录都读出来，即使只有一条记录。

出现错误的代码：


        SQLiteCommand command = new SQLit]]></description><category></category></item><item><title><![CDATA[Flutter，源于内卷，为了内卷]]></title><link>https://blog.csdn.net/littset50/article/details/115328213</link><guid>https://blog.csdn.net/littset50/article/details/115328213</guid><author>littset50</author><pubDate>Tue, 30 Mar 2021 15:58:30 +0800</pubDate><description><![CDATA[最近Flutter很火，号称可以跨所有平台，出自google名门，受到了很多人的盲目推崇。在学了一段时间后，个人感觉这是一个内卷化的产物，意义不大。

Flutter的跨平台原理比较简单，就是向操作系统（或浏览器）申请一个显示画布区域（widget），然后在上面画各种东西。程序中显示的一切，都是flutter自己画出来的。例如界面上有一个按钮，有一个文本输入框，这些都不是原生开发中的button、textbox等，而是flutter模拟出了一个button，一个textbox。
这种方式确实可以跨平台，但有]]></description><category></category></item><item><title><![CDATA[破解Android app的过程记录]]></title><link>https://blog.csdn.net/littset50/article/details/79863660</link><guid>https://blog.csdn.net/littset50/article/details/79863660</guid><author>littset50</author><pubDate>Mon, 09 Apr 2018 11:25:00 +0800</pubDate><description><![CDATA[最近有个项目中用到了一批用蓝牙控制的设备，我们想把控制功能集成到自己的app中，但设备供应商不提供资料，只提供他们自己的app。只好想办法进行破解，成功分析出通信协议。现把主要过程记录下来，以便日后查询。一、监听通信     监听蓝牙：购买监听蓝牙数据的设备（即Dongle），安装驱动、Wireshark、Sniffer软件，就可以监听了。发现通信数据毫无规律，应该是经过了加密处理，但仍把报文仔细...]]></description><category></category></item></channel></rss>