Показать сообщение отдельно
Старый 22.12.2011, 20:22   #22
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Работа музыки и ресурсных файлов

Ну тоже внесу свою лепту в дискуссию.

Для того, чтобы узнать, сколько данных можно загрузить в память, пока он не повиснет, можно так:

1. Создаем некий графический массив (около 500 элементов)

2. Создаем цикл, который загружает изображение (что угодно) размером 120х120 в массив, и выводит цифру УЖЕ загруженных в память изображений.

3. Ждем, пока телефон не сдохнет. Следует запомнить последнюю цифру

4. С учетом того, что обычно 1 пиксель занимает 4 байта, 1 изображение кушает 120*120*4=57600 байт. Умножаем на количество успешно загруженных изображений.

Да, это тупо способ, однако даёт весьма точную оценку общей памяти.

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

Насчет того, сколько занимает переменные:
Integer - 4 байта
Real - незнаю, честно. надо погуглить :В
String - по 2 байта каждый символ (ибо ява юзает Юникод, таки да)
Char - 1 байт
Boolean - 1 бит (что какбэ очевидно)

К сожалению, автор, видимо решил, что такой тип как Byte никому не нужен, и он отсутствует в мидлет паскале. А зря.


Насчет вместимости хранилища - туда можно записать до фига всего. Лишь бы памяти на телефоне хватило.


"5.Где-то тут же на булке видел что для некоторых телефонов для пикселя есть параметр "прозрачность". "
Сейчас прозрачность есть практически в любом телефоне.
Любое изображение, вне зависимости, если там хоть 1 прозрачный пиксель, будет иметь альфа канал, описывающий прозрачность каждого пикселя. Средствами самого мидлетпаскаля нельзя работать с альфа каналом, но зато можно с помощью библиотек.

"6.Посоветуйте книжки/учебники по java . не сильно замудреные, понятные."
Я и сам такие ищу. Как найду - сообщу :В

"7.Какие штуки умеют замерять скорость работы алгоритмов"
Можно просто взять, изамерить время (в миллисекундах) на выполнение алгоритма Оо. Стандартные функции МП:
  
   a:=GetRelativeTimeMs;
.....некий алгоритм.......
   b:=GetRelativeTimeMs;
   c:=b-a;
c - это и есть время выполнения.

"9.Есть ли какой-нибудь список оптимальных алгоритмов , которым можно было бы пользоваться хотя бы для стандартных случаев ??? "

Ну тебе может пригодиться алгоритм "сортировки-прорисовки" (не знаю, как это правильно называется), чтобы первыми прорисовывались те объекты, которые находятся выше (а не так, чтобы солнце затмевало тучу, и так, что бы камень, стоящий за деревом, прорисовывался позади него, а не поверх). Если интересно, могу раскрыть по подробнее эту тему.

Потом еще может понадобится алгоритм сжатия информации, для пущей оптимизации. Хотя он нужен довольно редко.

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


"12. У меня на телефоне иногда вылетает сообщение - "Недостаточно свободного места - освободите память" . Это при том что на самом деле 1 Мб есть ( у меня всего 10 Мб под пользовательские файлы ). фигли он жалуется , раз место есть ???" скорее всего имеется ввиду оперативная память. А может, просто телефон тупит. "Попробуй выключить и снова включить"(с), так как мой телефон таким образом лечиться.
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
bormotan (22.12.2011)