Модераторы: javastic, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> С каким хранилищем данных лучше работать в J2ME, XML, CSV или что другое? 
:(
    Опции темы
Цербер
Дата 4.9.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: 1
Всего: 1



Доброго времени суток уважаемые форумчане!
И вот новая тема в моём исполнении, уж больно затягивает J2ME =)
Так вот пришёл к этапу работы с данными, чтение, запись.
Так вот вопрос: 
в чём принято и обосновано лучше хранить данные для работы с J2ME.
гугль на эту тему говорит: мол есть несколько вариантов, попробуй ка ты XML или CVS а хошь придумай свой бинарный формат данных.
последнее думаю сразу лишний гемор. Ну вот пришёл к Вам гуру J2ME посоветоваться =) что скажете по этому поводу!?

Заодно подскажите куда размещать стороние классы, библиотеки такого рода как kXML да и остальных, в примерах видел импортирует из org, юзаю нетбинс если это касается дело!

Это сообщение отредактировал(а) Цербер - 4.9.2009, 15:07
PM MAIL ICQ   Вверх
Выхухоль
Дата 4.9.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 9.10.2008
Где: Ташкент

Репутация: 2
Всего: 2



чесна говоря я ни разу не использовал XML, CSV, я для этих целей юзал тока RMS, это встроенный в WTK функционал хранения данных в виде бинарных записей, и особого гемора если чесна не чувсвовал, мну понравилоь =)

Цитата(Цербер @  4.9.2009,  14:35 Найти цитируемый пост)
библиотеки такого рода как kXML 

ты имешь ввиду как прикрепить к проекту сторонний jar пакет??
если да то очень просто
В меню Tools->Librarys
кнопка new library
пишешь к примеру "kXML" , жмешь ок, потом прописываешь в табе classpath доступ к jar файлу пакета...жмешь ok ,усе готово

хотя не соврал не все..
это ты ее тока в библиотеки прописал, теперь ее нада к проекту прикрутить..
ну тут все легко..
Открываешь вкладку Projects->внутри твоего проекта->Resources, жешь на нее правой кнопочкой, выбираешь Add library, далее выбираешь свою библиотеку названную "kXML", жмешь ок и усе, теперь точно

Это сообщение отредактировал(а) Выхухоль - 4.9.2009, 15:54
PM MAIL ICQ   Вверх
eugine_s
Дата 4.9.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



1) XML - удобно, легко редактировать, но при это нужно всегда будет таскать с приложением какой-нибудь kXML. 
2) Можно и свое что-то сделать, ничего сложного нет. 
Самый простой вариант - на большой java написать утилиту, которая будет готовить нужные данные для твоего приложения. (DataOutputStream пишет), а на мобильном читать эти данные (тем же DataInputStream). 
Но в таком случае тяжело расширять твои данные. 
3) Иногда можно использовать просто текстовый файл. 

Так что уточняй какие данные нужно хранить? Какой объем? 

PM MAIL   Вверх
hamsterKSU
Дата 4.9.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



Тут действительно все зависит от объема данных.

1. Если надо сетинги хранить и не сособо большой объемы данных то RMS. 
   Он обычно ограничен какимто числом килобай. На некоторых телефонах он бывает и не ограничен вообще(память телефона исключаем smile )

2 XML хорошь для загрузки данных. Можно использовать как источник данных + обычно с веба получают данные в виде XML - удобно и понятно. ну а парсер не проблема - sax парсер kXml спасает

3 Текстовый файл тоже можно использовать для пропертей типа имя=значение, очень удобно

4 Можно еще юзать подобие баз данных для мобил - встречал парочку. 


Если что то надо активно менять/удалять/перезаписовать/добовлять то удобно юзать RMS



Это сообщение отредактировал(а) hamsterKSU - 4.9.2009, 18:21
PM MAIL ICQ   Вверх
Цербер
Дата 5.9.2009, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: 1
Всего: 1



Выхухоль я скачал kXML в архиве нету .jar файлов, только классы .java я просто ещё не столь осведомлён всеми тонкостями J2ME, поэтому не знаю как присобачить сторонние библиотеки, ну да не беда разберусь.
с подключением уже разобрался. 

Объём данных от 3000 записей в бд + остальные таблицы в связке. объём будет постоянно увиличиваться. поэтому думаю RMS полюбасу отпадает, т.к. как мне известно информация хранится в памяти телефона, а это совсем не выход, зачем засирать телефон.

