mrc_exRamDetect是一个同步函数, 当这个函数返回时,说明内存检测已经完成。 在检测过程中会调用 应用提供的cb来提供进度。 有时候ratio到了100后会重新开始检测, 导致ratio会变小。 内存检测可能会导致死机, 但是再次进入时 mrc_exRamDetected() 肯定会返回 MR_SUCCESS。 这些信息需要在UI上提示用户。 2. enable/disable扩展内存: 在默认的情况下, 扩展内存是不被使用的。 #include "mrc_base.h" extern int32 mrc_exRamInitEx(int nBytes); 调用这个接口, SDK将尽量的准备好 >= nBytes的扩展内存。 参数: nBytes -- 需要的扩展内存的大小。 单位为Byte。 返回值: 可以不理会这个返回值。 用 mrc_getMemStatus接口来判断内存是否足够。 extern int32 mrc_exRamRelease(void); 在mrc_exitApp()里必须调用这个接口将扩展内存释放给系统。 3. malloc和free扩展内存: 不管扩展内存是否被启用, malloc都*不*会在扩展内存分配内存 #include "mrc_base.h" extern void* mrc_exRamMalloc(int size); 这个函数分配内存的规则是: 如果扩展内存enabled, 那么先从扩展内存中分配, 如果分配失败,再从主内存里分配。 如果扩展内存没有被enabled, 或者调用 mrc_exRamInitEx()但是没有找到合适的区域, 那么这个函数的作用和malloc完全一致。所以这个函数是兼容malloc的。 extern void mrc_exRamFree(void *address); 这个函数会根据所释放的地址所属的内存块进行释放。 兼容free。 extern void* mrc_exRamMallocOnly(int size); (责任编辑:凌云神风) |