Я пытаюсь разработать/переносить игру на Android, но на C и Android поддерживает Java, но я уверен, что там должен быть способ получить приложение C, кто-нибудь знает хороший учебник по теме?
Спасибо!
Я пытаюсь разработать/переносить игру на 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
Вы можете использовать nestedvm для перевода C (или других языков GCC) в байт-код Java и использовать это как основу вашего порта, Например, см. порт Android портативной коллекции головоломок Simon Tathams.
Я ожидаю, что этот метод станет устаревшим NDK, но может быть и не в том случае, если некоторые сети или что-то не позволяют людям обновлять свои телефоны.
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
Глядя на это, кажется, что это возможно:
"факт, что поддерживается только язык Java, не означает, что вы не можете разрабатывать приложения на других языках. Это было доказано многими разработчиками, хакерами и экспертами в разработке приложений для мобильных устройств. Ребята из Elements Interactive BV, компании позади Edgelib, удалось запустить собственные С++-приложения на платформе Android, даже если в это время еще много проблем на дисплее и звуке... и т.д. Это включает в себя игру S-Tris2 и демо-версию 3D-анимации Edgelib."
Возможно, вы ищете это?
Это средний уровень для разработки для нескольких мобильных платформ с использованием С++.
С 2009 года есть развитие по этому вопросу.
Necessitas - Qt (С++ framework) для Android
Начало работы видео.
Взгляните на google ndk group, это выглядит многообещающим, первая версия NDK будет доступна в 1П2009.
Обновление: И он выпущен http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
Я не уверен, что NDK обеспечивает полный охват официального Java API.
Из http://developer.android.com/sdk/ndk/index.html#overview:
Обратите внимание, что NDK не позволяют вам разрабатывать только родные Приложения. Первичный время выполнения остается виртуальным Dalvik машина.
Google только что выпустил NDK, который позволяет именно это.
Здесь можно найти: http://developer.android.com/sdk/ndk/1.5_r1/index.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;
}
привет руку!
Это сообщение в блоге может быть хорошим началом: http://benno.id.au/blog/2007/11/13/android-native-apps К сожалению, многие важные вещи "оставлены как упражнение для читателя".
Нативные файлы 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
может быть скомпилирован
Я не знаю учебника, но хороший инструмент для разработки: Airplay SDK от Ideaworks Labs. (Недавно переименованный " Marmelade" ). С помощью C/С++ вы можете создавать приложения для Windows Mobile, iPhone, Android. Единственным компонентом, который мне не понравился, был композитор GUI - глючный, но вы всегда можете заменить его "Блокнотом".
Эти три шага хороши для хранения и сохранения в этом сообщении.
1) Как портировать собственный код c на Android-телефоне
3) http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/
Существует план разрешить библиотеки C/С++ в следующей версии SDK для Android (Codename Eclair?). На сегодняшний день это невозможно в Android SDK для Android. Тем не менее, вы можете захватить ОГРОМНЫЙ проект с открытым исходным кодом, свернуть свои собственные библиотеки, а затем запустить собственное устройство... но любой, кто хочет использовать вашу библиотеку, должен будет также выполнить флеш-настройку вашей пользовательской сборки.
Короткий ответ: вы не можете.
@Backslash17: просмотрев статью и следующую ссылку с инструкциями по установке, все, что работала в компании, - это запуск самокомпилированного исполняемого файла на эмуляторе в обход рамки Android. Когда у вас есть эмулятор, вы можете подключиться к telnet и иметь оболочку linux. Конечно, запуск Linux-программы тривиален. Но это не работает для телефонов без джейлбрейка (ака root access) и не поставляется на рынок.
Если Google не открывает другие возможности, или кто-то пишет собственный компилятор, который компилирует Language X в байт-код Dalvik (Dalvik - это виртуальная машина, которая запускает программы для Android), вы не сможете записать собственный код.