<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[木子屋]]></title>
<link>http://www.mzwu.com/</link>
<description><![CDATA[Dnawo&#39;s BLOG]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[service@mzwu.com(Dnawo)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>木子屋</title>
	<url>http://www.mzwu.com/images/logos.gif</url>
	<link>http://www.mzwu.com/</link>
	<description>木子屋</description>
</image>

			<item>
			<link>http://www.mzwu.com/article.asp?id=5219</link>
			<title><![CDATA[Android Studio Java vs Kotlin 项目文件对比]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Thu,23 Apr 2026 21:05:58 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5219</guid>
		<description><![CDATA[<br/>Java + Groovy DSL：<br/><br/><img width="640" height="436" src="http://www.mzwu.com/pic/202604/043.jpg" border="0" alt=""/><br/><br/><img width="640" height="377" src="http://www.mzwu.com/pic/202604/044.jpg" border="0" alt=""/><br/><br/>Kotlin + Kotlin DSL：<br/><br/><img width="640" height="436" src="http://www.mzwu.com/pic/202604/045.jpg" border="0" alt=""/><br/><br/><img width="640" height="378" src="http://www.mzwu.com/pic/202604/046.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5218</link>
			<title><![CDATA[C#远程服务器屏幕截图RDP断开后句柄无效截图失败解决方法]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Wed,22 Apr 2026 23:37:06 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5218</guid>
		<description><![CDATA[C#写了一个屏幕截图控制台应用程序，本地测试正常，传到远程服务器，RDP断开后提示句柄无效无法截图：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code73072);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code73072>class Program<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;static void Main(string[] args)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;5秒后自动截图...\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(5000);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string savePath = AppDomain.CurrentDomain.BaseDirectory;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string fileName = $&#34;ScreenShot_{DateTime.Now:yyyyMMdd_HHmmss}.png&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string fullPath = Path.Combine(savePath, fileName);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rectangle screenSize = Screen.PrimaryScreen.Bounds;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using (Bitmap bitmap = new Bitmap(screenSize.Width, screenSize.Height))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using (Graphics graphics = Graphics.FromImage(bitmap))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;graphics.CopyFromScreen(screenSize.X, screenSize.Y, 0, 0, screenSize.Size);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap.Save(fullPath, System.Drawing.Imaging.ImageFormat.Png);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine($&#34;✅ 截图成功！&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (Exception ex)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine($&#34;❌ 截图失败：{ex.Message}&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadKey();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}</div></div><br/>这是因为RDP 远程桌面关闭/最小化/断开连接后，Windows 会自动销毁远程桌面的交互式图形句柄，原生的 Graphics.CopyFromScreen() 必须依赖可见的交互式桌面句柄，没有句柄就直接报错句柄无效，改用 Windows 底层 GDI API 直接捕获显示器硬件画面可解决：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code64786);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code64786>class Program<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// ====================== Windows底层API核心（解决RDP句柄问题）======================<br/>&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&#34;gdi32.dll&#34;)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;private static extern bool BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);<br/>&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&#34;user32.dll&#34;)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;private static extern IntPtr GetDesktopWindow();<br/>&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&#34;user32.dll&#34;)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;private static extern IntPtr GetWindowDC(IntPtr hWnd);<br/>&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&#34;user32.dll&#34;)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;private static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;static void Main(string[] args)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;5秒后自动截图...\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(5000);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string saveDir = AppDomain.CurrentDomain.BaseDirectory;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string fileName = $&#34;ScreenShot_{DateTime.Now:yyyyMMdd_HHmmss}.png&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string savePath = Path.Combine(saveDir, fileName);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CaptureScreen(savePath);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;✅ 截图成功！&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (Exception ex)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine($&#34;❌ 失败：{ex.Message}&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadKey();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 底层GDI截图（解决RDP句柄无效问题）<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private static void CaptureScreen(string savePath)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 获取整个桌面窗口句柄<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntPtr desktopWnd = GetDesktopWindow();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntPtr dc = GetWindowDC(desktopWnd);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 获取屏幕分辨率<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int width = Screen.PrimaryScreen.Bounds.Width;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int height = Screen.PrimaryScreen.Bounds.Height;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using (Bitmap bmp = new Bitmap(width, height))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using (Graphics g = Graphics.FromImage(bmp))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntPtr hdc = g.GetHdc();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 直接硬件级拷贝屏幕（不依赖交互式句柄）<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitBlt(hdc, 0, 0, width, height, dc, 0, 0, 0x00CC0020);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.ReleaseHdc(hdc);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmp.Save(savePath, ImageFormat.Png);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReleaseDC(desktopWnd, dc);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}</div></div><br/>这回不出错了，但又出现新的问题，RDP断开截到的图是空白的，这是 Windows 服务器的会话隔离机制导致的，系统默认会在你关闭远程桌面后，彻底停止渲染图形界面，所有普通截图方法都会截到纯黑 / 空白画面，使用tscon命令强制把远程会话切换到服务器物理控制台，保留图形界面渲染即可：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code42760);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code42760>@echo off<br/>:: 将当前RDP会话无缝切换到服务器本地控制台<br/>:: 保持会话后台锁定但活动，图形渲染不中断<br/>for /f &#34;skip=1 tokens=3&#34; %%s in (&#39;query user %USERNAME%&#39;) do (<br/>&nbsp;&nbsp;%windir%\System32\tscon.exe %%s /dest:console<br/>)</div></div><br/><i>Tips：运行命令后会断开RDP连接，无需手动关闭RDP。</i>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5217</link>
			<title><![CDATA[.NET Framework 版本和 C# 版本对应关系表]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Wed,22 Apr 2026 01:02:10 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5217</guid>
		<description><![CDATA[<img width="640" height="513" src="http://www.mzwu.com/pic/202604/039.png" border="0" alt=""/><br/><br/><img width="640" height="376" src="http://www.mzwu.com/pic/202604/040.png" border="0" alt=""/><br/><br/>👉 .NET 5 起统一命名，取代 .NET Framework + .NET Core，全平台支持。<br/><br/><img width="640" height="485" src="http://www.mzwu.com/pic/202604/041.png" border="0" alt=""/><br/><br/><img width="640" height="226" src="http://www.mzwu.com/pic/202604/042.png" border="0" alt=""/><br/><br/>👉 原 .NET Core，.NET 5 起统一命名，默认不随 Windows 系统安装，需手动下载安装。]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5216</link>
			<title><![CDATA[Android版本和API级别对应关系表]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Wed,22 Apr 2026 00:58:30 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5216</guid>
		<description><![CDATA[<img width="640" height="1251" src="http://www.mzwu.com/pic/202604/038.png" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5215</link>
			<title><![CDATA[Android Studio生成签名文件生成正式发布版 release 包图解]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Mon,20 Apr 2026 11:22:15 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5215</guid>
		<description><![CDATA[以android-studio-2023.1.1.27-windows为例，打开菜单Build&gt;Generate Signed Bundle/APK...，即可开始生成签名文件并生成正式发布版 release 包：<br/><br/><img src="http://www.mzwu.com/pic/202604/028.jpg" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/202604/029.jpg" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/202604/030.jpg" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/202604/031.jpg" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/202604/032.jpg" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/202604/033.jpg" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/202604/034.jpg" border="0" alt=""/><br/><br/><i>Tips：正式发布版的APK文件名名带有release，统一为：app-release.apk。</i>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5214</link>
			<title><![CDATA[一张图说清Android Studio项目树结构]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Mon,20 Apr 2026 11:11:22 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5214</guid>
		<description><![CDATA[<img width="640" height="682" src="http://www.mzwu.com/pic/202604/037.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5212</link>
			<title><![CDATA[Firefox 隐藏技巧：3 秒完成网页滚动长截图]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Tue,14 Apr 2026 21:57:24 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5212</guid>
		<description><![CDATA[Firefox 给网页滚动长截图无需安装任何扩展，按Ctrl+Shift+S，选择截图区域即可：<br/><br/><img width="640" height="289" src="http://www.mzwu.com/pic/202604/025.jpg" border="0" alt=""/><br/><br/><img width="640" height="292" src="http://www.mzwu.com/pic/202604/026.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5211</link>
			<title><![CDATA[扣子编程平台（Expo + React Native）开发安卓应用功能清单]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Mon,13 Apr 2026 22:21:43 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5211</guid>
		<description><![CDATA[<img src="http://www.mzwu.com/pic/202604/024.jpg" border="0" alt=""/><br/><br/>扣子编程使用Expo + React Native开发移动应用，开发的应用会有一些功能限制，具体如下：<br/><br/><strong>一、可以实现的功能</strong><br/><br/>🎯 核心应用功能<br/>✅ UI 界面开发：所有常见 UI 组件（列表、表单、图表、动画等）<br/>✅ 多页面导航：Tab 导航、Stack 导航、Modal 弹窗<br/>✅ 数据持久化：本地存储（AsyncStorage）、数据库（Supabase）<br/>✅ 网络请求：HTTP/HTTPS API 调用、WebSocket、SSE<br/>✅ 文件上传 / 下载：图片、视频、音频文件上传下载<br/>✅ 扫码功能：二维码 / 条形码扫描<br/>📱 硬件访问（部分支持）<br/>✅ 相机：拍照、录制视频<br/>✅ 相册：选择图片 / 视频<br/>✅ 地理位置：获取当前位置、地理编码<br/>✅ 震动反馈：触觉反馈<br/>✅ 传感器：加速度计、陀螺仪、磁力计<br/>✅ 音频：录音、播放音频<br/>✅ 蓝牙：蓝牙设备连接（有限支持）<br/>✅ NFC：近场通信（需要插件）<br/>✅ 生物识别：指纹 / 面部识别（Android 设备）<br/>🎨 多媒体功能<br/>✅ 图片处理：图片裁剪、滤镜、压缩<br/>✅ 视频播放：视频播放器<br/>✅ 音频播放：音乐 / 音效播放<br/>✅ 动画：复杂动画效果、手势动画<br/>✅ SVG 绘图：矢量图形、图表<br/>🔧 系统集成<br/>✅ 分享功能：分享到其他应用<br/>✅ 打开链接：在浏览器中打开 URL<br/>✅ 深色模式：跟随系统主题切换<br/>✅ 屏幕方向：横屏 / 竖屏锁定<br/>✅ 状态栏：自定义状态栏样式<br/>✅ 键盘处理：键盘避让、监听键盘事件<br/>🤖 AI 能力<br/>✅ 大语言模型：集成豆包、DeepSeek、Kimi 等<br/>✅ 图像生成：AI 生成图片<br/>✅ 语音识别：语音转文字（ASR）<br/>✅ 语音合成：文字转语音（TTS）<br/>✅ 图像识别：OCR、物体识别<br/>✅ 视频处理：视频生成、剪辑<br/>💾 数据存储<br/>✅ 本地存储：AsyncStorage（键值对存储）<br/>✅ 数据库：Supabase（PostgreSQL）<br/>✅ 对象存储：S3 兼容存储（图片、视频）<br/>✅ 知识库：向量数据库（语义搜索）<br/>✅ 文件系统：读写本地文件<br/>🔐 安全与权限<br/>✅ 权限管理：相机、位置、存储等权限申请<br/>✅ 加密：数据加密（expo-crypto）<br/>✅ 安全存储：敏感数据存储（有限支持）<br/>✅ 认证：OAuth、Token 管理<br/>🌐 网络功能<br/>✅ HTTP/HTTPS：RESTful API 调用<br/>✅ WebSocket：实时通信<br/>✅ SSE：服务器推送事件<br/>✅ GraphQL：GraphQL 查询<br/>✅ WebRTC：音视频通话（有限支持）<br/><br/><strong>二、不能实现的功能（或需要特殊处理）</strong><br/><br/>🚫 底层系统功能<br/>❌ 原生插件开发：无法直接开发原生模块（Java/Kotlin）<br/>❌ 系统设置修改：修改系统设置（WiFi、蓝牙设置等）<br/>❌ 后台服务：长期运行的后台服务（超过 30 分钟）<br/>❌ 系统级通知：自定义系统通知栏（部分支持）<br/>❌ 桌面小组件：Home Screen Widget<br/>❌ 系统级快捷方式：Dynamic Shortcuts（有限支持）<br/>🚫 硬件访问（受限）<br/>❌ 通话功能：拨打电话、通话录音<br/>❌ 短信功能：发送 / 接收短信<br/>❌ 联系人：访问系统通讯录（需要 Prebuild）<br/>❌ 日历：访问 / 修改系统日历（需要 Prebuild）<br/>❌ 闹钟：设置系统闹钟<br/>❌ 根文件系统：访问根目录（/system/ 等）<br/>🚫 高级硬件功能<br/>❌ NFC 高级功能：复杂 NFC 读写（需要原生代码）<br/>❌ USB 外设：USB 设备通信<br/>❌ 串口通信：Serial Port 通信<br/>❌ 红外功能：红外遥控<br/>❌ 相机底层：直接访问相机硬件参数<br/>🚫 系统级功能<br/>❌ 应用内购买：Google Play 计费（需要额外配置）<br/>❌ 推送通知：Firebase 推送（需要 Prebuild + 额外配置）<br/>❌ 地图 SDK：Google Maps、高德地图（需要 API Key + Prebuild）<br/>❌ 社交登录：Google、Facebook 登录（需要额外配置）<br/>❌ 第三方登录：微信、支付宝登录（需要原生 SDK）<br/>🚫 性能优化功能<br/>❌ 性能调优：CPU/GPU 调优、内存优化<br/>❌ Native 代码：直接编写 C/C++ 代码<br/>❌ NDK 开发：使用 Android NDK<br/>❌ 多进程：多进程架构<br/>🚫 安全功能<br/>❌ Root 检测：检测设备是否 Root（有限支持）<br/>❌ 加密容器：类似 iOS Keychain 的安全存储<br/>❌ 证书锁定：SSL Pinning（需要原生代码）<br/>❌ 反调试：防止调试器攻击<br/>🚫 特殊场景<br/>❌ AR/VR：高级 AR/VR 应用（需要原生 SDK）<br/>❌ 游戏引擎：Unity、Unreal 集成<br/>❌ 硬件加速：GPU Shader 开发<br/>❌ 系统级动画：复杂的系统级动画<br/><br/>✅ <strong>一句话，适合用扣子平台开发的应用类型：</strong><br/><br/>🛠️ 工具类应用<br/>✅ 计算器、日历、记事本<br/>✅ 查询工具（天气、汇率、快递）<br/>✅ 小游戏（休闲游戏）<br/>📖 内容展示类应用<br/>✅ 新闻阅读、博客<br/>✅ 产品展示、电商<br/>✅ 教育内容<br/>🤖 AI 驱动应用<br/>✅ AI 助手、聊天机器人<br/>✅ 图像生成、图像识别<br/>✅ 语音交互应用<br/>🏢 企业应用<br/>✅ 内部管理系统<br/>✅ 数据看板、报表<br/>✅ 客户管理、订单系统<br/>💬 社交类应用<br/>✅ 社区论坛<br/>✅ 即时通讯（基础功能）<br/>✅ 内容分享<br/><br/>❌ <strong>一句话，不适合用扣子平台开发的应用类型：</strong><br/><br/>🖥️系统级应用<br/>❌系统工具（文件管理器、任务管理器）<br/>❌系统优化工具<br/>❌安全工具<br/>🔌硬件深度集成应用<br/>❌NFC 支付<br/>❌蓝牙设备管理<br/>❌物联网控制<br/>🎮游戏应用<br/>❌3D 游戏<br/>❌大型游戏<br/>❌需要高性能的游戏<br/>🏢复杂的企业应用<br/>❌需要复杂集成的 CRM/ERP<br/>❌需要硬件加密的金融应用<br/>❌需要第三方 SDK 深度集成的应用<br/><br/><i>Tips：使用Expo + React Native开发移动应用，部署后生成的APK会比较大，基本100M+。</i>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5210</link>
			<title><![CDATA[扣子编程无代码应用开发流程图解指南]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[其他]]></category>
			<pubDate>Mon,13 Apr 2026 10:18:20 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5210</guid>
		<description><![CDATA[扣子编程是一个 AI 驱动的应用开发平台，打造了兼容多种开发范式的开发者生态，可帮助你构建并交付生产级别的全栈 AI 应用。只需要清晰描述你的需求，扣子编程就能帮助你打造可用于生产环境的智能体、工作流、技能、移动应用、网页应用或小程序。​<br/><br/><img width="640" height="288" src="http://www.mzwu.com/pic/202604/019.jpg" border="0" alt=""/><br/><br/><img width="640" height="288" src="http://www.mzwu.com/pic/202604/020.jpg" border="0" alt=""/><br/><br/><img width="640" height="288" src="http://www.mzwu.com/pic/202604/021.jpg" border="0" alt=""/><br/><br/><i>Tips：应用有版本控制，预览测试，源码可下载，部署后可在浏览器浏览。</i><br/><br/><strong>计费规则</strong><br/><br/>扣子编程采用了以积分为核心的计费体系，每日登录送1500积分，跟按token计费类似：<br/><br/><img width="640" height="254" src="http://www.mzwu.com/pic/202604/022.jpg" border="0" alt=""/><br/><br/>个人免费版权益：<br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">编程项目数量（不含低代码）：3个<br/>每个编程项目每分钟可处理的调用请求数：100次<br/>每个编程项目可回滚的历史部署版本数量：1个<br/>每个编程项目每月可查询的线上运行日志条数：0.1万条/月<br/>每个编程项目累计可部署的次数：20次<br/>绑定自定义域名&amp;免费 SSL 证书：❌<br/>修改默认域名前缀：❌</div></div><br/><strong>相关链接</strong><br/><br/>[1].扣子编程：<a href="https://code.coze.cn/" target="_blank" rel="external">https://code.coze.cn/</a><br/>[2].扣子编程文档：<a href="https://docs.coze.cn/guides/welcome" target="_blank" rel="external">https://docs.coze.cn/guides/welcome</a>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=5209</link>
			<title><![CDATA[豆包和千问等大模型客户端删除聊天记录对上下文影响测试]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[Win编程]]></category>
			<pubDate>Fri,10 Apr 2026 01:07:53 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=5209</guid>
		<description><![CDATA[今天忽然萌生一个疑问：在豆包、千问等大模型客户端的对话中，删除部分聊天记录后，这些内容是否仍会被纳入上下文？于是当即动手，对多款 APP 进行了实测。<br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"><i>【测试步骤】：先问1+1等于多少？再问2+2等于多少？然后查看当前对话上下文，接着删除2+2等于多少的聊天记录，再次查看当前对话上下文。</i></div></div><br/><strong>一、豆包APP</strong><br/><br/><img width="640" height="710" src="http://www.mzwu.com/pic/202604/015.jpg" border="0" alt=""/><br/><br/><i>Tips：豆包官方助手和智能体有个开启新话题功能，它不会删除当前对话聊天记录，但上下文会被清空，这和创建新对话不同。</i><br/><br/><strong>二、千问APP</strong><br/><br/><img width="640" height="710" src="http://www.mzwu.com/pic/202604/017.jpg" border="0" alt=""/><br/><br/><strong>结论</strong>：DeepSeek、Kimi、智谱清言和讯飞星火不支持删除聊天记录，豆包和千问删除部分聊天记录时，这些记录在上下文中也会同步删除。]]></description>
		</item>
		
</channel>
</rss>
