![]() |
Модераторы: javastic |
![]() ![]() ![]() |
|
dimonomid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.1.2006 Репутация: нет Всего: нет |
Всем здрасьте.
Проектирую свое первое приложение под Андроид, поэтому есть некоторые трудности из-за отсутствия опыта работы с этой платформой. Доки на developer.android.com (и не только оттуда) читал, свои идеи по реализации есть, надеюсь услышать совет от опытных товарищей. Задача в целом: у нас есть некий девайс (в дальнейшем - Модуль), просто черная коробка без экранов и кнопочек, мое Андроид-приложение должно соединиться с Модулем по bluetooth и постоянно получать от Модуля данные: в среднем около 30 short значений раз в секунду. Нужно помнить все данные как минимум за последние 10 минут. Получается, 60 секунд * 10 минут * 30 параметров = 18000 значений. Каждое по два байта, итого 36000 байт. При завершении приложения данные сохранять не обязательно, но по команде пользователя неплохо бы уметь сохранить текущие данные. Какие вообще есть мысли: нужно сделать Service и ContentProvider. Service будет поддерживать bluetooth-соединение и будет сохранять данные каким-то образом, а ContentProvider будет должен обеспечить желающим Activity доступ к этим данным. Ну и любые Activity смогут получать эти данные, отображать текущие значения в реальном времени, рисовать графики на основе "прошлых" данных. Есть сомнения: во-первых, действительно ли нужен этот ContentProvider? Вообще не в курсе, например, быстродействия. во-вторых, вообще не знаю, как именно хранить данные. Думаю про БД SQLite, но не слишком ли это медленно будет? Если раз в секунду добавлять/редактировать строку? Или, может, хранить последние 10 минут просто в оперативке, и, скажем, раз в минуту сохранять данные в БД. Если какая-то Activity захочет получить данные за любой период, она просто запросит их у ContentProvider, а тот в свою очередь будет смотреть, откуда их взять: может, можно достать из ОЗУ, а может, уже нужно запрашивать из БД. Или, может, есть варианты получше? Буду рад любым соображениям. Спасибо за внимание |
|||
|
||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 9 Всего: 28 |
ContentProvider нужен если вы собираетесь эти данные выносить за пределы приложения, если нет - то проще ограничиться тем что писать в SQLite. Для скорости можно создать in memory DB - то есть в оперативке, время от времени делая синк на диск.
-------------------- Aut viam inveniam aut faciam |
|||
|
||||
dimonomid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.1.2006 Репутация: нет Всего: нет |
Да, собираюсь выносить за пределы приложения: планируется, что впоследствии любой желающий сможет написать клиент для сервиса и получать от него данные.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Android | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |