存储小的键值对:
Xamarin.Forms 实现了 Application.Current.Properties
,将键值数据存储在应用的本地存储中,并且只有存储这些键值对的应用程序可以安全地访问它们。
存储文档/数据库 (Sqlite):
每个平台都有自己的文件夹结构来存储应用程序特定的数据/文件。
Android:
Environment.SpecialFolder.Personal & MyDocuments
都映射到: /data/data/@PACKAGE_NAME@/files
Environment.SpecialFolder.LocalApplicationData
映射到: /data/data/@PACKAGE_NAME@/files/.local/share
我们可以根据文件系统中的映射方式将文件存储在上述任何一个目录中。除非手机已经被 root,否则其他应用程序无法访问以上任何一个目录,用户也无法在世界范围内访问它们。
iOS:
Environment.SpecialFolder.Personal, LocalApplicationData & MyDocuments
都映射到: /Documents
iOS 具有以下目录结构:
/Documents
/Library
/Library/Application Support
/Library/Caches
/tmp
/Documents
: 如果在应用的info.plist
中开启了iTunes共享,则可以在中看到。内容可以通过进行备份。
/Library
: 在中不可见。可以通过进行备份,但是Caches
目录除外。
不需要向用户公开的文件/数据应存储在Library目录中。例如,数据库文件。如果需要,我会选择使用Library
目录进行额外的安全性保护,同时加密文件(如果需要)。
要进入Library路径:
Path.Combine(Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments), "..", "Library");
要了解每个枚举与目录的映射,请点击此处。
了解关于iOS 文件系统基础知识。