问题是如何存储大量数据(数百Mb和更多)并同时保持它仅适用于我的应用程序?如何在Android中私密存储大数据量?
我发现的内部存储空间有限,其大小取决于设备型号。对于大数据量存储来说足够了吗?我可以在内部存储器中存储500Mb和更多内存吗?
另一种方法是使用外部存储。据我所知,外部存储不限制应用程序,它可以使用整个外部存储。但是,数据可用于用户和其他应用程序,在我的情况下是不可接受的。有没有办法让数据存储在外部存储中,就像存储在内部数据一样?
问题是如何存储大量数据(数百Mb和更多)并同时保持它仅适用于我的应用程序?如何在Android中私密存储大数据量?
我发现的内部存储空间有限,其大小取决于设备型号。对于大数据量存储来说足够了吗?我可以在内部存储器中存储500Mb和更多内存吗?
另一种方法是使用外部存储。据我所知,外部存储不限制应用程序,它可以使用整个外部存储。但是,数据可用于用户和其他应用程序,在我的情况下是不可接受的。有没有办法让数据存储在外部存储中,就像存储在内部数据一样?
内部存储作为我发现是有限的,它的大小仅依赖于在Android的1.x/2.x的设备模型
。在大多数Android 3.0+设备的广阔的上,内部和外部存储位于相同的分区上,因此具有相同的空间量。
我可以在内部存储中存储500Mb或更多吗?
在Android 3.0+上,可能。用户可能没有500MB的免费空间,但这不是内部存储的限制,而是一般的“存储”限制。
有没有办法让数据存储在外部存储中,私有就好像存储在内部数据一样?
不是。例如,您不能阻止用户或其他应用程序删除这些文件。您可以使用Facebook的隐藏库来加密外部存储上的文件,并将生成的加密密钥存储在内部存储中,以防止用户或其他应用更改文件内容(除了简单地破坏它们)。但是,如果您仍然支持Android 1.x/2.x,这只会相关。在Android 3.0+上,只需使用内部存储。
考虑到你受到两种可能的方法的限制。
哪个选项是产品决策。
您可以使用getExternalFilesDir()
限制媒体商店内容提供商从外部存储中读取您的应用程序特定文件。但我认为任何其他具有READ_EXTERNAL_STORAGE
权限的应用程序都可以访问这些文件。唯一的方法是使用内部存储器。
我不知道你想存储什么类型的文件。如果文件数量较少,可以考虑使用数据库,但这会违反ACID原则。或者,您可以考虑使用内容提供商进行限制。