Управление памятью в операционной системе BADA - PullRequest
0 голосов
/ 20 февраля 2012

Мне очень трудно получить подробную информацию о том, как управление памятью осуществляется в ОС BADA.

Кто-нибудь имеет какую-либо информацию об этом или делает все smart-телефоны имеют схожие концепции управления памятью концепций?

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Управление памятью в BADA следует обычной политике обработки памяти C ++ .

Приложение всегда отвечает за удаление памяти, которую оно выделяет (каждый вызов new должен иметь симметричный вызов для удаления)

Память в BADA во время выполнения делится на:

Статическая память : Назначается компилятором и является частью двоичного файла приложения во время выполнения.

Память стека : выделяется и освобождается во время выполнения ОС, когда создаются и освобождаются кадры активации функции для работающей программы

Кучи памяти : выделяется и освобождается динамически в соответствии с запросом программы.

Обязанности по владению объектом

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

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

В этом случае простое правило, что выделение и освобождение памяти всегда должно выполняться симметрично больше не держится.

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

Эта проблема решается почти тривиально в BADA с помощью простого соглашения об именах, и соответствующее правило

* * Конвенция 1035

Завершая "N" в имени метода, например: от Sometype () к SomethingN ()

Правило

Вызывающий всегда отвечает за удаление объектов, возвращаемых методом каркаса. назван с последним ‘N

1 голос
/ 20 февраля 2012

При программировании на bada вам в основном приходится иметь дело с кучей памяти.В некоторых классах bada-API вам придется использовать автоматическое управление памятью (Osp::Base::Collection может освободить память его элементов, если вы захотите; в Osp::Ui::Container метод RemoveControl() освободит память его потомка).

Но в большинстве случаев вам нужно самостоятельно справиться с освобождением памяти.

...