Я нянчусь с платформой / оборудованием? - PullRequest
4 голосов
/ 18 января 2011

Я не могу сказать, проявляю ли я уважение и вежливость по отношению к пользователю, или я излишне мешаю утилите моего приложения во имя обращения с телефоном, как с фарфоровой куклой.

У меня есть успешное приложение в Android Market. Одной из основных функций является то, что он записывает спортивную статистику из игры, которую забивает пользователь. Текущий уровень детализации довольно прост: строка для каждого игрока и поле для каждой базовой характеристики. Тем не менее, я мог бы предположительно значительно увеличить детализацию и уровень полезности приложения, если бы записывал дополнительную информацию, увеличивая ее до многочисленных реляционных таблиц и, возможно, тысяч и тысяч записей.

У меня вопрос, это ответственная вещь? До этого момента я уклонялся от этого, думая, что «это просто телефон» и «это просто SQLite », но я никогда не задумывался над тем, является ли это законной причиной сдерживаться делать то, что я бы даже не подумал сделать в веб-приложении или приложении для ПК.

Итак, сколько данных (я знаю, что их можно измерить очень разумно) разумно ожидать от телефонного приложения в отношении хранения и просеивания записей базы данных?

EDIT: Чтобы быть ясным, я не просто говорю о добавлении дополнительных полей, поскольку я знаю, что влияние этого тривиально Я говорю о переходе от уровня детализации «У этого игрока есть 5 синглов и 3 хомера» к хранению информации о каждом поле, которое включало каждую ат-биту, что привело к 5 синглам и трем хомерсам. Очевидно, что это потребует дополнительных таблиц и, вероятно, большого количества записей.

Ответы [ 2 ]

4 голосов
/ 18 января 2011

Для моего магистерского проекта в CMU я использую Android-приложение, которое собрало примерно 300 МБ (2,5 миллиона строк в основной таблице) данных за один день в sqlite. Он разрядил батарею телефона примерно за 10 часов, а загрузка процессора составила около 50%, но ничего из этого не имело ничего общего с данными. Мы занимались онлайн-изучением физиологических данных, поступающих через Bluetooth с частотой 72 Гц. Из-за того, что не хватало математических деталей, телефон работал довольно хорошо и работал, пока служба работала. И 10 часов были в основном из-за непрерывной работы Bluetooth. Без Bluetooth мы получили около 16-18 часов непрерывной работы. Который я даже не получаю в эти дни на HTC Desire.

И ЭТО БЫЛО НА G1

Я думаю, что вы в порядке, если вы остаетесь в мегабайтах или, может быть, в младших 10 мегабайтах. Пока у вас хороший дизайн и вы не делаете дорогих запросов в основном потоке. SQLite хорошо обрабатывает правильно сформированные запросы, и вывод данных в них ДЕЙСТВИТЕЛЬНО быстр.

[edit:] только что подумал: почему бы вам не предоставить вторую версию вашего приложения с дополнительными полями? Больше вычислений, очевидно, означает немного больше разряда батареи, поэтому я бы дал пользователям какой-то выбор. Но моя интуиция заключается в том, что производительность не будет заметна.

0 голосов
/ 19 января 2011

Похоже, что SQLite отлично подойдет для того, что вам нужно. Я не колеблясь раздвинуть его границы. Это очень хорошо реализованный продукт, и он должен уметь справляться с тем, что вы описываете. Если вы дойдете до точки, когда ваше приложение обрабатывает большие объемы данных (более 100-200 МБ), вы можете рассмотреть Berkeley DB . Berkeley DB поддерживает API SQLite3 и предоставляет дополнительные возможности управления данными, которые обеспечивают лучшую производительность, масштабируемость и надежность, чем собственный SQLite, особенно при работе с большими наборами данных. - Дэйв

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...