Qt 和应用程序数据存储在 Android
Qt and app data storage in Android
我正在使用 Qt/C++ 开发移动应用程序,目前专注于 Android。
我的应用程序需要以私密和安全的方式存储一些永久数据(其他应用程序无法访问,尽可能保护):
- 一些基本的key/value 设置:QSettings 似乎是我在这里需要的。问题是这最终会出现在 Android 中,它是否存储在共享首选项部分?
- 二进制文件,比如几张图片(这些是应用创建的,不是静态资源)。我会把它存储在一个内部存储文件中;我将把它存储在 Qt 的什么地方?我是使用 Qt 的文件功能,并 java 调用来查找我的应用程序的内部存储文件夹,还是有专门为此设计的 Qt 对象?
谢谢。
Android 为路径 /data/user/0
下的应用程序维护标准存储,每个应用程序都在其中获得存储空间 space。因此,如果您有一个名为 org.qtproject.example.myApp
的应用程序,Android 会自动为此应用程序创建存储空间 space:
/data/user/0/org.qtproject.example.myApp
设置存放在该路径的files
文件夹下,如../files/.config/OrganizationName/AppName.conf
当您想在 Android 中存储信息时,您不使用绝对路径,而是使用 Qt QStandardPaths
指定存储位置,通常 returns上面提到的应用程序路径,例如要存储文件 mySomeFile
,您可以使用 QStandardPaths
设置路径,例如:
auto path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
auto fileName= path + "/mySomeFile";
文件存储为:
/data/user/0/org.qtproject.example.myApp/files/mySomeFile
我正在使用 Qt/C++ 开发移动应用程序,目前专注于 Android。 我的应用程序需要以私密和安全的方式存储一些永久数据(其他应用程序无法访问,尽可能保护):
- 一些基本的key/value 设置:QSettings 似乎是我在这里需要的。问题是这最终会出现在 Android 中,它是否存储在共享首选项部分?
- 二进制文件,比如几张图片(这些是应用创建的,不是静态资源)。我会把它存储在一个内部存储文件中;我将把它存储在 Qt 的什么地方?我是使用 Qt 的文件功能,并 java 调用来查找我的应用程序的内部存储文件夹,还是有专门为此设计的 Qt 对象?
谢谢。
Android 为路径 /data/user/0
下的应用程序维护标准存储,每个应用程序都在其中获得存储空间 space。因此,如果您有一个名为 org.qtproject.example.myApp
的应用程序,Android 会自动为此应用程序创建存储空间 space:
/data/user/0/org.qtproject.example.myApp
设置存放在该路径的files
文件夹下,如../files/.config/OrganizationName/AppName.conf
当您想在 Android 中存储信息时,您不使用绝对路径,而是使用 Qt QStandardPaths
指定存储位置,通常 returns上面提到的应用程序路径,例如要存储文件 mySomeFile
,您可以使用 QStandardPaths
设置路径,例如:
auto path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
auto fileName= path + "/mySomeFile";
文件存储为:
/data/user/0/org.qtproject.example.myApp/files/mySomeFile