Общая идея android приложений - это dalvik bytecode (обычно это java) виртуальная машина, но разрешается использовать нативные библиотеки
Соответственно пишешь минимальное приложение на java (пусть даже без gui, а вывод при необходимости делать в системные логи), которое первым делом подключит библиотеку, которую так же помещаешь в apk.
Исторически это называется java native interafce, позволяет навести мосты между java приложением и нативным c/c++.
дока -
https://developer.android.com/studio/projects/add-...
немного про android jni -
https://developer.android.com/training/articles/pe... там же слева смотри ссылки как собирать
Это очень трудоемкий путь, помимо того что придется пробираться через дебри jni прослойки и ограничений, понадобится поддерживать все многообразие железа (архитектур) причем как 32-битных так и 64-битных, где уже на этапе их сборки и отладки появится миллион проблем, т.е. не только x86 но и arm, причем последний это не пара а много
много - arm64-v8a , armeabi , armeabi-v7a ... (больше если надо поддерживать старое железо)