Итак, вот что я хочу сделать. У меня есть сторонний собственный исполняемый файл, который порождается моей активностью. Активность и собственный исполняемый файл взаимодействуют через TCP. Дело в том, что стороннее приложение использует libusb и поэтому требует root. Поэтому я подумал, что возможно написать оболочку libusb-java с тем же интерфейсом, что и исходная libusb, но вместо этого использующую Android USB Host API. Поэтому я мог бы просто связать исполняемый файл с моим libusb-java, не меняя его, и он использовал бы Android USB Host API. Проблема в том, что если я хочу написать libusb-java, мне нужно иметь доступ к JVM изнутри библиотеки (которая будет динамически загружаться при запуске стороннего исполняемого файла), но поскольку это не будет связан на стороне Java, у меня нет доступа к нему. Есть ли простой способ вызвать некоторый код Java из собственного исполняемого файла, который не связан с действием (возможно, отражением?). Любые идеи?
Например: если мой собственный двоичный файл вызывает *libusb_open()*, он на самом деле вызывает *libusb_open()* из libusb-java, который, в свою очередь, должен вызывать openDevice() из android.hardware.usb.UsbManager, а не исходная прямая нативная реализация. (я упрощаю, но это основная идея)