因为项目在wp8上出现了内存泄露的问题,所以进行了如下测试:
1.操作系统windows8, 开发环境Visual Studio 2013;
2.
未被修改过的cocos2d-x 2.2.6版本,打开其中的cocos2d-wp8.vc2012.sln工程;
3.修改HelloCpp-XAML -> HelloCppCoponent中的HelloWorldScene.cpp文件,修改内容如下:
仅修改HelloWorld类的menuCloseCallback函数
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
//CCMessageBox(“You pressed the close button. Windows Store Apps do not implement a close button.”,“Alert”);
CCTextureCache::sharedTextureCache()->addImage(“xxx.jpg”);
CCTextureCache::sharedTextureCache()->removeUnusedTextures();
#else
CCDirector::sharedDirector()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
#endif
}
其中xxx.jpg为任意一张jpg格式的图片,可以尽量选择较大的图片。
menuCloseCallback函数为HelloWorldScene右下角按钮的回调函数,修改之后点击按钮的功能是载入xxx.jpg图片然后又通过removeUnusedTextures函数释放图片资源
4.使用按键精灵不断点击上述按钮,也就是不断加载图片然后又释放资源.
5.随着按钮的不断点击,内存占用会不断提升,发生内存泄露(可以通过HelloWorld界面左上角wp8提供的信息查看内存占用).
请问这个问题怎么解决,谢谢.