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

tim*_*ner 7 security android store object

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

用例:我正在开始调用applicationserver(在AsyncTask的帮助下)),从服务器获取一个众所周知的响应(xml-response),解析数据并最终将其转换为我的对象结构(高度复杂的类图,类之间有很多关联).到目前为止它正在工作,感谢伟大的XMLPullParser;)我想知道在我的活动之间存储(当然还有)获取数据的位置...我已经知道我可以使用sqlite,但我没有或者-mapper(就像在j2ee环境中的hibernate).我也不允许将这些敏感数据存储在设备上(在sqlite或文件系统中),所以我的第一种方法是将这些数据存储在一个单例中(cource保存在内存中......).但是当系统进入低内存时会发生什么,android可以"破坏"存储在我的单例中的数据吗?我已经阅读了有关扩展android.app的内容. class ...那么在Android设备上安全存储对象数据(从"webservice"调用)的最佳方法是什么?

BTW:Android开发很酷!我们目前正在向Android和iPhone移植Windows Mobile 6.5应用程序,我的同事(负责iPhone-dev)一直在抱怨^^

Jul*_*ian 2

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

至于在手机上存储敏感数据,您实际上无法选择仅将其存储在内存中(按照您的建议使用某种单例)。一旦您的应用程序进入后台,它可能会立即被杀死,因此您必须以某种方式保留您想要保留的数据。话虽这么说,如果您将数据保存到内部存储,则手机上的任何其他应用程序都无法使用该数据(假设手机未 root,因为如果已 root,则很容易绕过)。我确实相信这同样适用于使用 SQLite 存储的数据,但我不能 100% 确定,所以我不会保证这一点。

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