应用程序缓存目录用户第一次启动 Electron 应用后 , Electron 会在如下目录创建相应的缓存文件 , 该目录的文件结构及功能说明如下:
C:\Users\[yourOsUserName]\AppData\Roaming\[yourAppName]├─ IndexedDB(Electron应用渲染进程IndexedDB数据存放目录)├─ Local Storage(Electron应用渲染进程Local Storage数据存放目录)├─ Session Storage(Electron应用渲染进程Session Storage数据存放目录)├─ Crashpad(Electron应用崩溃日志数据存放目录)├─ Code Cache(Electron应用渲染进程源码文件缓存目录 , wasm的缓存也会存在此处)├─ Partitions(如果你的应用中适应了自定义协议 , 或根据字符串产生了session , 此目录将有相应的内容)├─ GPUCache(Electron应用渲染进程GPU运行过程产生的缓存数据)└─ ......(其他Electron渲染进程缓存文件)
Mac 操作系统下的缓存目录为:
MacintoshHD/用户/[yourOsUserName]/资源库/ApplicationSupport/[yourAppName]
该目录下的内容与子目录结构与 Windows 操作系统类似 , 不再赘述 。
需要注意的是 , 虽然以上目录内的文件都是加密存储的 , 但你只要把这个目录下的文件拷贝到另一台机器上 , 就可以用一个伪造的 Electron 程序读取到这些缓存文件内的数据 。
另外 , 我们前面章节介绍的客户端数据库文件也是存放在这个目录下的 。
Electron 为我们提供了一个便捷的 API 来获取此路径 , 此方法执行时会判断当前应用正运行在什么操作系统上 , 然后根据操作系统的名称返回具体的路径地址 。
app.getPath("userData");
注册表键值如果开发者使用 Electron 提供的开机自启动 API , 为应用程序设置了开机自启动功能 , 那么在 Windows 操作系统下 , 用户注册表如下路径下会增加一个键值对:
计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run键:electron.app.[yourAppName]值:C:\Program Files (x86)\[yourAppName]\[yourAppName].exe
设置开机自启动的代码如下所示:
import { app } from "electron";app.setLoginItemSettings({openAtLogin: true,});
另外 99% 的 Electron 应用是通过安装包分发给最终用户的 , 有安装包势必就有卸载程序 , 操作系统一般会在注册表如下三个路径下记录系统的卸载程序路径:
计算机\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall计算机\HKEY_LOCAL_MACHINE\Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
如果开发者使用 app 对象的 setAsDefaultProtocolClient 方法 , 把自己的应用设置成可以通过外部连接唤起的应用 , 那么这个操作也会在用户的注册表内留下痕迹 , 如下为 GitHubDesktop 在我的注册表中写入的内容:
键:计算机\HKEY_CURRENT_USER\Software\Classes\github-windows\shell\open\command值:"C:\Users\liuxiaolun\AppData\Local\GitHubDesktop\app-2.9.0\GitHubDesktop.exe" --protocol-launcher "%1"
如你所见 , 当用户点击连接唤起我们的应用时 , 这个注册表键值不但给我的应用传递了--protocol-launcher 参数 , 还中转了连接中的参数给我的应用 。
Mac 没有注册表 , 相关的信息都是通过 Info.plist 文件和应用程序共同完成的 。
升级程序缓存目录前文我们介绍了全量升级 Electron 应用的方案 , 当 electron-updater 检测到升级服务器上存在新版本的应用程序时 , 会下载新版本相关的文件 , 并保存在如下目录中:
经验总结扩展阅读
- gta线上怎么加好友(gta怎么举报开挂)
- 表驱动法在STM32中的应用
- ios应用内支付是扣哪里的钱 苹果应用内支付扣的哪里的钱
- 自动化利器 Ansible - 从了解到应用
- 状态估计和KalmanFilter公式的推导与应用
- 京东云开发者|经典同态加密算法Paillier解读 - 原理、实现和应用
- Spring Boot 应用的热部署配置
- 图数据 3D 可视化在 Explorer 中的应用
- 线上kafka消息堆积,consumer掉线,怎么办?
- 大专计算机应用技术好就业 前景如何