我的Android应用程序的图像密集度很高。出于对多种电话规格的考虑,我的应用程序将所有图像优化为更小、更易于处理的大小,以满足需要它们的设备。
目前,这些文件存储在:
/data/data/com.myapp.example/files但是我觉得有两个重要的考虑因素,
首先,在初始“设置”之后,应用程序将占用大约10MB的额外空间。我如何才能使这对用户来说成为一个尽可能小的问题?我没有考虑过将它们输出到SD卡,因为它们是经过许可的材料,SD是完全不安全的。(尽管我完全知道来自根设备的数据目录也是如此)。这个问题的解决方案是什么?
我的第二个考虑是,在我开始尝试使用设备之前,我需要能够知道用户设备上是否有足够的空间,有没有什么方法可以在我开始使用之前找到?
发布于 2011-04-11 17:15:59
为什么不将文件保存在SDCard上,并使用某种强大的算法对它们进行加密?就像你说的,/data和SDCard一样安全...
要检查给定路径的可用空间,请使用StatFs类。
编辑11/04/2011:
您应该做一些测试,以检查解密数据是否会太慢。你可能会得到一个惊喜。还可以查看TEA和Blowfish算法,它们似乎是最快的“强”算法之一。或者简单地使用你自己的一种非常简单的算法来加密你的数据,这将防止图像被直接窃取(但不能抵抗更好的黑客)。
我认为手机上不会有任何安全区域来临时存储解密的文件,因为任何root用户都可以访问手机的任何地方(对任何人来说,在android上进行根操作都非常简单)
编辑2011/12/04:
您是否需要一次使用所有10MB内存?在内存中加载东西是不可能的吗?如果您在应用程序启动时(和/或在后台)加载数据,并在应用程序的生命周期中保持加载,那么您的应用程序是否会使用OutOfMemoryException崩溃?
最后一种可能性是使用某些本机接口在内存中解密/加载内容:内存分配在Java堆之外,这不会消耗应用程序内存配额,解码速度将大大加快,因为本机代码的运行速度将比等效的Java代码快得多。
发布于 2011-04-11 17:16:18
https://stackoverflow.com/questions/5619042
复制相似问题