Memory BADA操作系统中的内存管理

Memory BADA操作系统中的内存管理,memory,memory-management,operating-system,smartphone,bada,Memory,Memory Management,Operating System,Smartphone,Bada,我发现很难获得在BADA操作系统中如何进行内存管理的详细信息 是否有人对此有任何信息,或者是否所有智能手机都有类似的内存管理概念?在bada上编程您主要需要处理堆内存。在某些BADAAPI类中,您必须使用自动内存管理(Osp::Base::Collection可以根据需要释放其元素的内存;在Osp::Ui::Container中,方法RemoveControl()将释放其子级的内存) 但一般情况下需要自己处理内存。 BADA内存管理遵循常规C++内存处理策略< /强> < /P> 应用程序总是

我发现很难获得在BADA操作系统中如何进行内存管理的详细信息


是否有人对此有任何信息,或者是否所有智能手机都有类似的内存管理概念?

在bada上编程您主要需要处理堆内存。在某些BADAAPI类中,您必须使用自动内存管理(
Osp::Base::Collection
可以根据需要释放其元素的内存;在
Osp::Ui::Container
中,方法
RemoveControl()
将释放其子级的内存)


但一般情况下需要自己处理内存。

<内存> BADA内存管理遵循<强>常规C++内存处理策略< /强> < /P> 应用程序总是负责删除它分配的内存(每次调用new都必须有 对称调用(删除)

运行时BADA中的内存分为:

静态内存 :由编译器分配,并且在运行时是应用程序二进制文件的一部分

堆栈内存:操作系统在运行时为正在运行的程序创建和释放函数激活帧时分配和释放内存

堆内存:根据程序请求动态分配和释放

对象所有权责任

与内存分配和对象相关的另一个小但重要的复杂问题 构造是指有时框架方法需要框架进行分配和 将新对象返回到调用应用程序

但是,一旦对象由框架返回,并且对象被传递到 调用方的所有权,框架不再知道对象何时完成

在这种情况下,分配和释放内存的简单规则应该始终执行 对称性不再成立

那么,对于应用程序程序员来说,问题是要知道应用程序或 框架,应负责清理给定对象

在BADA中,通过一个简单的命名约定,几乎可以轻松地解决这个问题 关联规则

惯例

在方法名称中尾随“N”,例如:Sometype()到SomethingN()

统治

调用方始终负责删除框架方法返回的对象
以结尾的'N

命名,但有一些例外。当您使用
new
分配控件并将其添加到容器(即面板)时,您将放弃所有权。当UI被拆除时,框架会释放它们。此外,IList::RemoveAll(true)释放所有包含的对象。