0

BlackBerry 6.0+ デバイス用の JQM + Phonegap アプリケーションを開発しています。アプリケーションでは、画像を Base64 エンコード形式でサーバーにアップロードする必要があります。

HTML5 canvas 要素を使用してこれを行っています。アプリケーションが上記の操作をしようとすると、メモリ不足のエラーが発生し、この直後にアプリケーションが終了します。この後、アプリケーションのアイコンも変化します。WebWorks SDK 2.3 と phonegap バージョン 1.7 を使用しています。

Blackberry フォーラムを調べたところ、メモリの問題は既知の問題のようです。このエラーを回避するためにこの操作を実行できる他の方法はありますか?

この問題は、6.0 BB デバイスに固有のものです。同じアプリケーションが 7.0 デバイスで正常に動作しています。

4

1 に答える 1

1

試す

  1. 構成ファイルからこのコードを削除する(開始タグと終了タグを含む)

    リム:ナビゲーションモード=「フォーカス」

    機能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アプリの場合は自動的に行われます)。

上記の3つは、低デバイスメモリエラーの可能性を減らします。

エンドユーザーの観点から、アプリが埋め込みメディアを使用していない場合は、[埋め込みメディアを使用する]のチェックを外すか選択を解除します

サーバーとの通信がある場合は、コードをリファクタリングしてコードの実行に使用される平均時間を短縮し、いくつかの圧縮アルゴリズムを使用してネットワークの過負荷を軽減することをお勧めします。

于 2012-12-04T06:32:04.913 に答える