首页 > 解决方案 > 需要知道如何从本机 HAL 将地图存储在 android 持久内存中

问题描述

我正在努力在 android 中创建一个服务。本机层存储了一些我需要的值,即使在系统重启后也是如此。我想知道我可以从本机层访问内存的哪一部分,以确保我的数据安全以供以后使用。代码片段将不胜感激。

标签: androidc++hal

解决方案


/data分区应该是 Android 中唯一可写的分区。您可以使用基本的 posix 命令写入/data/vendor.

int fd = open("/data/vendor/myfile", O_WRONLY | O_CREAT);
write(fd, "data", 4);
close(fd);

注意:请应用适当的错误处理:)


写入文件的另一种方法是使用带persist.前缀的系统属性。

#include <android-base/properties.h>

// ...

android::base::SetProperty("persist.myprop", "my value as a string");
// ...
std::string val = android::base::GetProperty("persist.myprop");

上面的例子使用了原有的系统属性界面,随着Android 10的系统属性变得更加强大


推荐阅读