Управление памятью в BADA следует обычной политике обработки памяти C ++ .
Приложение всегда отвечает за удаление памяти, которую оно выделяет (каждый вызов new должен иметь
симметричный вызов для удаления)
Память в BADA во время выполнения делится на:
Статическая память
: Назначается компилятором и является частью двоичного файла приложения во время выполнения.
Память стека : выделяется и освобождается во время выполнения ОС, когда создаются и освобождаются кадры активации функции для работающей программы
Кучи памяти : выделяется и освобождается динамически в соответствии с запросом программы.
Обязанности по владению объектом
Еще одно небольшое, но важное осложнение, связанное с распределением памяти и объекта
конструкция заключается в том, что иногда рамочные методы требуют, чтобы структура выделяла и
вернуть новый объект вызывающему приложению.
Однако, как только объект возвращается платформой, и объект передается в
владение вызывающей стороной, фреймворк больше не знает, когда объект заканчивается.
В этом случае простое правило, что выделение и освобождение памяти всегда должно выполняться
симметрично больше не держится.
Проблема для программиста приложения состоит в том, чтобы узнать, является ли приложение или
рамки, должны отвечать за очистку данного объекта.
Эта проблема решается почти тривиально в BADA с помощью простого соглашения об именах, и
соответствующее правило
* * Конвенция 1035
Завершая "N" в имени метода, например: от Sometype () к SomethingN ()
Правило
Вызывающий всегда отвечает за удаление объектов, возвращаемых методом каркаса.
назван с последним ‘N