Как запустить запуск приложений C ++ в Android? - PullRequest
6 голосов
/ 27 мая 2011

Как запускать приложения на С ++ в Android с помощью Cygwin. Любой учебник в этом отношении приветствуется ..

Ответы [ 2 ]

9 голосов
/ 27 мая 2011

Вы не можете напрямую запускать приложения C ++ в Android.
Android может запускать только приложения, написанные с использованием Android SDK, но да, вы можете повторно использовать свои собственные (C / C ++) библиотеки для Android.

Вам придется перекомпилировать все нативные библиотеки специально для Android.И вам нужен исходный код для всех сторонних собственных библиотек, которые вы планируете использовать просто потому, что обычно, когда мы компилируем и связываем эти библиотеки вне Android, они связаны с glibc, но, к сожалению, Android не использует glibc из-за проблем с производительностью и лицензией.Android использует разбавленную версию glibc под названием libc.Он имеет соответствующие имена символов для glibc для большинства обычных функций.Но, насколько я знаю, libc не имеет какой-либо функциональности, связанной со строками, и определенно не имеет поддержки posix.Если ваши нативные библиотеки используют какую-либо устаревшую функциональность, вам придется найти обходной путь для них, используя альтернативную функциональность, поддерживаемую libc, и соответствующим образом кодируя свои библиотеки.

Кроме того, вам придется использовать NDK для взаимодействия Java (Android app / fwk) с собственным миром (C ++).А затем напишите Android-приложение поверх этого.

Хотя это звучит довольно просто, по моему опыту, компиляция нативных библиотек на Android (портирование Android) традиционно занимала много времени без каких-либо гарантий успеха.

0 голосов
/ 27 мая 2011

Вам понадобится собственный интерфейс Java или «JNI».

См. " Wiki интерфейса Java Native * " " Советы по JNI для Android " и ссылки на них. Это какая-то работа, чтобы начать и привыкнуть к тому, как это происходит. Мне это удалось по ссылкам, приведенным здесь с C, и через некоторое время и верой все получится без дополнительной помощи, если вы выполните все шаги.

...