Вызов функций java из нативного кода

158
28 июня 2018, 11:20

Необходимо переписать java код на c++ в Android Strudio.Интересуют вопросы:

  1. Как из c++ вызвать функции java например new Random
  2. Как из c++ вызвать и работать с библиотеками ava например picasso
  3. Как в c++ определить интерфейсы(обратный вызов,слушатели), а в java их использовать
Answer 1

Пример создания объекта Random в нативном коде и вызова его метода

jclass cls = env->FindClass("java/util/Random");
jmethodID ctor = env->GetMethodID(cls, "<init>", "()V");
if (NULL == ctor) return NULL;
jobject rndObj = env->NewObject(cls, ctor);
jmethodID nextInt = env->GetMethodID(cls, "nextInt", "()I");
if (NULL == nextInt) return NULL;
jint rndNumber = env->CallObjectMethod(rndObj, nextInt);

Работа с классами из сторонних библиотек осуществляется аналогично. А интерфейсы, очевидно, в нативном коде не определяются.

READ ALSO
парсинг пакета tcp/ip

парсинг пакета tcp/ip

есть клиент который принимает поток byte[] необходимоиз него формировать отдельные массивы по параметрам

210
Небольшой вопрос про javafx

Небольшой вопрос про javafx

В javafx, а конкретнее в linechart есть 2 шкалы (x и y)Я хочу в названиях шкал вставить сложную формулу (вместо фи(т) добавить в него еще, например, степень)

219
Помогите с циклом

Помогите с циклом

Почему, если дело доходит до цикла, он исполняется вечноПомогите исправить

146
Может ли абстрактный метод находиться в неабстрактном классе?

Может ли абстрактный метод находиться в неабстрактном классе?

Поясните пожалуйста момент с UML диаграммы:

176