移动端 App

移动端 App

概述

思源笔记提供了 Android 端、iOS 端和鸿蒙端 App,已经上架部分手机应用商店,请在应用商店中搜索 思源笔记 或者 SiYuan

安装和更新

目前已经上架应用商店:

  • 小米
  • 华为
  • 荣耀
  • OPPO
  • vivo
  • 苹果
  • 酷安
  • Google Play

APK 下载: https://b3log.org/siyuan/download.html

使用集市

因为应用商店审核原因,目前无法直接在 App 上提供集市。

如需使用集市,请启用 关于 - 网络伺服,然后在桌面端浏览器上访问配置。

#注意#​

  • 卸载 App 会导致本地数据被完全删除且无法恢复
  • 退出应用请使用右侧面板中的 退出应用 进行正常退出,直接划走会强制结束应用,导致数据同步未被执行
  • iOS 端切换应用后会导致连接中断,请点击提示框中的按钮手动重连
  • 数据同步过程中请勿切换应用并保持亮屏,否则会导致数据同步失败

Android 端自定义通知

为了尽量保活后台运行,思源会定时发送通知,默认的通知内容是一些开发团队喜欢的歌词。

如果需要自定义它,请按如下步骤操作:

  1. 在桌面端 工作空间/data/assets/ 文件夹下创建一个名为 android-notification-texts.txt 的文本文件,其中每一行会作为通知的文本
  2. 通过数据同步[1]将其同步到 Android 端

完成这两个步骤以后通知就会使用自定义的文本。


  1. 数据同步

    概述

    数据同步指的是在多个设备上保持 工作空间/data/ 文件夹数据一致,包括资源文件、自定义图标、插件、代码片段、模板、挂件和文档数据。

    使用方式

    初始化数据仓库密钥[2]后如果一切正常就已经配置好同步了。如果你不太熟悉同步配置,建议通过点击同步按钮打开同步配置向导,通过向导进行配置会更简便一些。

    • 如果需要暂停同步,可关闭选项 设置 - 云端 - 启用云端同步
    • 忽略文件[3]

    ​#注意#​:

    • 启用同步前,请确保参与同步的所有设备系统时间一致
    • 如果数据量较大,建议通过设置中的 导出 Data 导出数据包,然后将该数据包通过手动拷贝或者其他方式发送到新设备上,并在新设备上 导入 Data,最后再配置同步

    同步模式

    设置 - 云端 - 云端同步模式 中支持三种同步模式:

    • 自动同步

      • 启动和退出时会进行一次同步,使用中数据不再变动后 30 秒进行一次同步
      • 由同步算法决定数据合并和覆盖,请参考下述工作原理介绍
    • 手动同步

      • 仅启动和退出时进行一次同步,使用中需要手动触发同步
      • 由同步算法决定数据合并和覆盖,请参考下述工作原理介绍
    • 完全手动同步:启动和退出时均不同步,完全手动控制同步时机和同步方向

    自动/手动同步模式工作原理

    思源通过对比云端数据快照和本地数据快照进行相应操作:

    • 如果快照相同则忽略本次同步

    • 如果快照不同,则将本地距离上次同步的变更上传到云端,将云端最新的变更合并到本地

      • 如果两端的变更没有冲突则直接合并
      • 如果存在文件冲突,则以本地为准覆盖云端,同时拉取到的云端冲突文件会归入到数据历史中

    自动同步时间间隔算法描述如下:

    • 数据变动后 30 秒如果不再发生变动则进行一次对比,如果继续发生变动则顺延 30 秒
    • 没有数据变动则按 5 分钟、8 分钟、16 分钟、32 分钟……递增间隔

    自动同步模式场景例举

    从上述工作原理我们可以得知,思源仅支持在多设备上交替同步数据:设备 A 上同步完成以后设备 B 上再进行同步。无法支持多设备同时同步,这样会发生无法预期的数据覆盖。

    正常场景

    1. 在设备 A 上编辑后执行同步(通过自动或者手动触发同步),此时云端数据会被设备 A 数据覆盖,既云端和设备 A 保持数据一致
    2. 在设备 B 上执行同步,此时设备 B 数据会被云端数据覆盖,即云端和设备 A、B 保持数据一致
    3. 设备 B 上编辑后再次执行同步,此时云端数据会被设备 B 数据覆盖,既云端和设备 B 保持数据一致
    4. 在设备 A 上执行同步,此时设备 A 数据会被云端数据覆盖,即云端和设备 A、B 保持数据一致

    该场景下,使用同步的过程是在设备 A、B 上交替进行的,这样能够保证数据同步符合预期正常完成。

    冲突场景

    1. 在设备 A 上编辑 a 文件后同步
    2. 在设备 B 上编辑 a 文件后同步
    3. 此时云端 a 文件会被 B 设备上的 a 覆盖,同时在 B 设备上生成之前 A 设备 a 的历史

    #注意#

    • 睡眠或关机等突然断网的情况下不会触发同步,请手动点击同步按钮进行同步

    • 请勿同时使用第三方同步盘和思源同步,可能会导致数据损坏

    • 符号链接和隐藏文件不会被同步

    • 自动同步模式下,如需退出,请使用正常的退出应用(比如移动端 APP 不要使用滑动移除,桌面端不要使用结束进程强制关闭)方式以保证数据同步执行

    • 数据同步前进行数据快照如果耗时超过 12 秒会提示清理数据仓库,如果需要改动默认耗时,可通过如下两种方式

      • 环境变量 SIYUAN_SYNC_INDEX_TIMING,例如 SIYUAN_SYNC_INDEX_TIMING=30000,单位是毫秒
      • 直接修改 工作空间/conf/conf.json 中的 repo.syncIndexTiming

      最小值只能配置为 12000(12 秒),最大值不限制;启动时会优先读取环境变量覆盖 conf 文件中的值。

    ↩︎
  2. 初始化密钥

    第一次使用数据快照前需要在 设置 - 关于 中初始化 数据仓库密钥

    初始化密钥有三种方式:

    • 导入密钥:将其他设备上的密钥字符串复制到此粘贴导入
    • 自动生成密钥:使用随机数生成密钥,该方式只需在一台设备上执行一次,其他设备使用 导入密钥
    • 通过密码生成密钥:使用自定义的密码短语生成密钥,该方式需要在所有设备上都使用相同的密码短语

    总而言之,请务必保证所有设备都使用相同的密钥,否则数据快照将无法跨设备使用,比如无法通过云端同步数据快照。 ↩︎

  3. 忽略文件

    如果需要在创建快照时忽略一些文件,请在文件系统上创建或编辑文本文件 工作空间/data/.siyuan/syncignore, 其中每一行使用 data 文件夹的相对路径进行配置,表示忽略文件或文件夹的路径,支持通配符。例如:

    • 20210808180117-6v0mkxr/**/*: 忽略 data/20210808180117-6v0mkxr 笔记本
    • assets/*.pdf:忽略 data/assets/ 下的 PDF 文件
    ↩︎
posted @ 2025-08-18 16:43  Alerson  阅读(35)  评论(0)    收藏  举报