我目前面临一个问题,我应该将我的对象结构存储在 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(使用前将#替换为@)