И ещё я думаю если объём данных большой, то разумнее делить инфу на несколько файлов, что бы чтение происходило не столь заметно и не грузила мабилу. 

Цитата

Можно еще юзать подобие баз данных для мобил - встречал парочку. 

эх ещё бы sql поддерживалось бы в J2ME было замечательно, я правда до этого ни с одним компилироваемым языком не работал, можно сказать JAVA первый, для ознакомления C++ был, но я вот постоянно думал как вытаскиваются данные с дата файлов в этих языках?
например в пхп всё ясно отправляешь запрос на сервак и получаешь результат, а как с дб файлом всё происходит... те же sql запросы или же парсинг... что то я отвлёкся, хотя если кто нить прояснит эту деталь буду признателен.

Выходит для работы с большим объёмом данных в J2ME целесообразей юзать xml ? хотя про подобие баз данных надо тоже посмотреть.
ну буду ждать развязки темы =)

Это сообщение отредактировал(а) Цербер - 5.9.2009, 10:02
PM MAIL ICQ   Вверх
hamsterKSU
Дата 5.9.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



посмотри сюда - http://www.mcobject.com/j2me_database
может поможет.

Вот только у меня есть некоторые соображения по поводу вашей задумки.
Может всетаки лучше сделать клиент серверное приложение?

Сделать отдельно проксик,  которому будете ходить за данными, если конечно не напрягает трафик и подходит такая модель.

Если вам придеться изменять данные то XML не самой лучшее решение. Если только readonly то еще может и подойдет. Т.к для перезаписи файла вам придеться либо все загружать в память или писать нечто системы копирования из файла в новый файл - 

если надо удалить/изменить что-то:  то читаем певый файл по строчно и пишем во второй(что бы не грузить память телефона). Встретили строку которую надо удалить - просто не записываем ее в файл или пишем измененную строку. 
но тут скорее всего будут проблемы с производительностью. 
если надумаете юзать файлик большого размера то лучше бинарик, а не XML - чтобы не было дополнительных расходов на теги. но это еще надо думать - какое  из двух зол меньшее.



PM MAIL ICQ   Вверх
Цербер
Дата 5.9.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: 1
Всего: 1



Цитата

Может всетаки лучше сделать клиент серверное приложение?

hamsterKSU  если я правильно понял Вы предлагаете, принимать нформацию из вне телефона, т.е. с сервера, если так, то это не подходит=( софтина должна работать без инета. такова моя задумка =) начал изучение с конкретной задачи что бы не терять времени на бесполезное знакомство с тем что может и не пригодится а на практике полюбому узнаешь то что нужно для выполнения задачи и гугль и форум в помощь =)


Цитата

эх ещё бы sql поддерживалось бы в J2ME было замечательно, я правда до этого ни с одним компилироваемым языком не работал, можно сказать JAVA первый, для ознакомления C++ был, но я вот постоянно думал как вытаскиваются данные с дата файлов в этих языках?
например в пхп всё ясно отправляешь запрос на сервак и получаешь результат, а как с дб файлом всё происходит... те же sql запросы или же парсинг... что то я отвлёкся, хотя если кто нить прояснит эту деталь буду признателен.

это я выяснил =)

софтина будет readonly - менять данные xml врятли будет.
PM MAIL ICQ   Вверх
ivanovpv
Дата 30.9.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Единственный нормальный способ это RMS. А уж туда пихайте XML, CSМ чего - хотите. Есть минус - ограниченность размера, правда его можно обойти увеличивая количество RMS'ов (спецификация допускает минимум то ли 16  то ли 32 RMS'а)

В противном случае придется отвалить баблосы за подписывание мидлетов (кстати все равно это не поможет) - поскольку при каждом обращении к файловой системе бедному юзеру придется жать кнопки типа "Да, я действительно хочу", "Да-да я на самом деле хочу" "Точно-точно хочу!" - прочитать злосчастный файлик. Избавится от этого можно только единственным способом получить цифровую подпись уровня Vendor - что для простого смертного практически нереально. Да и добавим, что JSR-75 (работа с файловой системой) - не все телефоны поддерживают.




--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
eugine_s
Дата 30.9.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(ivanovpv @  30.9.2009,  11:54 Найти цитируемый пост)
отвалить баблосы за подписывание мидлетов (кстати все равно это не поможет)- поскольку при каждом обращении к файловой системе бедному юзеру придется жать кнопки типа "Да, я действительно хочу", "Да-да я на самом деле хочу" "Точно-точно хочу!"


