問題タブ [ashmem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - アシュメムの解放方法
ashmem の割り当てと使用はうまく機能します。
しかし、問題は、使用後にマップを解除するだけで十分なのか、それともメモリを再度解放するためにさらに何かをする必要があるのかということです。
android - ashmem への書き込み / なぜ android は ashmem を無料にするのですか?
2 つの (ndk-) プロセス間でデータを共有したいと考えています。このために、このソースを使用してashmemを使用します。
1 つのプロセスが継続的に読み取り ( read_mem
)、1 つのプロセスが 1 回書き込みを行っています ( write_mem
)。
問題は、読み取りプロセスがライターの値を取得していないことです。
と
リーダーのマップを見ると、android が の直後に共有メモリ ファイルを削除することがわかりましたashmem_create_region
。
read_mem.c
write_mem.c
出力は次のとおりです
。
書き込み
読み直すVALUE = 0x0
(リターンキーを押す)
読者の地図を見る:
ご覧のとおり、まだ生きている間test_mem
に削除されます。 read_mem
その他の情報
両方のファイルは、androidndk-build
コマンドを使用して実行可能ファイルとしてコンパイルされます
デバイス: LG Nexus 4 (AOSP Lollypop)存在すること
を確認/dev/ashmem
しました。ここ
から撮影
java - Android: ネイティブ コード (C) とアプリケーション (Java) の間でデータを共有する
私はAndroid 5.0で実行されているネイティブアプリを持っています。これは実際にはオーディオエフェクトであり、カムコーダーのレコーディングユースケースで起動されます(たとえば)。常に変化する 3 つの整数正確なデータを取得する必要があるアプリケーションがあります。
これらのデータをネイティブ プロセスからアプリケーションと共有するにはどうすればよいですか?
オプションは何ですか?
ashmem を調べましたが、私の場合の例が見つかりません。データをファイルに書き込んで jni から読み取ろうとしましたが、この読み取り関数を起動すると、ネイティブ関数の痕跡は見られません ( jni 自体) 一定の乱数を取得します... (ただし、クラッシュはありません)
ありがとう、ピエール
android - プロセス マップでの /dev/ashmem (削除済み) レコードの意味
の次のレコードの意味は何だろうと思っています/proc/<pid>/maps
:
特にどういう(deleted)
意味ですか?このメモリ範囲はプロセス内の何かによって保持されており、後で解放する必要がありますか?またはこれらのレコードは単なるマーカーであり、関連付けられた物理メモリはありませんか? mmap()
つまり、そのような範囲と交差するマッピングを返すために単純に呼び出すことができますか?
PS 範囲名は若干異なる場合がありますが、常に含まれています/dev/ashmem ... (deleted)
。