Android-Android4.x用のRAMDisk / RAMdriveを作成することは可能ですか?



Android Is It Possible Create Ramdisk Ramdrive



解決:

あなたがするならあなたが気付くべき猫/ proc / filesystems tmpfs 。だからあなたがにアクセスできるならマウントコマンド、あなたはできるはずです

  1. ディレクトリを作成します(mkdir MYDIRECTORY)
  2. そこにtmpfsファイルシステムをマウントします(mount -t tmpfs tmpfs MYDIRECTROY)

デフォルトでは、tmpfs-mountはシステムで使用可能なRAMの半分を使用します。したがって、「自動拡張」ではなく「自動縮小」と考えることができます。つまり、使用すればするほど、使用できるRAMは少なくなります。最悪の場合、システムがスワッピングを開始する可能性があります(これは望ましくありません)。オプションを使用して、そのマウントに異なるRAMサイズを使用できます。



2017-02-28更新:Androidによって課せられた制限により、すべてのアプリに書き込み可能な下のマウントポイントを選択する必要があります。 SDカードのように。


OPが同封したリンキーから、重要な部分はそれを要約しました:



tmpfsは、バージョン2.4以降のLinuxカーネルでサポートされています。[3] tmpfs(以前はshmfsとして知られていました)は、 起動時に使用されるramfsコード

私の強調、それがRAMDiskの目的です!これにより、カーネルはルートファイルシステムを一時的にマウントし、起動時に必要なスクリプトを実行し続けることができます。

同じことがAndroidのこの場合にも当てはまります。にフラッシュされるboot.img/ bootパーティションは、Odin、fastboot、Kies、Sony Update Software、Heimdallなどによるものであるかどうかにかかわらず、「ramfsコード」を含みます。これには、関連するものを含むディレクトリ構造が含まれます。



  • デバイスファイルの場合は/ dev
  • システムバイナリの場合は/ sbin
  • デバイスファイルとの対話の使用法については/ sys / procがマウントされました

起動スクリプトは、ramfsディレクトリ構造を読み取り、マウントに成功した後にマウントします。/ systemは起動の非常に早い段階にあります。

質問のOPのキーワードに関連して:

自動成長を作成します...

それ自体は自動拡張されません。むしろ、ramfs構造と使用可能なRAMの量によって制限され、さらに重要なことに、再起動すると消えます。

混乱は、「RAMDisk」と「RAMDrive」を同じ意味で混合することから生じます。 技術的にはRAMDriveは、ネイティブスワップパーティションのスワップスペースであり、 一般的に見られる デスクトップLinuxの場合 RAMDriveが使用されていた古いDOSの時代を考えている場合は、メモリに常駐するディスクドライブをシミュレートし、そのディスクにコピーしてより高速にロードするとプログラムが実行されます。 速く実行されない 、古いMFM / RLLディスクドライブからロードするのではなく( これらのドライブでDOSディレクトリリストのスクロールが非常に遅いのを見たことがありますか? )これは、RAMDiskとしても知られていました! (さらに悪いことに、当時、さまざまなメーカーがRAMDRIVE.SYSまたはRAMDISK.SYSを作成していました!)

Linuxカーネルの観点から見ると、デスクトップとAndroidの両方で、RAMDiskは tmpfs 、ただし、通常のユーザーがデータ/ドキュメントなどを保存することは意図されていません。これは、カーネル自体が使用するためだけのものです。

編集

以下の@nilのコメントに注意するために、yesをマウントできますが、コストとリソースが割り当てられます。tmpfsは半分になり、残りのRAMの残りの半分を使い果たします。現実的に言えば、デバイス上で実行されているAndroidの観点から説得するのは理想的な方法ではありません。

それは/ sdcardが入ってくる お店 その理由だけでユーザーデータ/ドキュメント、それゆえ私はあなたができるという事実を省略したのですが、それでもまた、 どうして

  • エンドユーザーがデータを適切な場所に保存するのを忘れた場合はどうなりますか?再起動するとデータが失われるためです!