передать указатель на Java с помощью NDK на Android

1

Я хочу использовать memset в программе Android. Я пытаюсь NDK кодировать в C, а затем использовать библиотеку в моей программе JAVA Android.

вход memset - это *ptr.i хотите отправить адрес памяти (например, 0x8134) для программирования, а затем использовать memset для его изменения. Как я могу отправить это в свою программу?

Теги:
android-ndk

1 ответ

1

Во-первых, как вы знаете, Java не имеет понятия указателей и, следовательно, не может реально выделять/использовать область памяти с помощью указателей (на которых необходимо использовать memset).

Тем не менее, можно использовать ByteBuffer.allocateDirect для получения прямого байтового буфера, адрес которого может использоваться на стороне JNI для выполнения операций с прямой памятью. Кроме того, вы можете напрямую выделить память в собственном коде и передать ее обратно в код Java как ByteBuffer. Это ближе всего к доступу/манипуляции с памятью типа C/C++.

Подробнее:
http://onjava.com/pub/a/onjava/2002/10/02/javanio.html?page=2
http://docs.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню