【问题标题】:Blackberry Memory Low issue on Phonegap applicationPhonegap 应用程序上的黑莓内存不足问题
【发布时间】:2012-10-22 11:41:26
【问题描述】:

我正在为 BlackBerry 6.0+ 设备开发 JQM + Phonegap 应用程序。 在应用程序中,我需要以 Base64 编码格式将图像上传到服务器。

我正在使用 HTML5 画布元素执行此操作。 当应用程序尝试执行上述操作时,我得到一个内存不足的错误,在此之后应用程序立即退出。应用程序图标也在此之后发生变化。 我正在使用 WebWorks SDK 2.3 和 phonegap 1.7 版。

我浏览过黑莓论坛,内存问题似乎是一个已知问题。 有没有其他方法可以执行此操作以避免此错误?

此问题特定于 6.0 BB 设备。 相同的应用程序在 7.0 设备上运行良好。

【问题讨论】:

  • 您是否在应用程序中使用任何地图功能?
  • 不,我没有使用任何地图功能..
  • 设备中的内存可能较少(不是 SDCard)。删除 6.0 设备中的一些应用程序,然后重试。

标签: javascript cordova jquery-mobile blackberry


【解决方案1】:

试试

  1. 从您的配置文件中删除此代码(包括开始和结束标记)

    rim:导航模式=“焦点”

    功能 id="blackberry.ui.dialog"

  2. 动态加载脚本并在脚本加载并准备就绪时执行回调函数以上传图像,这种行为最可能的原因是您包含在 html 页面中的资源在应用程序关闭时没有释放。另外,黑莓的警戒线插件是一个巨大的资源,所以它应该会占用很多内存。

    function loadScript(url, callback)
    {
        // adding the script tag to the head as suggested before
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src=url;
        // then bind the event to the callback function 
        // there are several events for cross browser compatibility
        script.onreadystatechange = callback;  // not working on OS5
        script.onload = callback;  // not working on OS5
        // fire the loading
        head.appendChild(script);
    }
    
  3. 如果您的应用在安装或卸载应用时未清除设备存储或本地存储或设备存储,则您必须对此进行编码(对于 iOS 和 android 应用自动完成)。

以上三个降低了设备内存不足错误的概率。

从最终用户的角度来看,如果应用不使用嵌入式媒体,请取消勾选或取消选择“使用嵌入式媒体”

如果与服务器通信,您可能需要重构代码以减少执行代码的平均时间,并采用一些压缩算法来减少网络过载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多