Android中的Qt和app数据存储

时间:2018-05-20 18:01:34

标签: android c++ qt storage

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

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

感谢。

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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

,文件存储为:

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