我不知道我是否对用户表示尊重和礼貌,或者我是否因为像瓷娃娃一样对待手机而不必要地设置我的应用程序的实用程序。
我在Android电子市场中拥有一款成功的应用。一个主要功能是它记录用户正在评分的游戏中的运动统计数据。当前的细节水平是相当基本的:每个玩家一行,每个基本统计的一个字段。但是,如果我记录了额外的信息,可以将显着增加应用程序的详细程度和水平,将其扩展到众多关系表,并且可以想象成千上万的记录。
我的问题是,这是一件负责任的事吗?到目前为止,我已经避开它,认为“它只是一部手机”和“它只是 SQLite ”,但我从未真正看过这是否是合法的理由。回过头来做我不会再考虑在网络或桌面应用上做的事情。
因此,在存储和筛选数据库记录方面,期望手机应用程序做多少数据(非常可量化,我知道)是合理的?
修改 要清楚,我不是简单地谈论添加更多字段,因为我知道这些影响是微不足道的。我正在谈论从“这个玩家有5个单打和3个本垒打”的详细程度来存储关于每个球场的信息,每个球场都包含5个单打和3个本垒打。显然,这将需要额外的表格,并且可以想象有很多记录。
答案 0 :(得分:4)
对于我在CMU的硕士论文项目,我在一天内用sqlite收集了大约300mb(主表中的250万行)数据的Android应用程序。它在大约10个小时内耗尽了手机电池,CPU利用率大约为50%,但这与数据无关。我们正在通过72Hz的蓝牙进行在线学习生理数据。随着数学密集型部分被切断,手机非常精细并且在服务运行时使用了。 10个小时主要是由于蓝牙连续运行。没有蓝牙,我们可以获得大约16-18小时的连续正常运行时间。这些日子我甚至都没有参加HTC Desire。
这是G1
我认为如果你留在兆字节或者可能低10兆字节的话你就没问题了。只要你有一个好的设计,并且不在主线程中做昂贵的查询。 SQLite可以很好地处理格式良好的查询,并且将数据转储到它中的速度非常快。
[编辑:]只是想到了一些事情:为什么不提供附加字段的应用程序的第二个版本?更多的计算显然意味着更多的电池消耗,所以我会给用户一些选择。但我的直觉是,性能猪不会真正引人注目。
答案 1 :(得分:0)
听起来像SQLite会很好地满足您的需求。我会毫不犹豫地推动它的极限。它是一个非常好的实现产品,应该能够处理您描述的内容。如果您的应用程序处理大量数据(超过100-200MB),您可能需要考虑Berkeley DB。 Berkeley DB支持SQLite3 API并提供额外的数据管理功能,可提供比原生SQLite更好的性能,可伸缩性和可靠性,尤其是在处理更大的数据集时。 - 戴夫