Э.. не вводите в заблуждение людей. 
Подпись как раз и дает возможность убрать эти запросы. 

Другое дело, что вы можете не указать в jad и/или манифесте параметр: MIDlet-Permissions/MIDlet-Permissions-Opt
и/или пользователь может не знать, что в настройках мидлета можно изменить частоту этих запросов 


PM MAIL   Вверх
ivanovpv
Дата 5.10.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Цитата(eugine_s @  30.9.2009,  12:09 Найти цитируемый пост)
Э.. не вводите в заблуждение людей. 
Подпись как раз и дает возможность убрать эти запросы. 


Не-а не ввожу людей в заблуждение... Для того, чтобы убрать запросы обращения к файловой системе нужно получить подпись уровня Vendor (читай одобренного Nokia и проч.)
Цитата

There are 3 main levels of signing:

   1. Handset Vendor or Mobile Operator signature – allows access to all the applicable APIs and allows setting permissions so they do not interfere with the normal application flow;
   2. Trusted Third Party signature – allows limited access to the phone’s API, requires the user to manually confirm various permissions on the device for the application;
   3. Non-Trusted Third party – very limited access to the APIs and really annoying permission set.


Как показывает опыт получить подпись уровня Vendor очень сложно (практически невозможно) - даже всякие разные банковские аппликухи не имеют такого (с их то баблосами и возможностями). Так что простому смертному остается получить Non-Trusted Third Party и терпеливо жать кнопочки: "да-да, я правда хочу!"


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Окунь
Дата 5.10.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



Цитата(ivanovpv @  5.10.2009,  12:16 Найти цитируемый пост)
2. Trusted Third Party signature – allows limited access to the phone’s API, requires the user to manually confirm various permissions on the device for the application;


ivanovpv

Это как раз то, о чем выше писал eugine_s.
Т.е., если мидлет подписан купленным сертификатом у Thawte или Verisign, то мидлет будет помещен в trusted 3rd party domain. Следовательно, в настройках мидлета у пользователя будет возможность разрешить доступ к файловой системе без всяких надоедающих вопросов

PM MAIL   Вверх
ivanovpv
Дата 5.10.2009, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Цитата(Окунь @  5.10.2009,  13:19 Найти цитируемый пост)
Это как раз то, о чем выше писал eugine_s.
Т.е., если мидлет подписан купленным сертификатом у Thawte или Verisign, то мидлет будет помещен в trusted 3rd party domain. Следовательно, в настройках мидлета у пользователя будет возможность разрешить доступ к файловой системе без всяких надоедающих вопросов


Сразу видно, что не пробовал... А ты попробуй smile и увидишь  smile 
обратите внимание на сноску:
Цитата

requires the user to manually confirm various permissions on the device for the application;


то бишь нажимать "да-да хоцу!"

Это сообщение отредактировал(а) ivanovpv - 5.10.2009, 14:19


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Окунь
Дата 5.10.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



Цитата(ivanovpv @  5.10.2009,  14:16 Найти цитируемый пост)
Сразу видно, что не пробовал... А ты попробуй  и увидишь   



Проверил на Nokia 6300: у подписанного мидлета в настройках появляется пункт "разрешить", как и было указано в документации. Уверен, что на большинстве нокиевских телефонов будет аналогичное поведение.
Где подвох?
PM MAIL   Вверх
ivanovpv
Дата 5.10.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Цитата(Окунь @  5.10.2009,  14:36 Найти цитируемый пост)
Проверил на Nokia 6300: у подписанного мидлета в настройках появляется пункт "разрешить", как и было указано в документации.


Разрешить что? Если сетевое соединение - спрашивает только 1 раз, а если файловое должен спрашивать каждый раз.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Окунь
Дата 5.10.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



Цитата(ivanovpv @  5.10.2009,  16:17 Найти цитируемый пост)
Разрешить что? Если сетевое соединение - спрашивает только 1 раз, а если файловое должен спрашивать каждый раз.


В настройках 6300 есть пункт:
"Доступ приложения" -> "Доступ к данным" -> "Чтение данных" (или "Добав. и изменить") -> "Разрешено"

Если выбрать этот пункт, то вопросы о доступе к файловой системе не появляются. Только что проверил на мидлете, подписанном сертификатом Thawte
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0938 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.