Я пытаюсь разработать/переносить игру на Android, но на C и Android поддерживает Java, но я уверен, что там должен быть способ получить приложение C, кто-нибудь знает хороший учебник по теме?
Спасибо!
Для тех, кто приходит на это через Google, обратите внимание, что начиная с SDK 1.6 Android теперь есть официальный родной SDK.
Вы можете скачать Android NDK (Native Development Kit) здесь: https://developer.android.com/ndk/downloads/index.html
Также есть сообщение в блоге о NDK:
http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
Android NDK - это набор инструментов, который позволяет реализовать части вашего приложения в собственном коде с использованием таких языков, как C и С++. Для определенных типов приложений это может помочь вам повторно использовать библиотеки кода, написанные на этих языках.
Для получения дополнительной информации о том, как начать работу с родной разработкой, следуйте этой ссылке.
Примеры приложений можно найти здесь.
Обычно вам необходимо:
Если вы хотите продать приложение:
Google выпустила Native Development Kit (NDK) (согласно http://www.youtube.com/watch?v=Z5whfaLH1-E в 00:07:30).
Надеемся, что информация будет обновлена на странице групп google (http://groups.google.com/group/android-ndk), поскольку она говорит, что она еще не выпущена.
Я не уверен, где получить простую загрузку для него, но я слышал, что вы можете получить копию NDK из репозитория Google Git под ветвью пончика.
Официальная позиция, похоже, заключается в том, что это не то, что вы когда-либо хотели "делать". См. этот поток в списке разработчиков Android. Google предусматривает, что Android работает на различных устройствах (процессорах, дисплеях и т.д.). Поэтому лучший способ включить разработку - использовать (переносимый) управляемый код, который нацелен на VM Dalvik. По этой причине Android SDK не поддерживает C/С++.
НО, посмотрите эту страницу:
Android включает в себя набор C/С++ библиотеки, используемые различными компонентами системы Android. Эти возможности предоставляются разработчикам через приложение Android рамки.
Рамка управляемых приложений, как представляется, накладывается поверх этих библиотек. На странице перечислены библиотеки C/С++: стандартная библиотека C, медиа, 3D, SQL Lite и другие.
Итак, все, что вам нужно, это цепочка компилятора, которая будет компилировать C/С++ в соответствующий процессор (ARM, в случае G1). Некоторые краткие инструкции о том, как это сделать, здесь.
Я не знаю, где найти описания API, которые предоставляют эти библиотеки. Я бы предположил, что в SDK могут храниться файлы заголовков, но документация может быть отрывочной/отсутствующей. Но я думаю, что это можно сделать!
Надеюсь, это полезно. Для записи я не писал никаких собственных приложений для Android - всего несколько простых управляемых.
Andy
Google уже запустил Google I/O 2011: запуск сеансов C и С++ для Android, доступный по адресу http://www.youtube.com/watch?v=5yorhsSPFG4
который хорош для понимания использования NDK для написания приложения в c и С++ для android.
Если вы просто хотите скомпилировать какую-либо консольную родную игру и запустить их на Android, то в этой статье показано 3 метода для того же.
1: Статическая компиляция с использованием автономной toolchain
2: кросс-компиляция с помощью инструментальной привязки Android NDKs
3: Кросс-компиляция с использованием исходного кода AOSP
Вы можете использовать nestedvm для перевода C (или других языков GCC) в байт-код Java и использовать это как основу вашего порта, Например, см. порт Android портативной коллекции головоломок Simon Tathams.
Я ожидаю, что этот метод станет устаревшим NDK, но может быть и не в том случае, если некоторые сети или что-то не позволяют людям обновлять свои телефоны.
Возможно, вы ищете это?
Это средний уровень для разработки для нескольких мобильных платформ с использованием С++.
Глядя на это, кажется, что это возможно:
"факт, что поддерживается только язык Java, не означает, что вы не можете разрабатывать приложения на других языках. Это было доказано многими разработчиками, хакерами и экспертами в разработке приложений для мобильных устройств. Ребята из Elements Interactive BV, компании позади Edgelib, удалось запустить собственные С++-приложения на платформе Android, даже если в это время еще много проблем на дисплее и звуке... и т.д. Это включает в себя игру S-Tris2 и демо-версию 3D-анимации Edgelib."
С 2009 года есть развитие по этому вопросу.
Necessitas - Qt (С++ framework) для Android
Начало работы видео.
Я не уверен, что NDK обеспечивает полный охват официального Java API.
Из http://developer.android.com/sdk/ndk/index.html#overview:
Обратите внимание, что NDK не позволяют вам разрабатывать только родные Приложения. Первичный время выполнения остается виртуальным Dalvik машина.
Взгляните на google ndk group, это выглядит многообещающим, первая версия NDK будет доступна в 1П2009.
Обновление: И он выпущен http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
Вы можете скачать c4droid, а затем установить плагин GCC и установить на свой SD. Из оболочки я просто перехожу в каталог, где находится двоичный файл GCC, и затем вызываю его, чтобы сделать исполняемый файл на борту.
/mnt/sdcard/Android/data/com.n0n3m4.droidc/files/gcc/bin/arm-linux-androideabi-gcc
#include<stdio.h>
int main(){
printf("hello arm!\n");
return 0;
}
привет руку!
Google только что выпустил NDK, который позволяет именно это.
Здесь можно найти: http://developer.android.com/sdk/ndk/1.5_r1/index.html
Эти три шага хороши для хранения и сохранения в этом сообщении.
1) Как портировать собственный код c на Android-телефоне
3) http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/
Я не знаю учебника, но хороший инструмент для разработки: Airplay SDK от Ideaworks Labs. (Недавно переименованный " Marmelade" ). С помощью C/С++ вы можете создавать приложения для Windows Mobile, iPhone, Android. Единственным компонентом, который мне не понравился, был композитор GUI - глючный, но вы всегда можете заменить его "Блокнотом".
Нативные файлы C/С++ libstdС++. * из вашего Ubuntu являются двоичные файлы x86 (или x86_64), но Android-устройства и эмуляторы являются ARM. Конечно, это не сработает, даже если вы установите правильное имя. Это очень наивный путь, который ни к чему не ведет. Android имеет очень ограниченную поддержку С++, что означает отсутствие исключений, стандартную библиотеку С++ (включая STL) и RTTI. Если вам нужна такая функциональность, используйте мой собственный дистрибутив NDK из
http://crystax.net/android/ndk.php - он поддерживает полные функции С++, перечисленные выше.
Почему существует ошибка: undefined ссылка на ошибку "__cxa_end_cleanup". Android stlport
время. Потому что нет ссылки на libstdc ++. О. Так неправильно.
Поскольку он использует некоторую статическую библиотеку, необходимо связать полный libstdc ++. A. Может
http://crystax.net/android/ndk.php здесь, чтобы загрузить пакет
sources\cxx-stl\gnu-libstdc + +\libs\armeabi.
Android по своей собственной поддержке libstdc + + ограничен, он должен быть связан с полным libstdc + +. Работа.
Добавить файл в Android.mk LOCAL_LDFLAGS = $ (LOCAL_PATH) / libs / libcurl.a \
$ (LOCAL_PATH) / libs / liblua.a \
`$ (LOCAL_PATH) / libs / libstdc + +. A`
И LOCAL_CPPFLAGS + =-lstdc + +-fexceptions
может быть скомпилирован
Это сообщение в блоге может быть хорошим началом: http://benno.id.au/blog/2007/11/13/android-native-apps К сожалению, многие важные вещи "оставлены как упражнение для читателя".
Существует план разрешить библиотеки C/С++ в следующей версии SDK для Android (Codename Eclair?). На сегодняшний день это невозможно в Android SDK для Android. Тем не менее, вы можете захватить ОГРОМНЫЙ проект с открытым исходным кодом, свернуть свои собственные библиотеки, а затем запустить собственное устройство... но любой, кто хочет использовать вашу библиотеку, должен будет также выполнить флеш-настройку вашей пользовательской сборки.
Короткий ответ: вы не можете.
@Backslash17: просмотрев статью и следующую ссылку с инструкциями по установке, все, что работала в компании, - это запуск самокомпилированного исполняемого файла на эмуляторе в обход рамки Android. Когда у вас есть эмулятор, вы можете подключиться к telnet и иметь оболочку linux. Конечно, запуск Linux-программы тривиален. Но это не работает для телефонов без джейлбрейка (ака root access) и не поставляется на рынок.
Если Google не открывает другие возможности, или кто-то пишет собственный компилятор, который компилирует Language X в байт-код Dalvik (Dalvik - это виртуальная машина, которая запускает программы для Android), вы не сможете записать собственный код.