Android中的Qt和应用程序数据存储

Wil*_*l59 5 c++ qt storage android

我正在开发一个使用Qt / C ++的移动应用程序,目前专注于Android。我的应用程序需要以私有和安全的方式存储一些永久性数据(其他应用程序不可访问,并受到尽可能多的保护):

  • 一些基本的键/值设置:QSettings似乎是我在这里需要的。问题是,此操作在Android中最终会出现在哪里,是否存储在共享首选项部分中?
  • 二进制文件,例如一些图片(这些图片是由应用创建的,而不是静态资源)。我将其存储在内部存储文件中;我将其存储在Qt中的什么位置?我是否使用Qt的文件功能以及java调用来查找应用程序的内部存储文件夹,还是有专门为此设计的Qt对象?

谢谢。

Moh*_*nan 5

Android在path下维护应用程序的标准存储,该路径/data/user/0下每个应用程序都有存储空间。因此,如果您有一个名为的应用程序org.qtproject.example.myApp,Android会自动为此应用程序创建存储空间:

/data/user/0/org.qtproject.example.myApp
Run Code Online (Sandbox Code Playgroud)

设置存储在files该路径的文件夹下,如下../files/.config/OrganizationName/AppName.conf

当您要在Android中存储信息时,您无需使用绝对路径,而是使用Qt指定存储位置,Qt QStandardPaths通常会返回上述应用程序路径下的位置,例如,要存储文件mySomeFile,您可以设置路径使用QStandardPaths像:

auto path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
auto fileName= path + "/mySomeFile";
Run Code Online (Sandbox Code Playgroud)

并且文件存储为:

/data/user/0/org.qtproject.example.myApp/files/mySomeFile
Run Code Online (Sandbox Code Playgroud)