メモリが限られており、機能のようなスワップファイルがないAndroidで働いています。私は人々がアプリケーションのメモリマップされたファイルを使用する機能のようなスワップファイルを実装しているが、これはどのように動作するのか理解していないことを読んだことがあります。誰か知っていますか?メモリマップファイルをスワップファイルとして使用していますか?
私の考えでは、私のプログラムが20Mbと言ったサイズのint配列を使いたいのであれば、この配列のデータを20Mbファイルに作成し、現在私が読み書きする必要があるファイルの部分を透過的にメモリに持ち込みます。重大な要素は、私が読み書きするスペースが20Mbあるにも関わらず、一度にメモリの中のほんの一部しか記憶されていないということです(Androidアプリは〜24Mbのメモリに限られています)。
私はこれでJavaで作業したいと思っていますが、Cのソリューションも動作します。
編集:このメモリは、マップされたファイルのトリックは、ここで言及されているが、私はそれはjava.nio.MappedByteBufferを使用し、Javaではhttp://grammerjack.blogspot.com/2009/10/gles-quake-port-of-quake-to-android.html
ファイルマップされたメモリをスワップしませんか? – ruslik
Androidにスワップは設定されていません。アプリケーションが動作する方法のために、OSは、メモリが不足するとフォアグラウンドにないものを強制終了することができます。メモリマップファイルは、読み込み専用のデータ(ページは個別に破棄できます)に最適ですが、読み書きを共有してスワップに似た動作をさせることもできます。 – fadden