Android 手机卸载 App 但保留应用数据 作者: Shine 时间: 2025-04-20 分类: Android 评论 比如微信,我是通过国内应用商店安装的,我现在想要安装 Play store 版本的,按照往常可能就需要卸载再安装。 但是我从一些论坛得知其实可以使用 `adb uninstall -k` 命令来卸载 App 但是保留应用数据和缓存。 比如你要卸载微信但是保留应用数据和缓存你就可以这样操作: ```shell adb uninstall -k com.tencent.mm # 如果执行上述命令提示如下内容: # The -k option uninstalls the application while retaining the data/cache. #At the moment, there is no way to remove the remaining data. # You will have to reinstall the application with the same signature, and fully uninstall it. # If you truly wish to continue, execute 'adb shell cmd package uninstall -k'. # 你就执行这个命令: adb shell cmd package uninstall -k com.tencent.mm ```  --- **下面的内容通过 LLM 生成** # 使用 `adb uninstall -k` 命令卸载 Android 应用并保留数据 `adb uninstall -k` 是 Android Debug Bridge(ADB)提供的一个命令选项,允许你在卸载应用时保留其本地数据和缓存。本文将详细介绍该命令的作用、适用场景、注意事项及常见问题处理方式。 --- ## 📌 命令格式 ```bash adb uninstall -k <包名> ``` - `-k`:表示在卸载 APK 时 **保留应用的用户数据和缓存目录**,如: - `/data/data/<包名>` - `/sdcard/Android/data/<包名>` --- ## ✅ 使用示例 以微信(WeChat)为例,其包名为 `com.tencent.mm`,执行以下命令可卸载微信 APK 但保留用户数据: ```bash adb uninstall -k com.tencent.mm ``` 卸载后,再次安装相同包名和签名的应用时,原有数据将会被保留和恢复。 --- ## 🧠 应用场景 - 在调试或测试应用时,希望**保留登录信息、配置文件或缓存数据**; - 想通过重新安装 App 来修复某些问题,但又不想让用户数据丢失; - 在自动化测试或 CI/CD 脚本中清除 APK,但保留状态。 --- ## ⚠️ 注意事项 ### 1. 无法删除保留的数据 当使用 `-k` 参数时,系统保留了 `/data/data/<包名>` 等目录。如果你之后无法重新安装具有**相同签名**的应用,可能会导致这些数据**变成系统残留垃圾**,也**无法通过 ADB 再次删除**。 ### 2. 签名不一致将无法复用数据 你需要使用**相同签名的 APK**重新安装,才能正常访问旧数据。不同签名的版本(如 debug 签名与 release 签名)无法读取原有数据。 ### 3. 系统提示信息 执行 `adb uninstall -k` 后,可能会看到如下提示: ``` The -k option uninstalls the application while retaining the data/cache. At the moment, there is no way to remove the remaining data. You will have to reinstall the application with the same signature, and fully uninstall it. If you truly wish to continue, execute 'adb shell cmd package uninstall -k'. ``` > 这是在提醒你:一旦卸载后签名不同,保留的数据将无法删除或复用。 --- ## 🛠️ 替代命令(推荐) 官方推荐使用更底层的 `cmd package` 命令来保留数据: ```bash adb shell cmd package uninstall -k <包名> ``` 示例: ```bash adb shell cmd package uninstall -k com.tencent.mm ``` 该命令作用与 `adb uninstall -k` 相同,但更加直接调用了系统的 `PackageManagerService`。 --- ## 🧹 完全清除数据的卸载方式 如果你想彻底卸载应用及其所有数据: ```bash adb uninstall <包名> ``` 示例: ```bash adb uninstall com.tencent.mm ``` 此操作将删除 APK 文件以及所有相关数据。 --- ## 📂 检查残留数据 可通过以下命令检查某个应用是否还有保留数据: ```bash adb shell ls /data/data/<包名> adb shell ls /sdcard/Android/data/<包名> ``` --- ## 📝 总结 | 目标 | 命令 | |---------------------------|-----------------------------------------------------------| | 卸载 APK 并保留数据 | `adb uninstall -k <包名>` 或 `adb shell cmd package uninstall -k <包名>` | | 卸载 APK 并清除所有数据 | `adb uninstall <包名>` | | 检查是否有数据残留 | `adb shell ls /data/data/<包名>` | --- ## 🙋 常见问题解答 ### Q: 使用 `-k` 卸载后,无法再次安装应用,提示签名冲突? A: 请确保你使用的 APK 与原版本签名一致,或者先使用 `adb uninstall <包名>` 清除数据后再安装。 ### Q: 使用 `-k` 卸载后,怎么彻底删除保留的数据? A: 只能重新安装相同签名的 APK 后,使用 `adb uninstall` 来完整卸载清除所有数据。
Linux WARP CLI 一直连接不上原因 作者: Shine 时间: 2025-04-15 分类: 谈天说地 评论 Warp CLI 连接需要使用代理如 Clash 并开启 TUN 模式,就会劫持相应的的流量,从而连接上 WARP 节点 最近可能是修改过相关规则,导致一直无法连接很郁闷,然后经过不断排查,终于发现问题,原来是 `cloudflareclient.com` 走了直连导致一直连接不上服务器 最终添加 Clash 规则解决: ```yaml rules: - 'DOMAIN-SUFFIX,cloudflareclient.com,Proxy' ``` 
Cursor 配置 MCP Server 并自动运行不需要手动点击 “Run” 作者: Shine 时间: 2025-04-03 分类: 编程工具 2 条评论 找到 `mcp.json` 配置文件  找到需要自动运行的 MCP Server,添加这个配置 `"autoRun": true` 参数,如图 