Android 设备上的大型应用程序数据存储在哪里?

2024-01-13

我目前面临一个问题,我应该将我的对象结构存储在 Android 设备上。

用例:我正在开始调用应用程序服务器(在异步任务 http://developer.android.com/reference/android/os/AsyncTask.html),从服务器获取众所周知的响应(xml-response),解析数据并将其最终转换为我的对象结构(高度复杂的类图,类之间有许多关联)。到目前为止,它正在工作,这要感谢伟大的 XMLPullParser ;) 我想知道在哪里存储(当然还有共享)我的活动之间获取的数据...我已经知道我可以使用 sqlite,但我没有 or-mapper(如 j2ee 环境中的 hibernate)。我也不允许将这些敏感数据存储在设备上(在 sqlite 或文件系统中),所以我的第一个方法是将这些数据存储在单例中(这当然是保存在内存中......)。但是当系统内存不足时会发生什么,android可以“销毁”存储在我的单例中的数据吗?我已经读过有关延长android.app.Application http://developer.android.com/reference/android/app/Application.html那么在 Android 设备上安全存储对象数据(从“webservice”调用)的最佳方法是什么?

顺便说一句:Android 开发就是这么酷!我们目前正在将 Windows Mobile 6.5 应用程序移植到 Android 和 iPhone,而我的同事(负责 iPhone 开发)一直在抱怨^^


关于 OR 映射器,我遇到了OrmLite http://ormlite.sourceforge.net/另一天。它是 Java 的通用 ORM 工具,但它也有一些特殊的修改,使其适用于Android http://ormlite.sourceforge.net/sqlite_java_android_orm.html。我还没有时间亲自测试它,但看起来很有希望:)

至于在手机上存储敏感数据,您实际上无法选择仅将其存储在内存中(按照您的建议使用某种单例)。一旦您的应用程序进入后台,它就可以立即被杀死,所以您have以某种方式保留您想要保留的数据。话虽如此,如果您将数据保存到内部存储器 http://developer.android.com/guide/topics/data/data-storage.html#filesInternal,这对于手机上的任何其他应用程序不可用(假设手机未获得 root 权限,因为如果获得 root 权限,则很容易绕过)。我确实相信这同样适用于使用 SQLite 存储的数据,但我不能 100% 确定,所以我不会保证这一点。

但基本上,如果您确定您的应用程序只能在非 root 设备上运行,那么您应该可以非常安全地将数据保存到内部存储中。如果这还不够好,还有javax.crypto http://developer.android.com/reference/javax/crypto/package-summary.html包,但我从未使用过它,所以我不能对此说什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 设备上的大型应用程序数据存储在哪里? 的相关文章

随机推荐

  • 从隔离函数调用异步函数

    我正在尝试从 Isolate 函数调用异步函数 class IsolateExample final ReceivePort port new ReceivePort IsolateExample Isolate spawn isolate
  • 如何在 laravel dompdf 中自定义字体和页面?

    我从这里得到 https github com barryvdh laravel dompdf https github com barryvdh laravel dompdf 我的控制器是这样的 public function listd
  • 如何绘制survreg(R的包生存)生成的生存曲线?

    我正在尝试根据生存数据拟合并绘制威布尔模型 该数据只有一个协变量 即从 2006 年到 2010 年运行的队列 那么 对于在后面的两行代码中添加什么来绘制 2010 年队列的生存曲线 有什么想法吗 library survival s lt
  • 如何在pygame中添加残像?

    由于角色移动是基于网格的 因此当角色从一个方格移动到另一个方格时 它们看起来有点奇怪 因为它们只是从一个方格出现到另一个方格 为了让动作感觉更自然 我想添加 残像 以便模拟平滑的动作 Demonstrational image Since
  • 多个 AsyncHttpClient get 请求填充一项活动

    我有一个 GameActivity 为了填充布局 我必须多次调用远程 API 并想知道使用 AsyncHttpClient 包完成此操作的最佳方法http loopj com android async http http loopj co
  • 我如何从网络元素获取文本并在控制台中打印(例如)

    我在从网页上的元素获取文本时遇到问题 我正在使用 TestCafe e2e 框架 想要将文本 Web 元素的内容打印到控制台 你能提供一些代码吗 const getInnerText ClientFunction gt homePage k
  • executionTimeout 在 asp.net mvc 上不起作用

    我尝试在 web config 中为 asp net mvc 应用程序设置executionTimeout
  • 数组指针什么时候有用?

    我可以声明 int ap N So ap是指向大小为 N 的 int 数组的指针 为什么这很有用 如果我将它传递给函数 它可以用它做哪些有用的事情 而它不能用指向数组内容的普通指针来做 C常见问题解答说 2 12 如何声明一个指向数组的指针
  • Gradle Xpp3 错误

    我在为发布版本执行 gradle 构建时收到此错误 错误 xpp3 定义的类与现在提供的类冲突 安卓 解决方案包括寻找更新版本或替代方案 没有同样问题的库 例如 httpclient使用HttpUrlConnection或者okhttp代替
  • Git 对 *.reg 文件显示“二进制文件 a... 和 b... 不同”

    有没有办法强制 Git 处理 reg文件作为文本 我正在使用 Git 来跟踪我的 Windows 注册表调整和 Windows 使用情况 reg对于这些文件 更新1 我让它运行差异 谢谢 安德鲁 然而 现在看起来像下面这样 这是编码问题吗
  • 我可以使用 AngularJs 指令将样式应用于伪元素吗

    我希望我在这里没有遗漏一些明显的东西 但我正在尝试学习 Angular 并且在尝试制定指令时遇到了问题 我正在尝试构建一个指令 该指令将从数据属性 背景图像 获取 url 并将其作为背景图像应用到伪元素 但我无法弄清楚如何定位 before
  • 在 GitLab TeamCity 中显示构建状态

    我已成功将 TeamCity 配置为自动从 GitLab 提取新签入的更改并构建它 下一步 我希望 GitLab 中的构建状态图标能够反映 TeamCity 的构建状态 在每次构建 TeamCity 构建时 GitLab 继续显示 buil
  • 程序接收信号SIGTRAP,跟踪/断点陷阱

    我正在调试一个 嵌入式 软件 我在一个函数上设置了一个断点 出于某种原因 一旦我到达该断点并且continue我总是回到该函数 这是一个初始化函数 只能调用一次 当我删除断点时 并且continue GDB 告诉我 Program rece
  • jQuery UI 主题和 HTML 表格

    有没有办法使用 jQuery CSS 主题来设置 HTML 表格 CSS 主题 我的所有组件看起来都属于同一组 除了 HTML 表格看起来不同 那里有很多资源 支持 ThemeRoller 的插件 jqGrid http www trira
  • django 表单发布请求在 __init__ 方法上引发错误

    我有一个 django 表单 它从视图中获取参数来根据用户实例初始化多项选择字段 加载模板时表单工作正常 当我提交表格时init表单中的方法会引发错误 My Model模型 py from django db import models f
  • Node.js 递归列出文件的完整路径[重复]

    这个问题在这里已经有答案了 各位晚安 我在使用一些简单的递归函数时遇到了麻烦 问题是递归列出给定文件夹及其子文件夹中的所有文件 目前 我已经成功使用一个简单的函数列出目录中的文件 fs readdirSync copyFrom forEac
  • 使用竞争检测器时可以跳过特定测试吗?

    Go Race Detector 的 goroutine 限制为 8192 至少在我的系统上 我运行的一项测试是查看我的服务器代码如何处理大量同时打开的连接 现在我正在尝试 gt 15000 当我跑步时go test race 因此 该特定
  • listfragment 与我的主抽屉重叠

    我是Android新手 我正在创建一个应用程序 并且我有一个列表片段问题 因为列表显示但它与标题栏重叠 我必须添加边距顶部来改变它 而且我正在使用抽屉并且当我尝试时要打开它在选项抽屉上显示的列表 请让我粘贴代码和图像 以便您可以了解更多信息
  • ASP.NET 5 MVC 6 通用存储库模式

    一直在到处寻找教程什么的 我一直在尝试将 MVC5 的旧通用存储库模式实现到新的 MVC6 项目中 我设置了 3 个类库 Core Data and Service 但是有一个问题IDBset 似乎我的智能感知不喜欢它 我尝试添加Syste
  • Android 设备上的大型应用程序数据存储在哪里?

    我目前面临一个问题 我应该将我的对象结构存储在 Android 设备上 用例 我正在开始调用应用程序服务器 在异步任务 http developer android com reference android os AsyncTask ht