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

Qt and app data storage in Android

本文关键字:应用程序 数据 存储 Qt      更新时间:2023-10-16

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

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

谢谢。

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

/data/user/0/org.qtproject.example.myApp

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

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

auto path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
auto fileName= path + "/mySomeFile";

并且文件存储为:

/data/user/0/org.qtproject.example.myApp/files/mySomeFile