Транслирует экран Android-устройств на компьютер и позволяет управлять ими через USB или TCP/IP без root-доступа и установки приложения на устройство.
facebookincubator/fbjni
C++-библиотека, упрощающая вызов Java-кода из нативного кода через Java Native Interface (JNI).
- Звёзды
- 337
- Форки
- 53
- Открытые issues
- 17
- Последний коммит
- 8 часов назад
Что это?
fbjni оборачивает низкоуровневый Java Native Interface вспомогательными средствами на C++, чтобы нативный код мог вызывать методы, обращаться к полям и создавать объекты Java с меньшим количеством шаблонного кода. Библиотека автоматически управляет временем жизни локальных и глобальных JNI-ссылок и преобразует исключения между Java и C++ в обоих направлениях — разработчикам не нужно проверять состояние исключений после каждого вызова.
Библиотека также выполняет преобразование типов. Дескрипторы методов выводятся из сигнатур C++, а распространённые типы, например std::string, преобразуются в типы Java и обратно. Классы Java сопоставляются структурам C++, которые наследуются от шаблона JavaClass и объявляют дескриптор соответствующего класса.
Вспомогательные средства созданы для поддержки кроссплатформенного мобильного кода на Android, однако в архитектуре нет зависимостей от Android, и библиотека работает с любой виртуальной машиной Java, поддерживающей JNI. В проекте есть документация по настройке сборок для Android, краткий справочник по возможностям и объяснение причин использовать JNI-обёртку.
Ключевые возможности
- 01Автоматическое управление локальными и глобальными JNI-ссылками.
- 02Преобразование исключений Java и C++ в обоих направлениях.
- 03Вывод дескрипторов методов из сигнатур функций C++.
- 04Автоматическое преобразование между std::string и строками Java.
- 05Сопоставление классов Java типам C++ с помощью шаблона JavaClass.
Сценарии использования
- Вызов Java API из общей кодовой базы на C++ в приложении для Android.
- Встраивание нативных модулей C++ в любое приложение для JVM, использующее JNI.
- Сокращение объёма ручного подсчёта ссылок и проверок исключений в существующем коде JNI.
Быстрый старт
- 1
Прочитайте краткий справочник в docs/quickref.md, чтобы узнать примеры использования, которые можно скопировать и вставить
- 2
Следуйте руководству по настройке сборки Android в docs/android_setup.md
В подборках
Темы
Частые вопросы
- Что такое fbjni?
- C++-библиотека, упрощающая вызов Java-кода из нативного кода через Java Native Interface (JNI). fbjni оборачивает низкоуровневый Java Native Interface вспомогательными средствами на C++, чтобы нативный код мог вызывать методы, обращаться к полям и создавать объекты Java с меньшим количеством шаблонного кода. Библиотека автоматически управляет временем жизни локальных и глобальных JNI-ссылок и преобразует исключения между Java и C++ в обоих направлениях — разработчикам не нужно проверять состояние исключений после каждого вызова.
- fbjni можно использовать бесплатно? Какая у него лицензия?
- fbjni распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- fbjni всё ещё поддерживается?
- Активно поддерживается. Последний коммит в fbjni — 22 окт. 2026 г..
- Для чего можно использовать fbjni?
- Вызов Java API из общей кодовой базы на C++ в приложении для Android. Встраивание нативных модулей C++ в любое приложение для JVM, использующее JNI. Сокращение объёма ручного подсчёта ссылок и проверок исключений в существующем коде JNI.
- Как установить fbjni?
- Прочитайте краткий справочник в docs/quickref.md, чтобы узнать примеры использования, которые можно скопировать и вставить Следуйте руководству по настройке сборки Android в docs/android_setup.md
- Где скачать fbjni?
- Исходный код и инструкции по установке — на GitHub: https://github.com/facebookincubator/fbjni
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
C-библиотека для воспроизведения и захвата аудио: один исходный файл, никаких внешних зависимостей.
Кроссплатформенная библиотека на C++ для фильтрации изображений и видео через OpenGL/ES, с бьюти-фильтрами и эффектами на основе распознавания лиц.
Кроссплатформенный Java-фреймворк для разработки игр на OpenGL ES под десктопы, Android, веб и iOS.
Открытый SDK Google для создания нативно скомпилированных мобильных, веб- и десктопных приложений на единой кодовой базе Dart.
Фреймворк для создания нативных приложений для Android и iOS на React: интерфейс на JavaScript отображается с помощью компонентов платформы.