![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| Green_DiCk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 1.11.2006 Репутация: нет Всего: нет |
Сабж. Нужно выяснить объём всей памяти телефона, которая может быть использована для RMS-хранилища. Немного поясню суть задачи. Хочу, чтобы мой мидлет определял сколько всего RMS-памяти доступно в телефоне (для всех мидлетов) и брал под свои нужды скажем 20 %. Функция RecordStore.getSizeAvailable() возвращает свободное место в _конкретном_ RMS-хранилище, созданном ф-цией RecordStore.openRecordStore("MyStore", ...). Но это как вы понимаете не то, т.к. можно с тем же успехом создать ещё одно хранилище... И где "потолок" не ясно. Чтобы его определить можно запустить цикл, создающий новые RMS-хранилища до тех пор, пока не вылетит RecordStoreFullException. Однако всё равно не ясно - будет ли полученный таким образом размер памяти означать память, доступную для моего мидлета или всю память телефона. |
|||
|
||||
| ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 10 Всего: 28 |
Green_DiCk,
Спецификация MIDP определяет минимальное количество RMS - по-моему их то ли 16 то ли 8 (посмотри на спецификацию). Я создавал для интереса до 1000 RMS'ов на Nokia S60 - проблем не было. Функция getSizeAvailable() - возвращает пространство свободное для одного RecordStore и должна использоваться перед добавлением записи в таблицу. Как правило для пустого RMS это что-то порядка 100 кб. - в любом случае это зависит от реализации (читай модели телефона). Спецификация не определяет максимальный размер - установлен минимальный размер - не менее 8 кб. А по последнему вопросу - нет, размер выделяемый для RMS и память телефона вещи разные (хотя и связанные). Гарантий, что взяв под RMS всю память даваемую MIDP будет утилизирована вся память телефона - никаких. В Нокиевском эмуляторе по-моему даже вручную можно выделить размер памяти отводимую под RMS. Это сообщение отредактировал(а) ivanovpv - 8.10.2009, 13:28 -------------------- Aut viam inveniam aut faciam |
|||
|
||||
| Green_DiCk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 1.11.2006 Репутация: нет Всего: нет |
ivanovpv, спасибо за разъяснения.
а всё-таки вопросы по поводу организации RMS-хранилища остались. они уже скорее риторические, но тем не менее. рассмотрим например реализацию, где каждый мидлет может создавать 20 RMS-хранилищ с объёмом 200 кб. Что будет, если юзер установит на мобилу X мидлетов, каждый из которых будет занимать всю доступную ему RMS память? Если X велико, то RMS-памяти явно на всех не хватит. Тогда получится так, что несколько мидлетов (например Y) захавают всю память, создав по 20 хранилищ, Y+1 мидлету достанется уже не 20, а меньше хранилищ, а Y+2й и остальные мидлеты вообще ничего не получат. Несправедливо получается. Или размер хранилищ не фиксирован? |
|||
|
||||
| ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 10 Всего: 28 |
1) По-моему абсолютно нормальная ситуация. А чем она принципиально отличается то того, что юзер (мидлет) забил общий диск (читай память телефона) своими данными, так что следующему юзеру (мидлету) не хватает дискового пространства (памяти телефона)? 2) Если быть совсем точным то RMS выделяется не на Midlet, а на Midlet Suite - ну и к тому же RMS'ы можно делать разделяемыми между различными Midlet Suite - посему одно приложение может использовать (если разрешено) данные RMS другого приложения 3) Вообще все сильно зависит от реализации. Например, стандартный Sun Wireless Client который рекомендован Sun для портирования на мобильные устройства (по-моему его реализуют смартфоны HP iPaq) - минимальный размер RMS 64 кб, максимальный (на все мидлет сьюты) = 1 мб., а максимальный размер на 1 мидлет сьют всего 200 кб. А для Nokia S60 максимальный размер на 1 мидлет сьют 8 мб., для S40 - что-то чуть больше 100 кб. в общем смотрите документацию - все это изложено на сайтах производителей телефонов. -------------------- Aut viam inveniam aut faciam |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |