Мне очень сложно получить информацию о том, как Управление памятью выполняется в ОС BADA.Управление памятью в операционной системе BADA
Кто-нибудь есть информация об этом или сделать все смартфоны имеют аналогичные управления концепции памяти?
Мне очень сложно получить информацию о том, как Управление памятью выполняется в ОС BADA.Управление памятью в операционной системе BADA
Кто-нибудь есть информация об этом или сделать все смартфоны имеют аналогичные управления концепции памяти?
Управление памятью в BADA следует за обычной политикой обработки памяти C++ .
Приложение всегда отвечает за удаление памяти он выделяет (каждый вызов новых должен иметь симметричный вызов для удаления)
памяти в Баде во время выполнения делится между:
статической памятью : Назначается компилятором и является частью двоичного кода приложения во время выполнения.
Stack память: Выделен и освобождается во время выполнения операционной системы как активация функции кадров для запущенной программы создается и выпускается
Heap память: Выделена и освобождается динамически в соответствии с просьбой программой.
Обязанность собственность объекта
Еще маленькое, но важное, осложнение, связанное с выделением памяти и объектные строительства является то, что иногда рамочными методы требуют рамок для выделения и возвращают новый объект приложения вызова.
Однако, как только объект возвращается фреймворком, и объект передается в собственность владельца вызывающего объекта, фреймворк больше не знает, когда объект закончен.
В этом случае простое правило, что распределение и освобождение памяти всегда должно быть выполнено, симметрично больше не удерживается.
Проблема для программиста приложений заключается в том, чтобы знать, должно ли это приложение или инфраструктура нести ответственность за очистку данного объекта.
Эта задача решается почти тривиально BADA с помощью простого именования и связано правило
конвенции
Продольный «N» в имени метода, например: SomeType() в SomethingN()
Правило
Вызывающий абонент всегда несет ответственность за удаление объектов, возвращенных каркасным методом , названный в качестве конечного «N
Программирование на bada вам в основном приходится иметь дело с кучей памяти. В некоторых классах bada-API вам необходимо использовать автоматическое управление памятью (Osp::Base::Collection
может освобождать память своих элементов, если вы хотите, в Osp::Ui::Container
метод RemoveControl()
освободит память его ребенка).
Но в общем случае вам необходимо освободить память памяти самостоятельно.
Некоторые исключения из этого. Когда вы выделяете элементы управления с помощью 'new' и добавляете их в контейнер (то есть панель), вы отказываетесь от владения. Рамка освобождает их, когда пользовательский интерфейс срывается. Кроме того, IList :: RemoveAll (true) освобождает все содержащиеся объекты. –