JNI - Как создать библиотеку для разных классов - PullRequest
0 голосов
/ 17 июля 2010

Я новичок в JNI, я разрабатываю нативную библиотеку для проекта Android.Я читал некоторые статьи о программировании JNI, но я не понял, возможно ли создать библиотеку, которая может быть загружена в разные классы проекта с разными пакетами.Я прочитал, что для объявления нового метода JNI используется следующий синтаксис:

  • префикс "Java _"
  • закодированное полное имя класса
  • знак подчеркивания ("_") разделитель
  • закодированное имя метода

На основании этого определения это не должно быть возможным ...

Предположим, я определил класс A впакет pkg1 с нативным методом foo, содержащимся в libfoo, а затем я определил класс B в пакете pkg2.Могу ли я использовать libfoo и метод foo в B?Как определить родной метод для достижения результата?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 июля 2010

На Android рекомендуемый способ регистрации нативных заключается в использовании RegisterNatives () JNI, потому что это быстрее, чем механизм поиска Java_ *.

И, таким образом, вы сможете зарегистрировать один и тот же нативный метод в нескольких классах / пакетах, если хотите.

0 голосов
/ 17 июля 2010

Проверьте генератор заглушки JNI: http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/tooldocs/windows/javah.html

...