Ответ 1
В Android нет взлома.
Но есть несколько помощников и фрагментов, которые упрощают/упрощают привязку C-Java для файлов mmap:
- util-mmap, Apache License 2.0, здесь является проблемой поддержки Android.
- Использование файлов с памятью и JNI для обмена данными между программами Java и С++ или проще с помощью таких инструментов, как javacpp?
- Похоже, что tomcat реализовал помощник (jni.MMap), который может отменить/удалить файл mmap
Смотрите util-mmap в действии, очень просто:
public class MMapTesting {
public static void main(String[] args) throws IOException {
File file = new File("test");
MMapBuffer buffer = new MMapBuffer(file, 0, 1000, FileChannel.MapMode.READ_WRITE, ByteOrder.BIG_ENDIAN)) {
buffer.memory().intArray(0, 100).set(2, 234);
// calls unmap under the hood
buffer.close();
// here we call unmap automatically at the end of this try-resource block
try (MMapBuffer buffer = new MMapBuffer(file, FileChannel.MapMode.READ_WRITE, ByteOrder.BIG_ENDIAN)) {
System.out.println("length: " + buffer.memory().length());
IntArray arr = buffer.memory().intArray(0, buffer.memory().length() / 8);
// prints 234
System.out.println(arr.get(2));
}
}
}