![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: 1 Всего: 1 |
Доброго времени суток уважаемые форумчане!
И вот новая тема в моём исполнении, уж больно затягивает J2ME =) Так вот пришёл к этапу работы с данными, чтение, запись. Так вот вопрос: в чём принято и обосновано лучше хранить данные для работы с J2ME. гугль на эту тему говорит: мол есть несколько вариантов, попробуй ка ты XML или CVS а хошь придумай свой бинарный формат данных. последнее думаю сразу лишний гемор. Ну вот пришёл к Вам гуру J2ME посоветоваться =) что скажете по этому поводу!? Заодно подскажите куда размещать стороние классы, библиотеки такого рода как kXML да и остальных, в примерах видел импортирует из org, юзаю нетбинс если это касается дело! Это сообщение отредактировал(а) Цербер - 4.9.2009, 15:07 |
|||
|
||||
Выхухоль |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 9.10.2008 Где: Ташкент Репутация: 2 Всего: 2 |
чесна говоря я ни разу не использовал XML, CSV, я для этих целей юзал тока RMS, это встроенный в WTK функционал хранения данных в виде бинарных записей, и особого гемора если чесна не чувсвовал, мну понравилоь =)
ты имешь ввиду как прикрепить к проекту сторонний jar пакет?? если да то очень просто В меню Tools->Librarys кнопка new library пишешь к примеру "kXML" , жмешь ок, потом прописываешь в табе classpath доступ к jar файлу пакета...жмешь ok ,усе готово хотя не соврал не все.. это ты ее тока в библиотеки прописал, теперь ее нада к проекту прикрутить.. ну тут все легко.. Открываешь вкладку Projects->внутри твоего проекта->Resources, жешь на нее правой кнопочкой, выбираешь Add library, далее выбираешь свою библиотеку названную "kXML", жмешь ок и усе, теперь точно Это сообщение отредактировал(а) Выхухоль - 4.9.2009, 15:54 |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
1) XML - удобно, легко редактировать, но при это нужно всегда будет таскать с приложением какой-нибудь kXML.
2) Можно и свое что-то сделать, ничего сложного нет. Самый простой вариант - на большой java написать утилиту, которая будет готовить нужные данные для твоего приложения. (DataOutputStream пишет), а на мобильном читать эти данные (тем же DataInputStream). Но в таком случае тяжело расширять твои данные. 3) Иногда можно использовать просто текстовый файл. Так что уточняй какие данные нужно хранить? Какой объем? |
|||
|
||||
hamsterKSU |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 7 Всего: 11 |
Тут действительно все зависит от объема данных.
1. Если надо сетинги хранить и не сособо большой объемы данных то RMS. Он обычно ограничен какимто числом килобай. На некоторых телефонах он бывает и не ограничен вообще(память телефона исключаем ![]() 2 XML хорошь для загрузки данных. Можно использовать как источник данных + обычно с веба получают данные в виде XML - удобно и понятно. ну а парсер не проблема - sax парсер kXml спасает 3 Текстовый файл тоже можно использовать для пропертей типа имя=значение, очень удобно 4 Можно еще юзать подобие баз данных для мобил - встречал парочку. Если что то надо активно менять/удалять/перезаписовать/добовлять то удобно юзать RMS Это сообщение отредактировал(а) hamsterKSU - 4.9.2009, 18:21 |
|||
|
||||
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: 1 Всего: 1 |
Выхухоль я скачал kXML в архиве нету .jar файлов, только классы .java я просто ещё не столь осведомлён всеми тонкостями J2ME, поэтому не знаю как присобачить сторонние библиотеки, ну да не беда разберусь.
с подключением уже разобрался. Объём данных от 3000 записей в бд + остальные таблицы в связке. объём будет постоянно увиличиваться. поэтому думаю RMS полюбасу отпадает, т.к. как мне известно информация хранится в памяти телефона, а это совсем не выход, зачем засирать телефон. И ещё я думаю если объём данных большой, то разумнее делить инфу на несколько файлов, что бы чтение происходило не столь заметно и не грузила мабилу.
эх ещё бы sql поддерживалось бы в J2ME было замечательно, я правда до этого ни с одним компилироваемым языком не работал, можно сказать JAVA первый, для ознакомления C++ был, но я вот постоянно думал как вытаскиваются данные с дата файлов в этих языках? например в пхп всё ясно отправляешь запрос на сервак и получаешь результат, а как с дб файлом всё происходит... те же sql запросы или же парсинг... что то я отвлёкся, хотя если кто нить прояснит эту деталь буду признателен. Выходит для работы с большим объёмом данных в J2ME целесообразей юзать xml ? хотя про подобие баз данных надо тоже посмотреть. ну буду ждать развязки темы =) Это сообщение отредактировал(а) Цербер - 5.9.2009, 10:02 |
|||
|
||||
hamsterKSU |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 7 Всего: 11 |
посмотри сюда - http://www.mcobject.com/j2me_database
может поможет. Вот только у меня есть некоторые соображения по поводу вашей задумки. Может всетаки лучше сделать клиент серверное приложение? Сделать отдельно проксик, которому будете ходить за данными, если конечно не напрягает трафик и подходит такая модель. Если вам придеться изменять данные то XML не самой лучшее решение. Если только readonly то еще может и подойдет. Т.к для перезаписи файла вам придеться либо все загружать в память или писать нечто системы копирования из файла в новый файл - если надо удалить/изменить что-то: то читаем певый файл по строчно и пишем во второй(что бы не грузить память телефона). Встретили строку которую надо удалить - просто не записываем ее в файл или пишем измененную строку. но тут скорее всего будут проблемы с производительностью. если надумаете юзать файлик большого размера то лучше бинарик, а не XML - чтобы не было дополнительных расходов на теги. но это еще надо думать - какое из двух зол меньшее. |
|||
|
||||
Цербер |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: 1 Всего: 1 |
hamsterKSU если я правильно понял Вы предлагаете, принимать нформацию из вне телефона, т.е. с сервера, если так, то это не подходит=( софтина должна работать без инета. такова моя задумка =) начал изучение с конкретной задачи что бы не терять времени на бесполезное знакомство с тем что может и не пригодится а на практике полюбому узнаешь то что нужно для выполнения задачи и гугль и форум в помощь =)
это я выяснил =) софтина будет readonly - менять данные xml врятли будет. |
||||
|
|||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 10 Всего: 28 |
Единственный нормальный способ это RMS. А уж туда пихайте XML, CSМ чего - хотите. Есть минус - ограниченность размера, правда его можно обойти увеличивая количество RMS'ов (спецификация допускает минимум то ли 16 то ли 32 RMS'а)
В противном случае придется отвалить баблосы за подписывание мидлетов (кстати все равно это не поможет) - поскольку при каждом обращении к файловой системе бедному юзеру придется жать кнопки типа "Да, я действительно хочу", "Да-да я на самом деле хочу" "Точно-точно хочу!" - прочитать злосчастный файлик. Избавится от этого можно только единственным способом получить цифровую подпись уровня Vendor - что для простого смертного практически нереально. Да и добавим, что JSR-75 (работа с файловой системой) - не все телефоны поддерживают. -------------------- Aut viam inveniam aut faciam |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Э.. не вводите в заблуждение людей. Подпись как раз и дает возможность убрать эти запросы. Другое дело, что вы можете не указать в jad и/или манифесте параметр: MIDlet-Permissions/MIDlet-Permissions-Opt и/или пользователь может не знать, что в настройках мидлета можно изменить частоту этих запросов |
|||
|
||||
ivanovpv |
|
||||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 10 Всего: 28 |
Не-а не ввожу людей в заблуждение... Для того, чтобы убрать запросы обращения к файловой системе нужно получить подпись уровня Vendor (читай одобренного Nokia и проч.)
Как показывает опыт получить подпись уровня Vendor очень сложно (практически невозможно) - даже всякие разные банковские аппликухи не имеют такого (с их то баблосами и возможностями). Так что простому смертному остается получить Non-Trusted Third Party и терпеливо жать кнопочки: "да-да, я правда хочу!" -------------------- Aut viam inveniam aut faciam |
||||
|
|||||
Окунь |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 8.2.2007 Где: Москва Репутация: 2 Всего: 2 |
ivanovpv Это как раз то, о чем выше писал eugine_s. Т.е., если мидлет подписан купленным сертификатом у Thawte или Verisign, то мидлет будет помещен в trusted 3rd party domain. Следовательно, в настройках мидлета у пользователя будет возможность разрешить доступ к файловой системе без всяких надоедающих вопросов |
|||
|
||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 10 Всего: 28 |
Сразу видно, что не пробовал... А ты попробуй ![]() ![]() обратите внимание на сноску:
то бишь нажимать "да-да хоцу!" Это сообщение отредактировал(а) ivanovpv - 5.10.2009, 14:19 -------------------- Aut viam inveniam aut faciam |
|||
|
||||
Окунь |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 8.2.2007 Где: Москва Репутация: 2 Всего: 2 |
Проверил на Nokia 6300: у подписанного мидлета в настройках появляется пункт "разрешить", как и было указано в документации. Уверен, что на большинстве нокиевских телефонов будет аналогичное поведение. Где подвох? |
|||
|
||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 10 Всего: 28 |
Разрешить что? Если сетевое соединение - спрашивает только 1 раз, а если файловое должен спрашивать каждый раз. -------------------- Aut viam inveniam aut faciam |
|||
|
||||
Окунь |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 8.2.2007 Где: Москва Репутация: 2 Всего: 2 |
В настройках 6300 есть пункт: "Доступ приложения" -> "Доступ к данным" -> "Чтение данных" (или "Добав. и изменить") -> "Разрешено" Если выбрать этот пункт, то вопросы о доступе к файловой системе не появляются. Только что проверил на мидлете, подписанном сертификатом Thawte |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |